`
退役的龙弟弟
  • 浏览: 453878 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

struts2的request,session,application

 
阅读更多

1.第一种方法(实现RequestAware,SessionAware, ApplicationAware接口)

这是最常用的一种方法

(1)WebParaAction.java

package com.ru.action;
import java.util.Map;
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;
import com.opensymphony.xwork2.ActionSupport;
import com.ru.domain.User;
//实现RequestAware,SessionAware, ApplicationAware接口
public class webpara extends ActionSupport implements RequestAware,
 SessionAware, ApplicationAware {
//创建对象,map类型
private Map<String,Object> request;
private Map<String, Object> session;
private Map<String, Object> application;
//接收参数
private User user;
public User getUser() {
 return user;
}
public void setUser(User user) {
 this.user = user;
}

@Override
public String execute() throws Exception {
 // TODO Auto-generated method stub
 if(user.getName().equals("如")&&user.getPassword().equals("123")){
//调用set方法将属性放到request,session,application里面
 request.put("name", user.getName());
 session.put("name", user.getName());
 application.put("name", user.getName());
 return "para";
 }else{
 return "error";
 }
 

}
//分别实现接口的方法
@Override
public void setRequest(Map<String, Object> request) {
 // TODO Auto-generated method stub
 this.request=request;
}
@Override
public void setSession(Map<String, Object> session) {
 // TODO Auto-generated method stub
 this.session=session;
}
@Override
public void setApplication(Map<String, Object> application) {
 // TODO Auto-generated method stub
 this.application=application;
}
}
 

(2)webpara.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
//添加struts2标签
<%@taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
 <base href="<%=basePath%>">
 
 <title>My JSP 'webpara.jsp' starting page</title>
 
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0"> 
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
 </head>

 <body>
 <h1>这个页面获取request,session,application</h1>
 欢迎登录
 <h2>通过request用两种方法获取用户名</h2>
 <s:property value="#request.name"/>
 <%=request.getAttribute("name") %>
 <h2>通过session用两种方法获取用户名</h2>
 <s:property value="#session.name"/>
 <%=session.getAttribute("name") %>
 <h2>application用两种方法获取用户名</h2>
 <s:property value="#application.name"/>
 <%=application.getAttribute("name") %>
 <s:debug />
</html>
 


2.第二种方法(使用构造函数配合ActionContext函数)

package com.ru.action;

import java.util.Map;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.ru.domain.User;

public class WebParaAction extends ActionSupport {
//创建map类型的request,session和application
private Map request1;
private Map session1;
private Map application1;
//从jsp页面获取参数
private User user;
public User getUser() {
return user;
}


public void setUser(User user) {
this.user = user;
}

//通过构造函数将属性放入
public WebParaAction() {
request1=(Map)ActionContext.getContext().get("request");
session1=ActionContext.getContext().getSession();
application1=ActionContext.getContext().getApplication();
}

//分别调用构造函数中的函数放入属性
@Override
public String execute() throws Exception {
request1.put("name",user.getName());
session1.put("name", user.getName());
application1.put("name", user.getName());
return "ok";
}
}
 
分享到:
评论

相关推荐

    struts2访问request,session,application作用域

    ### Struts2 访问 Request、Session 和 Application 作用域详解 #### 一、引言 Struts2 是一个基于 Java 的开源 Web 开发框架,它继承了 Struts1 的优秀特性并进行了改进,提供了更加灵活和强大的功能。在 Struts2...

    struts2访问application、session以及request等web资源的示例代码

    在Struts2中,访问Web资源,如application、session和request,是常见的操作,这有助于实现数据共享和传递。本示例代码将帮助开发者更好地理解和运用这些功能。 一、Application域对象 Application域对象在所有用户...

    Struts2访问request,session,application的四种方式

    在Struts2中,有四种主要的方式可以用来操作request、session和application上下文中的数据。这篇内容将深入探讨这四种方法,并结合源码和实用工具来帮助理解。 1. **ActionContext**: Struts2的核心组件...

    struts2创建 request response session application

    在Struts2框架中,理解并正确使用request、response、session和application范围对于有效地管理数据和状态至关重要。这些范围帮助我们在Web应用程序中实现逻辑和数据流的分离,提高代码的可维护性和可扩展性。通过...

    Struts2学习笔记(三) Struts2中访问request,session,和application对象

    在Struts2中,访问request、session和application对象是进行数据共享和传递的重要手段。这篇学习笔记主要探讨了如何在Struts2框架下有效地利用这三种域对象。 首先,request对象代表一次HTTP请求,它存储的数据仅...

    Struts2的Action中获得request response session几种方法

    以下将详细介绍如何在Struts2的Action中获取request、response、session。 ### 1. 使用ActionContext获取request、response、session Struts2的Action可以通过`ActionContext`来间接获取`request`、`response`和`...

    STRUTS2获得作用域、参数响应对象及三种符号说明

    `AttributeMap`是一个特殊的类,它可以用来获取所有作用域内的值,包括`request`、`session`和`application`范围内的数据。 #### 三、接口实现 为了能够访问这些作用域,Struts2提供了几个接口,开发者可以根据...

    struts2学习心得

    因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。如果途中找到username,就直接回传,不再继续找下去,但是如果全部的范围都没有找到时,就回传null。 属性...

    struts2简单案例

    它有内置对象如request、response、session、application等,方便处理HTTP请求和响应。 - **EL(Expression Language)**:EL简化了在JSP中获取和设置属性值的方式,无需编写Java脚本,使得JSP更加简洁。 - **JSTL...

    struts2标签使用方法

    Struts2 标签可以访问不同的作用域的类,例如 request、session、application 等。 标签的优点 Struts2 标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,Struts2 的主题、模板都提供了很好的扩展...

    struts2 ognl的用法

    - 访问不同范围内的属性:如`#attr.userName`会按照`request &gt; session &gt; application`的顺序查找`userName`属性。 - **条件筛选**:在集合中使用OGNL进行条件筛选,例如`books.{?#this.price&gt;35}`表示筛选价格...

    Struts2+Spring+hibernate中对action的单元测试环境搭建[总结].pdf

    Struts2+Spring+Hibernate 中的Action单元测试环境搭建 在软件开发中,单元测试是一种非常重要的测试方法,可以帮助我们确保代码的可靠性和稳定性。在 Struts2+Spring+Hibernate 框架中,对 Action 的单元测试环境...

    struts2中#号的用法

    ### Struts2中#号的用法详解 在Struts2框架中,`#`符号是一种非常重要的语法元素,主要用于访问上下文中的变量。本文将详细介绍`#`符号的使用方法及其应用场景,帮助读者更好地理解和掌握Struts2框架的相关知识。 ...

    Struts2_OGNL

    4. 命名对象:包括在Servlet作用范围内的对象信息,如Request、Session、Application等。 在实际开发中,开发者可以通过OGNL表达式访问值栈中的Action属性、对象和其他信息。例如,使用标签可以输出Action中的属性...

    修改题目1,将提交的“用户名信息”保存到request中,“密码信息”保存到session中,

    2.修改题目1,将提交的“用户名信息”保存到request中,“密码信息”保存到session中,而“用户是否已经注册的判定信息”保存在application中,并在显示页面中,分别从request、session和application中获取数据并...

    struts2框架学习笔记整理

    - **通过ActionContext访问**:使用ActionContext获取Servlet API对象,如Request、Session、Application等。 - **ActionContext生命周期**:每个请求周期内创建一个ActionContext实例,并在请求结束后销毁。 #### ...

    struts2配置文件以及代码示例

    - EL表达式默认会先查找page范围内的变量,然后依次是request、session和application范围。 **示例代码:** ```jsp ... &lt;h1&gt;Welcome, ${user.name}! &lt;p&gt;Your book ID is: ${user.book.id} ``` **JSTL:** JSTL...

    struts2标签库

    ValueStack是Struts2框架中的核心概念,它是一个对象栈,包含了Action对象、模型对象以及不同作用域的固定名称对象(如#application、#session、#request等)。值栈使得标签库可以直接访问对象,而不需要在视图层和...

    struts2的API耦合与动态方法调用

    2. **ServletActionContext类**:这是ActionContext的一个扩展,提供了更方便的访问Servlet相关对象的方法,如`ServletActionContext.getRequest()`和`ServletActionContext.getResponse()`分别用于获取...

Global site tag (gtag.js) - Google Analytics