Struts10---拦截器



01.创建一个登录界面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<form action="user/login" method="post">
<input type="text" name="user.name"/>
<input type="submit" value="登录"/>
</form>
</body>
</html>
02.创建对应的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> <!--设置开发模式 -->
<constant name="struts.devMode" value="true"/> <package name="default" namespace="/user" extends="struts-default">
<action name="login" class="cn.bdqn.action.UserAction" method="login">
<!-- 重定向到一个指定命名空间下面的 action-->
<result type="redirectAction">
<param name="namespace">/interceptor</param>
<param name="actionName">login</param>
</result>
</action>
</package>
<include file="user.xml"/>
</struts>
03.创建对应的UserAction
public class UserAction extends ActionSupport{
private User user; //验证的对象
//登录的方法
public String login(){
System.out.println("进入UserAction的login()");
//把前台登录的用户信息保存到session
Map<String, Object> session = ActionContext.getContext().getSession();
if (user.getName()!=null&&!user.getName().equals("")) {
session.put("user", user.getName());
}else {
session.put("user", "");
}
return SUCCESS;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
04.创建对应的user.xml文件
应该是先创建loginAction,之后创建对应的拦截器! 最后把拦截器配置在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="interceptor" namespace="/interceptor" extends="default">
<!-- 配置自定义的拦截器 -->
<interceptors>
<interceptor name="myInterceptor" class="cn.bdqn.interceptor.LoginInterceptor"/>
<!--自定义拦截器栈 -->
<interceptor-stack name="myStack">
<!-- 必须先引用struts2默认的拦截器栈 -->
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="myInterceptor"/>
</interceptor-stack>
</interceptors>
<!-- 让程序 执行我们自定义的拦截器栈 -->
<default-interceptor-ref name="myStack"/> <action name="login" class="cn.bdqn.action.LoginAction" method="login">
<result name="error">/error.jsp</result>
<result>/success.jsp</result>
</action>
</package>
</struts>
05.创建对应的LoginAction
public class LoginAction extends ActionSupport {
public String login(){
System.out.println("这是LoginAction中的login()");
return SUCCESS;
}
}
06.创建对应的拦截器
public class LoginInterceptor implements Interceptor {
/**
* 在整个拦截器的生命周期中!
* 服务器启动的时候执行一次!
*/
@Override
public void init() {
System.out.println("拦截器的init()....................");
}
/**
* intercept相当于我们filter中的doFilter()
* 拦截一次请求,就会执行一次!
*/
@Override
public String intercept(ActionInvocation invocation) throws Exception {
System.out.println("拦截器的intercept()....................");
System.out.println("当期的执行Action====:"+invocation.getAction());
Map<String, Object> session = ActionContext.getContext().getSession();
//从session中获取用户的姓名
String name=(String) session.get("user");
if (name!=null&&!name.equals("")) { //说明前台用户有输入
//放行
return invocation.invoke();
}else {
return "error";
}
}
/**
* 在整个拦截器的生命周期中!
* 服务器关闭的时候执行一次!
*/
@Override
public void destroy() {
System.out.println("拦截器的destroy().................");
}
}
07.错误界面 ! 省略!

Struts10---拦截器的更多相关文章
- 6. ModelDriven拦截器、Preparable 拦截器
1. 问题 Struts2 的 Action 我们将它定义为一个控制器,但是由于在 Action 中也可以来编写一些业务逻辑,也有人会在 Action 输入业务逻辑层. 但是在企业开发中,我们一般会将 ...
- springmvc的拦截器
什么是拦截器 java里的拦截器是动态拦截action调用的对象.它提供了一种机制可以使 ...
- Struts的拦截器
Struts的拦截器 1.什么是拦截器 Struts的拦截器和Servlet过滤器类似,在执行Action的execute方法之前,Struts会首先执行Struts.xml中引用的拦截器,在执行完所 ...
- Struts2拦截器的执行过程浅析
在学习Struts2的过程中对拦截器和动作类的执行过程一度陷入误区,特别读了一下Struts2的源码,将自己的收获分享给正在困惑的童鞋... 开始先上图: 从Struts2的图可以看出当浏览器发出请求 ...
- 学习SpringMVC——拦截器
拦截器,顾名思义就是用来拦截的. 那什么是拦截,又为什么要拦截.对于Spring MVC来说,拦截器主要的工作对象就是用户的请求,拦截下来之后,我们可以在拦截的各个阶段悉心呵护[为所欲为].常见的比如 ...
- alias拦截器的使用
在SSH项目中,有时需要由一个Action跳转到另一个Action.有两种方式可以实现Action之间的跳转,一种是chain,另一种是redirectAction,这两种方式之间的区别是chain是 ...
- Struts2入门(二)——配置拦截器
一.前言 之前便了解过,Struts 2的核心控制器是一个Filter过滤器,负责拦截所有的用户请求,当用户请求发送过来时,会去检测struts.xml是否存在这个action,如果存在,服务器便会自 ...
- 通过拦截器Interceptor实现Spring MVC中Controller接口访问信息的记录
java web工程项目使用了Spring+Spring MVC+Hibernate的结构,在Controller中的方法都是用于处理前端的访问信息,Controller通过调用Service进行业务 ...
- spring 拦截器
1.mvc.xml <!-- 自定义拦截链配置 --> <mvc:interceptors> <mvc:interceptor> <mvc:mapping p ...
- Struts2 拦截器配置以及实现
@(Java ThirdParty)[Struts|Interceptor] Struts2 拦截器配置以及实现 Struts2的拦截器应用于Action,可以在执行Action的方法之前,之后或者两 ...
随机推荐
- Codeforce 475 C. Kamal-ol-molk's Painting
从最左上的点開始枚举长宽.... C. Kamal-ol-molk's Painting time limit per test 2 seconds memory limit per test 256 ...
- java中集合的扩容
对于Java中的各种集合类,根据底层的具体实现,小结了一下大致有3种扩容的方式: 1.对于以散列表为底层数据结构实现的,(譬如hashset,hashmap,hashtable等),扩容方式为当链表数 ...
- Pantone色卡——安全装备的面板、丝印及铭牌颜色设计参考
可以参考上传文件<Pantone色卡电子版下载>
- CoreThink开发(十一)首页控制器判断移动设备还是PC并做相应处理
在home模块Index控制器添加判断代码 application\Home\Controller\IndexController.class.php <?php // +----------- ...
- Phpstorm 换行设置(复制 http://jingyan.baidu.com/article/86fae346b2cb673c49121ad3.html)
很多时候代码太长超出了屏幕的宽度,默认情况下没有自动换行的,我们需要把光标往后挪,才能看到后面代码,显得略为蛋疼,我个人比较喜欢能够自动换行. 下面就说下Phpstorm里如何默认开启自动换行(use ...
- logback logback.xml 常用配置详解(转)
本文转自:http://my.oschina.net/looly/blog/298675 推荐参考:http://blog.csdn.net/haidage/article/details/67945 ...
- SSDB 使用笔记
1. SSDB中scan key_start key_end limit ,key_start 和 key_end 是指字母的顺序,不是数字. 2. 进入客户端:./ssdb-cli -p 8888
- linux 搭建 nexus maven私服仓储
一.下载 1.创建下载软件包目录 mkdir /home/install 2.在/home/install下载nexus包,或者将下载好的nexus压缩包上传至/home/install wget ...
- 20145201 《Java程序设计》第一周学习总结
# 20145201 <Java程序设计>第一周学习总结 ## 教材学习内容总结 万事开头难,终于开始学习了Java.寒假的时候看到老师的要求确实有点慌,但是这周翻开书,从书本知识第一行学 ...
- 20165101刘天野 2018-2019-2《网络对抗技术》Exp1 逆向与Bof基础
20165101刘天野 2018-2019-2<网络对抗技术>Exp1 逆向与Bof基础 1. 逆向及Bof基础实践说明 1.1 实践目标 本次实践的对象是一个名为pwn1的linux可执 ...