1.要在struts.xml文件中添加下面的代码:
<package name="struts2" extends="struts-default">
<!--自定义拦截器(没有登录的就返回到login)-->
<interceptors>
<interceptor name="sessionNull" class="com.hoperun.action.SessionNullInterceptor">
</interceptor>
</interceptors>
<global-results>
<result name="login" type="redirect">/sessionValid.jsp</result>
</global-results>
还要在具体action的跳转配置中添加下面代码:
<action name="orderSearch" class="com.hoperun.action.OrderSearchAction">
<result name="success" >/orderSearch.jsp</result>
<interceptor-ref name="sessionNull"></interceptor-ref>
<interceptor-ref name="defaultStack"/>
</action>
如果不加上面蓝色的部分,页面域中的值就不能带到下个页面,因为定义了自己的拦截器,系统传值的拦截器就失效了,所以加上这条系统默认的拦截器就生效了
2.下面是SessionNullInterceptor的拦截器具体代码:
package com.hoperun.action;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.Interceptor;
/**
* session为空拦截器
*/
public class SessionNullInterceptor implements Interceptor {
private static final long serialVersionUID = 1L;
public void destroy() {
}
public void init() {
}
public String intercept(ActionInvocation invocation) throws Exception {
HttpServletRequest req = ServletActionContext.getRequest();
if (req.getSession().getAttribute("username") == null) {
return Action.LOGIN;
} else {
return invocation.invoke();
}
}
}
3,对了还不能忘记在login.acton中添加如下代码:
if(result==true)
{
Map<String,String> map = ActionContext.getContext().getSession();
map.put("username",username);
return SUCCESS;
}
这样如果你没有充login.jsp登录进来而直接去访问系统的其他页面时,就不能查看你想看的页面,而是会自动跳转到sessionValid.jsp页面去
分享到:
相关推荐
总结来说,Struts2.0的拦截器提供了一种灵活的方式来扩展和控制应用程序的行为,而CRUD操作则通过Action类实现。理解这些核心概念对于有效地利用Struts2开发Web应用至关重要。通过熟练掌握这些知识,开发者可以更...
Struts2.0是一款强大的Java Web框架,它在MVC(Model-View-Controller)设计模式的基础上,提供了灵活且强大的架构来构建企业级的Web应用程序。这个“Struts2.0 Jar包”包含了所有必要的库文件,使得开发者可以便捷...
2. **拦截器(Interceptors)**: Struts 2.0引入了拦截器机制,类似于AOP(面向切面编程)的概念,可以实现如日志记录、事务管理、权限控制等功能。开发者可以自定义拦截器,并将其链式地配置在Action执行路径上,...
Struts2.0是Java Web开发中一个非常重要的框架,它是Apache软件基金会的Jakarta项目下的一个开源产品,主要用于构建MVC(Model-View-Controller)模式的应用程序。本入门案例将带你逐步了解如何使用Struts2.0来创建...
Struts2.0 jar包是Java Web开发中的一个重要组件,它是Apache Struts框架的一个特定版本。Struts2是一个基于MVC(Model-View-Controller)设计模式的开源框架,用于构建可维护性高、结构清晰的Java应用。该框架极大...
Struts2.0内置了多种拦截器,同时支持自定义拦截器,使得开发者可以根据应用需求定制不同的执行流程。 八、在Struts2.0中实现IoC 依赖注入(IoC)是现代软件架构的重要组成部分,Struts2.0通过其内部的IoC容器,...
通过理解并熟练应用这些概念,开发者能够构建出功能完善、安全的用户登录系统。在实际项目中,还可能涉及其他方面,如国际化、数据校验、Ajax异步请求等,这些都是Struts2框架可以轻松处理的功能。
这个压缩包文件可能是为了展示一个完整的Struts2.0应用实例,包括从搭建环境到实现基本功能的全过程。 在Struts2.0的应用开发中,首先我们需要理解其核心概念: 1. **Action类**:这是业务逻辑的载体,通常继承自`...
这个都市供求信息系统全面展示了Struts2.0的使用,包括模型-视图-控制器的设计、数据库交互、用户认证、国际化支持等多个方面,为学习和实践Struts2.0提供了一个良好的平台。通过分析和重构这个项目,开发者可以深化...
在"struts2.0源代码"中,你可以看到框架的核心组件、拦截器、配置解析、动作执行等核心功能的实现。以下是一些主要的知识点: 1. **ActionInvocation**:这是Struts2的核心接口,代表了一个动作的执行流程。它负责...
2. **拦截器(Interceptor)**:拦截器是Struts2.0的一大特色,它可以实现通用的功能,如日志、权限检查等,无需在每个Action中重复编写。通过配置拦截器栈,可以灵活地控制请求的处理流程。 3. **OGNL(Object-...
3. **拦截器**:Struts2.0使用拦截器来处理请求,拦截器链可以在不修改Action代码的情况下添加新的功能,如日志、事务管理等。 4. **OGNL表达式语言**:Struts2.0使用OGNL(Object-Graph Navigation Language)作为...
Struts2.0框架整合了多种开源项目,如FreeMarker或JSP作为视图技术,OGNL(Object-Graph Navigation Language)作为表达式语言,以及拦截器机制来处理请求。框架的核心部分包括Action类,它是业务逻辑的载体;配置文件...
例如,TestInterceptor可能实现了用户登录验证,确保只有已登录的用户才能访问特定资源。拦截器按照配置的顺序执行,增强了代码的可复用性和模块化。 4. **Struts2配置** 项目的配置通常包含在struts.xml文件中,...
4. **拦截器**:拦截器是 Struts2.0 中的一个重要概念,它允许开发者编写自定义的行为,如认证、授权、事务管理等。 5. **配置**:Struts2.0 使用 XML 或注解来配置应用的各种行为和组件。 #### 四、Struts2.0 的...
拦截器是Struts 2.0的一个核心特性,它们在Action执行前后执行,可以用于日志记录、权限验证、数据校验等。开发者可以通过自定义拦截器扩展框架功能。 6. **OGNL(Object-Graph Navigation Language)** Struts ...
在登录场景中,可能会有登录状态检查拦截器,防止未登录用户访问受保护的页面。 5. **结果类型(Result)**:Action执行后,会返回一个结果,Struts2支持多种结果类型,如dispatcher(用于转发或重定向)、stream...
拦截器可以用于实现通用的功能,如登录检查、权限验证等,这样就不需要在每个Action中重复编写这些代码。 此外,`ActionSupport`类还提供了错误和异常处理的机制。如果在`execute()`方法中抛出异常,Struts 2会自动...