0 0

struts2每次访问都会创建一个新的session5

先上strut2配置
	<!-- Struts2和spring的整合 -->
	<constant name="struts.objectFactory" value="spring" />

	<!-- Struts2的自己整合 -->
	<constant name="struts.action.extension" value="do" />
	<constant name="struts.devMode" value="false" />
	<constant name="struts.enable.DynamicMethodInvocation" value="false" />


	<package name="admin" namespace="/admin" extends="struts-default">
		<!-- 拦截器 -->

	<interceptors>
			<interceptor name="adminLogin" class="adminLoginInterceptor" />
			<interceptor-stack name="admindefault">
				<interceptor-ref name="adminLogin" />
				<interceptor-ref name="defaultStack" />
			</interceptor-stack>
		</interceptors>
		<default-interceptor-ref name="admindefault" />
	<!-- 	 -->	
	 	<global-results>
	 		<result name="login" type="redirect">/admin/index.jsp</result>
	 	</global-results>
		<action name="admin_*" class="managerAction" method="{1}">
			<result name="success">/WEB-INF/page/admin/index.jsp</result>
			<result name="top">/WEB-INF/page/admin/top.jsp</result>
			<result name="left">/WEB-INF/page/admin/left.jsp</result>
			<result name="list">/WEB-INF/page/admin/memberlist.jsp</result>
		</action>
	</package>

</str

这是一个BaseAction,主要生成HttpServletRequest,HttpServletResponse
public class BaseAction extends ActionSupport implements ServletRequestAware,
		ServletResponseAware {
	protected static final Logger LOGGER = LoggerFactory
			.getLogger(BaseAction.class);
	protected HttpServletRequest request = null;
	protected HttpServletResponse response = null;

	@Override
	public void setServletResponse(HttpServletResponse req) {
		// TODO Auto-generated method stub
		this.response = (HttpServletResponse) req;
	}

	@Override
	public void setServletRequest(HttpServletRequest resp) {
		// TODO Auto-generated method stub
		this.request = (HttpServletRequest) resp;
	}
}


下面是一个Action实例中的LOGIN方法,继承于BaseAction
	public String login() {
		if (StringUtils.isBlank(manager.getManagername())
				|| StringUtils.isBlank(manager.getPassword())) {
			return LOGIN;
		}
		// 查找登录名字,如果数据库有记录,则设置一个session值
		if (managerService.login(manager)) {
			request.getSession().setAttribute("adminINFO", manager);
			System.out.println("adminINFO=="+request.getSession().getAttribute("adminINFO").toString());
			return SUCCESS;
		}
		return LOGIN;
	}

下sessionListener的结果


2014年6月30日 14:46
  • 大小: 5.3 KB

2个答案 按时间排序 按投票排序

0 0

不科学,application 和 web.xml 都是怎么配置的

2014年7月01日 10:25
0 0

1. 你的拦截器中是否用了request.getSession(true);  这种方式获取session
2. web.xml中配置的session过期时间是多少。。。

2014年7月01日 10:15

相关推荐

    简单的struts2拦截器利用session拦截用户登录.docx

    - `LoginCheckInterceptor` 类继承自 `AbstractInterceptor`,这是一个基础的Struts2拦截器类。 - 在 `intercept` 方法中,首先获取请求的URL,然后检查是否是登录(`login.action`)或注销(`logout.action`)操作,...

    Struts2实现检查用户是否登录

    在Struts2中,一个常见的需求是确保用户在访问某些受保护的页面之前已经登录。本文将深入探讨如何使用Struts2结合session来实现用户登录检查。 首先,我们需要理解session的概念。在Web开发中,session是一种服务器...

    Struts2深入理解

    - **ValueStack存在于Action上下文中:** 每次处理请求时,都会创建一个新的ValueStack实例。 - **CompoundRoot与context对象:** ValueStack中保存了一个复合根对象(CompoundRoot)和一个包含其他作用域对象的...

    struts2详细网站访问总人数统计(点击率)

    在Struts2中,可以通过在Action类中添加一个全局变量来记录访问次数,并在每次请求时进行累加。这个计数器可以在session或者application作用域中存储,以确保数据的准确性和持久性。 4. **跟踪用户行为**: 要实现...

    Spring+Struts2+ibatis 异地登录 HttpSessionBindingListener

    在Java Web开发中,Spring、Struts2和iBatis是常见的三大框架,它们共同构建了一个功能强大的MVC(Model-View-Controller)架构。在本项目中,我们关注的是如何利用这些技术来处理“异地登录”问题,尤其是通过`...

    Struts2的验证码生成

    3. **创建Action类**:创建一个Java类,继承自Struts2的ActionSupport类。在这个类中,我们将编写生成验证码的方法。方法会生成一个随机字符串,并将其存储在Session中,同时创建一个对应的图片。 4. **生成随机...

    Struts2拦截器实现权限控制demo

    Struts2是一个强大的Java web框架,它为开发者提供了一种优雅的方式来组织和构建应用程序。在Struts2中,拦截器是实现业务逻辑控制和增强功能的重要机制,它们扮演着类似于AOP(面向切面编程)的角色,允许在动作...

    struts2+cookies实现购物车

    - **添加商品到购物车**:如果用户尝试将某个商品添加到购物车,但当前没有购物车信息(即`session`中`flag`属性不存在),则创建一个新的cookie,其名称和值都为商品ID,并设置有效期为一年。这样,即使用户关闭...

    struts2中的ActionContext与ognl

    在每次HTTP请求处理时,Struts2都会创建一个ActionContext实例,并将其设置为线程局部变量,确保每个请求都有自己的独立上下文。 1. **ActionContext的作用** - 提供请求相关的环境信息,如HttpServletRequest、...

    Struts2购物车示例

    在这个"Struts2购物车示例"中,我们将会探讨如何利用Struts2框架来构建一个功能完备的购物车系统,特别是在处理用户购物选择并将其存储在Session中的方法。 购物车是电子商务网站的核心组件之一,它允许用户在决定...

    研磨Struts2

    - **初始化**:当用户发起请求时,Struts2框架会创建一个新的Action实例。 - **执行**:调用Action中的execute()方法,执行具体的业务逻辑。 - **销毁**:Action执行完毕后,会被框架销毁。 #### 3.3 自定义Action ...

    struts2上传图片

    在Struts2中,我们可以使用`struts2-convention-plugin`或者`struts2-core`提供的`&lt;s:file&gt;`标签来创建一个用于上传文件的表单元素。例如: ```html 选择图片"/&gt; 上传"/&gt; ``` 这里的`enctype="multipart/form-...

    struts2 接收参数

    在每次请求处理时,Struts2都会创建一个新的ActionContext实例,并将其设置为线程局部变量,确保每个请求都有自己的独立上下文。 ValueStack是Struts2的一个重要概念,它是一个对象栈,用于在视图和模型之间传递...

    struts2-s标签

    `&lt;s:checkbox&gt;` 只创建一个复选框,而 `&lt;s:checkboxlist&gt;` 则基于提供的列表数据创建多个复选框。 **示例:** ```xml ``` ##### 8. `&lt;s:combobox list=""&gt;` 该标签用于创建下拉选择框,类似于 `&lt;select&gt;` 元素...

    SSO单点登入,使用cookie实习(Struts2)

    1. **配置Struts2 Action**:创建一个专门处理登录请求的Action,这个Action将负责与CAS服务器通信并处理登录逻辑。可以使用Struts2的拦截器来实现登录检查,拦截所有需要登录才能访问的Action。 2. **Cookie管理**...

Global site tag (gtag.js) - Google Analytics