Struts2之Struts2-2.5.5 Interceptor
Struts2-2.5.5版本是目前为止最新的版本了,相对于之前的2.3版本以及再之前的版本而言,新版本改动了很多。
好了,废话不多说,GO CODE!
基本jar包:
web.xml核心配置,这里要注意咯!
<!-- struts2核心控制器 -->
<filter>
<filter-name>struts2</filter-name>
<!-- 这里要格外注意咯 -->
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
<!-- 设置struts2默认编码集为UTF-8 -->
<init-param>
<param-name>struts.il8.encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<!-- 设置struts.xml文件位置 -->
<init-param>
<param-name>filterConfig</param-name>
<param-value>classpath:struts.xml</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
web.xml
接下来是struts.xml
<struts>
<!-- 设置默认编码集为UTF-8 -->
<constant name="struts.il8n.encoding" value="UTF-8" />
<!--设置开发者模式 -->
<constant name="struts.devMode" value="true" />
<!-- 当 struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生 产环境下使用),开发阶段最好打开 -->
<constant name="struts.configuration.xml.reload" value="true" />
<!--设置主题 -->
<!-- <constant name="struts.ui.theme" value="simple" /> -->
<!-- 该 属性指定需要Struts 2处理的请求后缀,该属性的默认值是action,即 所有匹配*.action的请求都由Struts 2处理。如
果用户需要指定多个请求后缀,则多个后缀之间以英文逗号(,)隔开 -->
<constant name="struts.action.extension" value="action," />
<!-- 设置是否支持动态方法调用,true为支持,false不支持. -->
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<!-- 设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭 -->
<constant name="struts.serve.static.browserCache" value="false" />
<constant name="struts.convention.default.parent.package" value="common"/>
<!-- 公共package -->
<package name="common" namespace="/" extends="struts-default">
<!-- 配置拦截器 -->
<interceptors>
<!-- 注册拦截器 -->
<interceptor name="loginInterceptor" class="com.Struts2Dashboard.action.LoginInterceptor" />
<!-- 引用已经注册了拦截器,形成自定义拦截器栈,自定义拦截器栈,将覆盖到默认栈 ,必须手动再自定义拦截器栈中 引用默认栈 -->
<interceptor-stack name="loginStack">
<!-- 默认 -->
<interceptor-ref name="defaultStack"></interceptor-ref>
<!-- 自定义 -->
<interceptor-ref name="loginInterceptor"></interceptor-ref>
</interceptor-stack>
</interceptors>
<!-- 修改当前<package>默认栈,修改后package下的所有的action都将使用此栈 -->
<default-interceptor-ref name="loginStack"></default-interceptor-ref>
<!-- 全局结果集 -->
<global-results>
<!-- 没有登陆 -->
<result name="noLogin">/WEB-INF/pages/sweet/404.jsp</result>
</global-results>
</package>
</struts>
struts.xml
可有可无,不要怕麻烦,前期是为了后期维护做准备的。
bean就不在粘贴了哈,需要的话,可以评论留言哈。
/**
* 登录拦截器action
*/
@SuppressWarnings("serial")
public class LoginInterceptor implements Interceptor {
//初始化
public void init() {
}
//拦截
public String intercept(ActionInvocation invocation) throws Exception { /*if(LoginAction.class == invocation.getAction().getClass()){
return invocation.invoke();
}*/
Object action = invocation.getAction();
if (action instanceof LoginAction) {
//如果是LoginAction,则进行执行,即不做拦截
return invocation.invoke();
} //判读session是否存在用户
User user = (User) ActionContext.getContext().getSession().get("user");
System.out.println(user); if(user == null){
System.out.println("action");
return "noLogin";
}
//放行
return invocation.invoke();
}
//销毁
public void destroy() {
}
}
LoginInterceptor
public class LoginAction extends ActionSupport implements ModelDriven<User> { private User user = new User(); @Override
public User getModel() {
// TODO Auto-generated method stub
return user;
}
@Action(value="login")
public String execute() throws Exception {
ActionContext actionContext = ActionContext.getContext();
if ("admin".equals(user.getUsername()) && "admin".equals(user.getPassword())) {
actionContext.getSession().put("user", user);
System.out.println("success");
return "success";
} else {
System.out.println("input");
return "input";
}
} }
LoginAction
只是部分关键性代码,需要项目的话,评论处留下联系方式。
没有考虑session过期的情况哈,只是最基础的登录拦截器而已,请多多指教谢谢。
转载请注明出处,谢谢!未经授权请勿私自对本文相关图片进行添加水印!
Struts2之Struts2-2.5.5 Interceptor的更多相关文章
- 18.如何自我Struts2它Struts2标签和综合汇总文章有点早
18.如何自我Struts2它Struts2标签和综合汇总文章有点早[视频] 之前写了一篇"打算做一个视频教程探讨怎样自学计算机相关的技术",优酷上传不了.仅仅好传到百度云上: h ...
- 13.怎样自学Struts2之Struts2本地化[视频]
13.怎样自学Struts2之Struts2本地化[视频] 之前写了一篇"打算做一个视频教程探讨怎样自学计算机相关的技术",优酷上传不了,仅仅好传到百度云上: http://pan ...
- 16.怎样自学Struts2之Struts2异常处理[视频]
16.怎样自学Struts2之Struts2异常处理[视频] 之前写了一篇"打算做一个视频教程探讨怎样自学计算机相关的技术",优酷上传不了,仅仅好传到百度云上: http://pa ...
- struts2(一) struts2入门
首先推荐一本书,虽然我还没看过,但是我以后肯定会看的,<Struts+技术内幕>提取密码:kg6w .现在只是停留在会使用struts2的层次,自己也想继续深入研究,但是感觉自己的知识面还 ...
- 14.怎样自学Struts2之Struts2类型转换[视频]
14.怎样自学Struts2之Struts2类型转换[视频] 之前写了一篇"打算做一个视频教程探讨怎样自学计算机相关的技术",优酷上传不了.仅仅好传到百度云上: http://pa ...
- 11.怎样自学Struts2之Struts2验证[视频]
11.怎样自学Struts2之Struts2验证[视频] 之前写了一篇"打算做一个视频教程探讨怎样自学计算机相关的技术",优酷上传不了.仅仅好传到百度云上: http://pan. ...
- Java进阶知识02 Struts2下的拦截器(interceptor)和 过滤器(Filter)
一.拦截器 1.1.首先创建一个拦截器类 package com.bw.bms.interceptor; import com.opensymphony.xwork2.ActionContext; i ...
- Struts2(七) Struts2访问Servlet的API
当接受表单参数,向页面保持数据时.要用到Struts访问Servlet 的API .下面只做参考,有错误或不同意见可以发送邮箱2440867831@qq.com .建议大家看struts文档,源代码 ...
- 简单模拟struts2及struts2的处理流程介绍
用了几天模拟struts2,最后结果还是很成功的,也基本没有什么遇上比较难解决的问题,万事开头难,在最开始的时候无从下手,看着下面这张struts2工作流程图配合着网上的博客看了一天终于有了眉目. 看 ...
- 【struts2】Struts2的异常处理
在Action中execute方法声明为:public String execute() throws Exception,这样,Action可以抛出任何Exception. 1)自己实现异常处理 我 ...
随机推荐
- 知方可补不足~SQL2008中的发布与订阅模式
回到目录 作用:完成数据库与数据库的数据同步 原理:源数据库发布需要同时的表,存储过程,或者函数:目标数据库去订阅它,当源发生变化时,目标数据库自己同步,注意,由于这个过程是SQL自动完成的,所以要求 ...
- js定时器的时间最小值-setTimeout、setInterval
HTML5标准规定 setTimeout的最短时间间隔是4毫秒: setInterval的最短间隔时间是10毫秒,也就是说,小于10毫秒的时间间隔会被调整到10毫秒 书和MDC 在John Resig ...
- fir.im Weekly - 1000 个 Android 开源项目集合
冬天到了,适宜囤点代码暖暖身.本期 fir.im Weekly 收集了最近一些不错的 GitHub 源码.开发工具和技术实践教程类文章分享给大家. codeKK - 集合近 1000 Android ...
- DOM_01之树及遍历
1.DOM:ECMAScript+DOM+BOM,Document Object Model,核心DOM+HTML DOM+XML DOM: 2.辨析:①HTML:专门编写网页内容的语言:②XHTML ...
- apache多站点配置
apache多站点配置 临时需要个测试站,然后就到apache中配置vhosts,结果这货总是显示"拒绝了你的请求",找半天发现居然还要添加端口监听 vhosts.conf 添加v ...
- 关于js中sort()排序方法
第一次写这个,算是记录自己的学习前端的一点点的历程吧.今天在做一个图片的随机排序遇到了一个问题,部分截图如下 我用的是json格式存储数组,想通过排序实现img数组中的内容升序或是降序发现用sort自 ...
- AJAX文件上传实践与分析,带HTML5文件上传API。
对于HTML5已经支持AJAX文件上传了,但如果需要兼容的话还是得用一点小技巧的,HTML5等等介绍,先来看看以前我们是怎么写的. 网上可能会有一些叫AJAX文件上传插件,但在AJAX2.0之前是不可 ...
- CSS实现水平居中的4种思路
× 目录 [1]text-align [2]margin [3]absolute [4]flex 前面的话 水平居中是经常遇到的问题.看似方法较多,条条大路通罗马.但系统梳理下,其实都围绕着几个思路展 ...
- 最近修改的几个小bug
最近修改的几个 bug,问题不大,查找起来却几番周折,汇总起来如下. 1.诡异电话号码 客服邮件反馈,很多用户服务热线变成了“0371-45875487”.看到这问题的第一反映是可能因为程序某个地方有 ...
- webstorm使用技巧
WebStorm快捷键收集:模式visual studio 代码提示:ctrl + alt + 空格 代码补全:alt + / 代码换行:ctrl + shift + 上下箭头 重新运行:ctrl + ...