struts学习(八)—自定义拦截器
2017-03-16 19:19
239 查看
当浏览器中输入:
http://127.0.0.1:8080/strutslearn5/checkLogin时,向LoginAction发送请求,此请求会被LoginInterceptor 拦截,因为此时肯定没有用户的登录信息,因此会返回到login.jsp界面。
http://127.0.0.1:8080/strutslearn5/checkLogin时,向LoginAction发送请求,此请求会被LoginInterceptor 拦截,因为此时肯定没有用户的登录信息,因此会返回到login.jsp界面。
登录action
package test; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport{ public String execute(){ return SUCCESS; } }
自定义拦截器文件
package testInterceptor; import java.util.Map; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.AbstractInterceptor; public class LoginInterceptor extends AbstractInterceptor { @Override public String intercept(ActionInvocation ai) throws Exception { Map session = ai.getInvocationContext().getSession(); String username = (String) session.get("user"); if(username!=null && username.length()>0){ return ai.invoke(); } else { ActionContext ac = ai.getInvocationContext(); ac.put("popedom", "您还没有登陆"); return Action.LOGIN; } } }
struts.xml文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <package name="testInterceptor" extends="struts-default" namespace="/"> <interceptors> <interceptor name="checkLogin" class="testInterceptor.LoginInterceptor"></interceptor> </interceptors> <action name="checkLogin" class="test.LoginAction"> <result name="success">/success.jsp</result> <result name="login">/login.jsp</result> <interceptor-ref name="defaultStack"/> <interceptor-ref name="checkLogin" /> </action> </package> </struts>
login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>登陆</title> </head> <body> <center> <s:property value="popedom" /> <!-- 定义信息输出标签 --> <br /> <b>用户登录</b> <br /> <s:form> <s:textfield label="用户名" name="username"></s:textfield> <s:password label="密码" name="password"></s:password> <s:submit value="提交" ></s:submit> </s:form> </center> </body> </html>
success.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> 登陆成功 </body> </html>
应用程序目录结构
相关文章推荐
- Struts学习之自定义拦截器
- [原创]java WEB学习笔记74:Struts2 学习之路--自定义拦截器,struts内建的拦截器
- struts入门--自定义拦截器(custom interceptor)之耍耍拦截器
- Struts 2学习笔记——拦截器相关
- Struts2重新学习之自定义拦截器(判断用户是否是登录状态)
- Struts2 学习笔记——struts.xml文件之拦截器的配置
- WebService学习笔记-CXF添加自定义拦截器
- struts如何自定义一个拦截器?
- struts自定义拦截器的三种方式
- Struts学习笔记(五)拦截器上 拦截器的基本原理(动态代理)
- struts自定义拦截器的编写
- springmvc学习笔记(28)——自定义拦截器
- Struts2学习笔记之自定义拦截器
- struts2.X心得9--struts2自定义拦截器以及文件上传等几个拦截器使用案例
- struts2.X心得9--struts2自定义拦截器以及文件上传等几个拦截器使用案例
- Struts2学习(第九篇)——内置拦截器和自定义拦截器详解(附源码)
- 框架学习之Struts2 第五节 自定义拦截器
- struts自定义拦截器
- JavaEE-------------------------自定义Struts 2拦截器得到请求参数
- flume学习(九):自定义拦截器