先上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的结果
相关推荐
- `LoginCheckInterceptor` 类继承自 `AbstractInterceptor`,这是一个基础的Struts2拦截器类。 - 在 `intercept` 方法中,首先获取请求的URL,然后检查是否是登录(`login.action`)或注销(`logout.action`)操作,...
在Struts2中,一个常见的需求是确保用户在访问某些受保护的页面之前已经登录。本文将深入探讨如何使用Struts2结合session来实现用户登录检查。 首先,我们需要理解session的概念。在Web开发中,session是一种服务器...
- **ValueStack存在于Action上下文中:** 每次处理请求时,都会创建一个新的ValueStack实例。 - **CompoundRoot与context对象:** ValueStack中保存了一个复合根对象(CompoundRoot)和一个包含其他作用域对象的...
在Struts2中,可以通过在Action类中添加一个全局变量来记录访问次数,并在每次请求时进行累加。这个计数器可以在session或者application作用域中存储,以确保数据的准确性和持久性。 4. **跟踪用户行为**: 要实现...
在Java Web开发中,Spring、Struts2和iBatis是常见的三大框架,它们共同构建了一个功能强大的MVC(Model-View-Controller)架构。在本项目中,我们关注的是如何利用这些技术来处理“异地登录”问题,尤其是通过`...
3. **创建Action类**:创建一个Java类,继承自Struts2的ActionSupport类。在这个类中,我们将编写生成验证码的方法。方法会生成一个随机字符串,并将其存储在Session中,同时创建一个对应的图片。 4. **生成随机...
Struts2是一个强大的Java web框架,它为开发者提供了一种优雅的方式来组织和构建应用程序。在Struts2中,拦截器是实现业务逻辑控制和增强功能的重要机制,它们扮演着类似于AOP(面向切面编程)的角色,允许在动作...
- **添加商品到购物车**:如果用户尝试将某个商品添加到购物车,但当前没有购物车信息(即`session`中`flag`属性不存在),则创建一个新的cookie,其名称和值都为商品ID,并设置有效期为一年。这样,即使用户关闭...
在每次HTTP请求处理时,Struts2都会创建一个ActionContext实例,并将其设置为线程局部变量,确保每个请求都有自己的独立上下文。 1. **ActionContext的作用** - 提供请求相关的环境信息,如HttpServletRequest、...
在这个"Struts2购物车示例"中,我们将会探讨如何利用Struts2框架来构建一个功能完备的购物车系统,特别是在处理用户购物选择并将其存储在Session中的方法。 购物车是电子商务网站的核心组件之一,它允许用户在决定...
- **初始化**:当用户发起请求时,Struts2框架会创建一个新的Action实例。 - **执行**:调用Action中的execute()方法,执行具体的业务逻辑。 - **销毁**:Action执行完毕后,会被框架销毁。 #### 3.3 自定义Action ...
在Struts2中,我们可以使用`struts2-convention-plugin`或者`struts2-core`提供的`<s:file>`标签来创建一个用于上传文件的表单元素。例如: ```html 选择图片"/> 上传"/> ``` 这里的`enctype="multipart/form-...
在每次请求处理时,Struts2都会创建一个新的ActionContext实例,并将其设置为线程局部变量,确保每个请求都有自己的独立上下文。 ValueStack是Struts2的一个重要概念,它是一个对象栈,用于在视图和模型之间传递...
`<s:checkbox>` 只创建一个复选框,而 `<s:checkboxlist>` 则基于提供的列表数据创建多个复选框。 **示例:** ```xml ``` ##### 8. `<s:combobox list="">` 该标签用于创建下拉选择框,类似于 `<select>` 元素...
1. **配置Struts2 Action**:创建一个专门处理登录请求的Action,这个Action将负责与CAS服务器通信并处理登录逻辑。可以使用Struts2的拦截器来实现登录检查,拦截所有需要登录才能访问的Action。 2. **Cookie管理**...