1.写一个Action类 UserManagerAction extends ActionSupport
package com.jsu.struts2.action; import com.opensymphony.xwork2.ActionSupport; public class UserManagerAction extends ActionSupport { public String update() { System.out.println("update....."); return SUCCESS; } public String select() { System.out.println("select....."); return SUCCESS; } public String del() { System.out.println("del....."); return SUCCESS; } public String modify() { System.out.println("modify....."); return SUCCESS; } }
2.在拦截器中写一个类MethodDemoInterceptor extends MethodFilterInterceptor
package com.jsu.struts2.interceptor; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor; public class MethodDemoInterceptor extends MethodFilterInterceptor { /*实现拦截逻辑*/ @Override public String doIntercept(ActionInvocation invocation) throws Exception { ActionContext ctx = invocation.getInvocationContext(); String flag =(String)ctx.getContext().getSession().get("flag"); if("ok".equals(flag)){ System.out.println("已经登录、、、"); return invocation.invoke(); }else{ ctx.put("err_msg", "你还没有登录,请登录、、、"); return "error"; } } }
3.在错误页面error.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> Error ${err_msg} <br> </body> </html>
4.在struts.xml文件中配置
<struts> <package name="loginDemo" namespace="/" extends="struts-default"> <interceptor name="methodFilter" class="com.jsu.struts2.interceptor.MethodDemoInterceptor"> </interceptor> <!-- 定义全局的Result --> <global-results> <result name="error">/error.jsp</result> </global-results> <action name="login" class="com.jsu.struts2.action.LoginAction"> <interceptor-ref name="defaultStack"></interceptor-ref> <result>/index.jsp</result> </action> <action name="manager" class="com.jsu.struts2.action.UserManagerAction"> <interceptor-ref name="methodFilter"> <!-- 不需要拦截的方法 --> <param name="excludeMethods">select</param> <!-- 需要拦截的方法 --> param name="includeMethods">update,del,modify</param> </interceptor-ref> <result>/index.jsp</result> </action> </package> </struts>
5.在地址栏发请求
1.http://localhost:8080/struts2_04/manager!select.action 没有被拦截,直接跳转到index.jsp
2.http://localhost:8080/struts2_04/manager!update.action 或者modify 或者 del 都被拦截器拦截
发表评论
-
struts2day06 自定义结果
2012-07-16 12:14 673类implements Result接口 或者 extends ... -
struts2day06 Struts2.0的result
2012-07-16 12:01 950Struts2.0的result Action ... -
struts2day06学习笔记
2012-07-16 10:55 8521.new String(xxx.getBytes(),&qu ... -
struts2day05异常处理
2012-07-13 23:13 834Struts2.0的异常处理机制 1.什么是异常?软件在 ... -
Struts2day05学习笔记
2012-07-13 22:19 6761.自定义拦截器 1.im ... -
Struts2day04Struts2.0文件的下载
2012-07-13 08:26 6781.写一个Action,在DownloadAction ext ... -
Struts2day04Struts2.0文件的上传
2012-07-13 08:20 6501、在服务器端提供一个文件夹存放提交的文件,upload文件夹 ... -
Struts2day04Struts2.0实现阻止表单重复提交
2012-07-12 21:01 6241.使用叫做token的拦截器,在表单中加入<s:tok ... -
Struts2day04判断用户是否登录
2012-07-12 19:37 8701.在拦截器中获得用户登录的session 在LoginC ... -
Struts2day04测试程序的执行效率,拦截器栈,在Action中覆盖拦截器的属性值
2012-07-12 18:58 11861.在LoginAction.java中,extends Ac ... -
Struts2学习笔记day04
2012-07-12 00:31 6201.自定义类型转换 1.写一个类 extends S ... -
Struts2day03Struts2.0提供的数据格式校验
2012-07-11 21:52 718Struts2.0提供的数据格式校验 js校验:存在被 ... -
Struts2day03Struts2.0国际化
2012-07-11 21:09 765Struts2.0国际化 B/S结构中为网页提供多国 ... -
Struts2day03OGNL自定义类型转换
2012-07-11 20:47 806Struts2.0框架不能够或者不能完整的进行自动类型转换 ... -
Struts2学习笔记day03
2012-07-11 19:09 9481.值栈:ValueStack,存储数 ... -
Struts2day02多个对象提交
2012-07-10 07:15 1188在listUser.jsp页面 <%@ page la ... -
Struts2day02表单标签
2012-07-10 07:15 6661.在struts2Form.jsp中 <%@ ... -
struts2day02访问ValueStack中的数据以及访问Context中的对象
2012-07-10 07:14 10471.在show.jsp页面 <%@ page lang ... -
Struts2day02动态方法调用
2012-07-10 07:14 6521.在opt.jsp页面 <%@ page langu ... -
Struts2day02使用通配符调用指定的方法
2012-07-10 07:14 7301.在opt.jsp页面 <%@ page langu ...
相关推荐
`Struts2Day2_method`可能涉及到如何在Action类中定义和调用不同的业务处理方法。Struts2允许根据HTTP请求参数动态选择要执行的方法,这通过在Action类中定义多个以`execute`命名的重载方法实现。这种方法增强了...
Day02的内容可能会深入到Struts2的配置文件,如struts.xml,它用于定义Action、结果类型和拦截器链。同时,Action的编写和执行流程也会被讲解,包括Action类的注解配置,以及如何通过ActionSupport类处理请求和响应...
Struts 2 使用 XML 配置文件(通常命名为 `struts.xml` 或 `struts-default.xml`)来定义 Action、结果类型、拦截器栈等。配置文件可以指定 Action 的映射路径、接收的参数、执行的业务方法以及返回的结果视图。 **...
2. **核心组件**:Struts2的核心组件包括Action类、配置文件(struts.xml)、拦截器(Interceptors)和结果(Results)。Action类是处理用户请求的业务逻辑,配置文件定义了Action与URL的映射关系,拦截器可以对请求...
- 使用Struts2的注解进行简化配置,例如`@Action`和`@Result`。 - 拦截器的使用,比如`params`拦截器用于自动将请求参数绑定到Action属性。 - 视图渲染,可能是通过JSP页面显示数据。 掌握Struts2框架对于Java Web...
1. **Dynamic Method Invocation (DMI)**:Struts2支持动态方法调用,意味着你可以通过URL直接调用Action类的某个方法,而无需在配置文件中显式定义每个方法的映射。 五、 strut2的插件和扩展性 1. **插件系统**:...
通过“黑马Struts2视频(day2)”,学习者可以进一步理解并掌握这些核心概念,同时通过实际操作加深对Struts2的理解,从而提高开发效率,创建出更加稳定和高效的Web应用。在day01视频中,通常会涵盖基础的环境搭建和...
5. **配置web.xml**:在web.xml中引入Struts2的过滤器,配置过滤器的映射,并指定Struts2的配置文件位置。 6. **添加Struts2库**:将下载的Struts2库(包括struts2-core等依赖库)添加到项目的类路径中。 7. **...
掌握级别的作业则更进一步,要求学生能够运用Struts2框架编写简单的Web应用程序,例如实现用户登录功能、表单验证等功能,这需要学生熟练掌握Struts2的核心配置文件(struts.xml)以及Action类的设计方法。...
- **struts2day04.xml**:Struts2配置文件,定义了Action和Result的映射。 - **实体类(Entity class)**:如User、Product等,对应数据库中的表结构。 - **DAO(Data Access Object)**:与数据库交互的接口或类,...
2. **注解配置**:Struts2支持在Action类或方法上使用注解进行配置,减少XML配置的繁琐。 3. **动态方法调用**:允许通过URL直接调用Action方法,增强了路由的灵活性。 **Struts2的生命周期:** 1. **请求到达**:...
2. **解析请求**:过滤器解析请求,并根据配置文件(通常是`struts.xml`)确定应该调用哪个Action。 3. **执行Action**:Action执行具体的业务逻辑,并返回一个结果对象,指示视图应该如何呈现。 4. **返回视图**:...
- **使用Action级验证**:在Action类中实现`validate()`方法来进行验证。 - **使用拦截器**:通过自定义拦截器进行验证。 #### 5. **文件上传** Struts2支持文件上传功能,主要步骤如下: - 在配置文件中启用文件...
在"day04.txt"和"struts2_04、struts2_05"的文件中,可能包含了具体的案例分析和实践操作,比如创建Action类、编写配置文件、使用拦截器、处理表单提交等。通过这些实例,你可以更好地理解Struts2框架的使用方式,...
拦截器(Interceptor)是Struts2框架中的一个核心组件,它可以在执行Action之前或之后进行一些预处理或后处理工作,如验证、记录日志等。拦截器的设计模式为AOP(面向切面编程),通过这种方式可以使得业务逻辑更加...
教程分为6个部分,从基础到深入,分别是day01、day02、day03、day04、day05和day06,这表明教程按照学习路径进行组织,帮助你在一周内掌握Struts2的关键知识。 首先,day01可能涵盖了Struts2的基本概念,包括MVC...
- 使用Struts2的Mock测试框架进行单元测试,确保Action和拦截器的功能正确。 - 调试技巧和工具的使用也是学习的一部分。 以上是对"struts2课件第二天"内容的概括,具体内容会涉及更多的代码示例、实战练习以及对...
3. **Interceptor**:拦截器是Struts2的一个重要特性,它允许开发者在Action执行前后插入自定义的逻辑。拦截器可以用于日志记录、权限验证、数据校验等多种功能,增强了框架的灵活性。 4. **配置文件**:在Struts2...
标题中的“传智168期JavaEE struts2杜宏 day 29~day31笔记”暗示了文档是一系列关于JavaEE技术栈中的Struts2框架的课程笔记,由杜宏教授,并且特别强调了是从29天到31天的学习内容。JavaEE(Java Platform, ...