1.在拦截器中获得用户登录的session
在LoginCheckInterceptor中extends AbstractInterceptor
package com.jsu.struts2.interceptor; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.AbstractInterceptor; public class LoginCheckInterceptor extends AbstractInterceptor { @Override public String intercept(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{ //提示信息,可以通过key值在页面获取 ctx.put("err_msg", "对不起,你还木有登录,请先登录"); return "error"; } } }
2.在LoginAction中
package com.jsu.struts2.action; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport { @Override public String execute() throws Exception { ActionContext.getContext().getSession().put("flag", "ok"); System.out.println("OK"); System.out.println(" Action Execute..."); return SUCCESS; } }
3.在OrderAction中extends ActionSupport
package com.jsu.struts2.action; import com.opensymphony.xwork2.ActionSupport; public class OrderAction extends ActionSupport{ @Override public String execute(){ System.out.println("开始下订单、、、"); return SUCCESS; } }
4.在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>
5.在struts.xml文件中配置
<struts> <package name="loginDemo" namespace="/" extends="struts-default"> <interceptors> <interceptor name="myint1" class="com.jsu.struts2.interceptor.LoginCheckInterceptor"> </interceptor> <action name="login" class="com.jsu.struts2.action.LoginAction"> <interceptor-ref name="defaultStack"></interceptor-ref> <result>/index.jsp</result> </action> <action name="order" class="com.jsu.struts2.action.OrderAction"> <interceptor-ref name="myint1"></interceptor-ref> <result name="success">/index.jsp</result> <result name="error">/error.jsp</result> </action> </package> </struts>
6.在地址栏发请求
1.http://localhost:8080/struts2_04/order error.jsp页面输出:你还没有登录,请先登录
2.先输入http://localhost:8080/struts2_04/login 控制台输出登录成功
在输入http://localhost:8080/struts2_04/order 控制台输出开始下订单、、、
发表评论
-
struts2day06 自定义结果
2012-07-16 12:14 674类implements Result接口 或者 extends ... -
struts2day06 Struts2.0的result
2012-07-16 12:01 950Struts2.0的result Action ... -
struts2day06学习笔记
2012-07-16 10:55 8531.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 6511、在服务器端提供一个文件夹存放提交的文件,upload文件夹 ... -
Struts2day04Struts2.0实现阻止表单重复提交
2012-07-12 21:01 6251.使用叫做token的拦截器,在表单中加入<s:tok ... -
Struts2day04对Action的方法进行过滤拦截
2012-07-12 20:38 17821.写一个Action类 UserManagerAction ... -
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 766Struts2.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 1189在listUser.jsp页面 <%@ page la ... -
Struts2day02表单标签
2012-07-10 07:15 6671.在struts2Form.jsp中 <%@ ... -
struts2day02访问ValueStack中的数据以及访问Context中的对象
2012-07-10 07:14 10471.在show.jsp页面 <%@ page lang ... -
Struts2day02动态方法调用
2012-07-10 07:14 6541.在opt.jsp页面 <%@ page langu ... -
Struts2day02使用通配符调用指定的方法
2012-07-10 07:14 7311.在opt.jsp页面 <%@ page langu ...
相关推荐
- **OGNL演示01**:介绍如何在Struts2中使用OGNL来访问对象的属性,如获取用户信息中的姓名、年龄等。 - **OGNL演示02**:进一步讲解OGNL表达式的复杂用法,如使用OGNL进行条件判断、循环迭代等高级操作。 - **...
在提供的压缩包文件中,"struts_day_01.pdf"可能涵盖了Struts的基本概念和安装配置,"struts_day_02[3].pdf"可能涉及了标签库的使用,"struts_day_05.pdf"可能讲解了验证框架的详细操作,而"struts_day_06.pdf"可能...
此外,OGNL还用于条件判断和循环结构,如`<s:if test="%{user.isAdmin}">`检查用户是否为管理员。 Struts2的安全性与OGNL紧密相关。由于OGNL的强大功能,如果不正确或不安全地使用,可能会导致严重的安全问题,例如...
在Spring Security或者Struts2等框架中,我们可以配置访问控制规则,限制不同用户可以访问的页面或服务。 7. **源码**: 标签中提到的“源码”可能指的是提供的`EncodingFilter.java`文件,这是一个Java源代码文件...
SSH(Struts2 + Spring + Hibernate)是一种经典的Java Web开发框架,它将MVC(Model-View-Controller)模式应用于实际项目,实现了业务逻辑、数据访问和用户界面的分离,提升了开发效率和代码的可维护性。...
`start1`是流程的起始节点,`exclusive1`是一个决策节点,根据表达式`#{job}`(可能是判断用户职务)来决定流程走向,即`isChief`或`isnotChief`,分别对应“主管审批”和“非主管审批”。 `boosApprove`和`...
instanceof (关键字) 运算符,用于引用变量,以检查这个对象是否是某种类型。返回 boolean 值。 interface (关键字) 接口 ['intәfeis] invoke vt.调用 [in'vәuk]' ( invocation [,invәu'keiʃәn]) Iterator ...
- **判断是否为当月最后一天**:使用`LocalDate`和`MonthDay`。 ```java LocalDate date = LocalDate.now(); MonthDay monthDay = MonthDay.of(date.getYear(), date.getMonth()); boolean isLastDayOfMonth = ...
=:判断两个值是否不等. 3. >或者gt:判断左边值是否大于右边值 4. >=或者gte:判断左边值是否大于等于右边值 5. <或者lt:判断左边值是否小于右边值 6. 或者lte:判断左边值是否小于等于右边值 注意:=和!=可以用于...
- `File.isDirectory()`判断是否为目录。 - `Files.exists()`检查文件或目录是否存在。 - `BufferedReader/BufferedWriter`用于文件读写。 7. **多态** - 多态性是Java面向对象的重要特性,通过继承、重载和...
- 获取当月最后一天:使用`java.time.MonthDay`类的`ofYearMonth`方法配合`Month`枚举。 - 格式化日期:推荐使用`java.time.format.DateTimeFormatter`类。 5. **数组和集合**:Java提供了多种集合框架类,如`...
- 判断某日期是否为当月最后一天:使用`java.time.LocalDate`类的`isEqual()`方法结合`MonthDay`。 - 格式化日期:使用`SimpleDateFormat`或`DateTimeFormatter`。 5. **数组和集合** - 数组:固定大小的数据...