- 浏览: 453878 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
wjs876046992:
后来我下载了Eclipse Indigo版本,同样操作却成功了 ...
myeclipse2014中安装spket-1.6.23 -
wjs876046992:
我的是myEclipse2014,将那两个文件夹拷贝到drop ...
myeclipse2014中安装spket-1.6.23 -
lucky8060:
应该不是每次请求都产生一个action吧?应该是每个sessi ...
Struts2 action的单例与多例
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"; } }
发表评论
-
java实现页面字符串换行空格方法(如果原始字符串存在换行和空格)
2014-09-28 14:23 2135适用于xml、json以及分条字符串 /** ... -
web里的路径获取方法总结
2014-09-25 17:27 6031、获取web系统根目录 String dirPath ... -
servlet或springmvc中得到web项目根路径
2014-07-07 14:53 20241、 request.getServletContext( ... -
springmvc controller和servlet中文乱码问题
2014-05-26 23:00 3663一、第一种方法通过tomcat配置和spring编码过滤器 ... -
flex拓扑图
2014-04-04 13:29 40123 -
使input type=“file”的浏览按钮透明隐藏的方法
2013-09-17 10:51 27603jsp代码: <input type="f ... -
hibernate3.6二级缓存
2013-06-14 09:31 1117使用spring的情况下: 注:首先确定hibernat ... -
一个过滤器实例
2013-06-04 17:33 1000public class AuthFilter imple ... -
Struts标签使用java帮助类方法
2013-06-04 14:53 482<s:property value="@co ... -
分页操作
2013-05-29 09:58 8581.使用hibernate (1)定义变量-页面传递当前 ... -
使用hibernate查询部分字段的方法
2013-04-08 10:35 910数据库操作: List<UserAudit> ... -
log4j使用笔记
2013-04-03 15:10 7871.导入log4j的jar包--log4j-1.2.13. ... -
Struts2 action的单例与多例
2013-03-05 18:03 14939struts 2的Action是多实例 ... -
得到本地和远程IP
2013-03-03 18:16 2133package com.ru.util; impor ... -
在类中获取得到路径,request,response,session
2013-03-02 19:01 5551package com.ru.action; imp ... -
hibernate的hql帮助类
2012-12-18 11:15 1343import java.io.Serializable; ... -
struts2实现文件上传
2012-10-07 16:06 9241.upload.jsp <%@ page ... -
struts2实现文件过滤
2012-10-07 17:09 1009一、手动实现文件过滤 1.uploadAction.java ... -
struts2实现文件下载
2012-10-07 19:02 997注:struts2提供的下载功能,在action中只需要提 ... -
struts2拦截器机制
2012-10-08 16:17 1322一、inperceptor配置使用过程 1.配置拦截器 ...
相关推荐
### Struts2 访问 Request、Session 和 Application 作用域详解 #### 一、引言 Struts2 是一个基于 Java 的开源 Web 开发框架,它继承了 Struts1 的优秀特性并进行了改进,提供了更加灵活和强大的功能。在 Struts2...
在Struts2中,访问Web资源,如application、session和request,是常见的操作,这有助于实现数据共享和传递。本示例代码将帮助开发者更好地理解和运用这些功能。 一、Application域对象 Application域对象在所有用户...
在Struts2中,有四种主要的方式可以用来操作request、session和application上下文中的数据。这篇内容将深入探讨这四种方法,并结合源码和实用工具来帮助理解。 1. **ActionContext**: Struts2的核心组件...
在Struts2框架中,理解并正确使用request、response、session和application范围对于有效地管理数据和状态至关重要。这些范围帮助我们在Web应用程序中实现逻辑和数据流的分离,提高代码的可维护性和可扩展性。通过...
在Struts2中,访问request、session和application对象是进行数据共享和传递的重要手段。这篇学习笔记主要探讨了如何在Struts2框架下有效地利用这三种域对象。 首先,request对象代表一次HTTP请求,它存储的数据仅...
以下将详细介绍如何在Struts2的Action中获取request、response、session。 ### 1. 使用ActionContext获取request、response、session Struts2的Action可以通过`ActionContext`来间接获取`request`、`response`和`...
`AttributeMap`是一个特殊的类,它可以用来获取所有作用域内的值,包括`request`、`session`和`application`范围内的数据。 #### 三、接口实现 为了能够访问这些作用域,Struts2提供了几个接口,开发者可以根据...
因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。如果途中找到username,就直接回传,不再继续找下去,但是如果全部的范围都没有找到时,就回传null。 属性...
它有内置对象如request、response、session、application等,方便处理HTTP请求和响应。 - **EL(Expression Language)**:EL简化了在JSP中获取和设置属性值的方式,无需编写Java脚本,使得JSP更加简洁。 - **JSTL...
Struts2 标签可以访问不同的作用域的类,例如 request、session、application 等。 标签的优点 Struts2 标签库提供了主题、模板支持,极大地简化了视图页面的编写,而且,Struts2 的主题、模板都提供了很好的扩展...
- 访问不同范围内的属性:如`#attr.userName`会按照`request > session > application`的顺序查找`userName`属性。 - **条件筛选**:在集合中使用OGNL进行条件筛选,例如`books.{?#this.price>35}`表示筛选价格...
Struts2+Spring+Hibernate 中的Action单元测试环境搭建 在软件开发中,单元测试是一种非常重要的测试方法,可以帮助我们确保代码的可靠性和稳定性。在 Struts2+Spring+Hibernate 框架中,对 Action 的单元测试环境...
### Struts2中#号的用法详解 在Struts2框架中,`#`符号是一种非常重要的语法元素,主要用于访问上下文中的变量。本文将详细介绍`#`符号的使用方法及其应用场景,帮助读者更好地理解和掌握Struts2框架的相关知识。 ...
4. 命名对象:包括在Servlet作用范围内的对象信息,如Request、Session、Application等。 在实际开发中,开发者可以通过OGNL表达式访问值栈中的Action属性、对象和其他信息。例如,使用标签可以输出Action中的属性...
2.修改题目1,将提交的“用户名信息”保存到request中,“密码信息”保存到session中,而“用户是否已经注册的判定信息”保存在application中,并在显示页面中,分别从request、session和application中获取数据并...
- **通过ActionContext访问**:使用ActionContext获取Servlet API对象,如Request、Session、Application等。 - **ActionContext生命周期**:每个请求周期内创建一个ActionContext实例,并在请求结束后销毁。 #### ...
- EL表达式默认会先查找page范围内的变量,然后依次是request、session和application范围。 **示例代码:** ```jsp ... <h1>Welcome, ${user.name}! <p>Your book ID is: ${user.book.id} ``` **JSTL:** JSTL...
ValueStack是Struts2框架中的核心概念,它是一个对象栈,包含了Action对象、模型对象以及不同作用域的固定名称对象(如#application、#session、#request等)。值栈使得标签库可以直接访问对象,而不需要在视图层和...
2. **ServletActionContext类**:这是ActionContext的一个扩展,提供了更方便的访问Servlet相关对象的方法,如`ServletActionContext.getRequest()`和`ServletActionContext.getResponse()`分别用于获取...