SSH与SSM学习之SSH实现CRM练习16——登录校验拦截器
2017-12-04 21:02
459 查看
SSH与SSM学习之SSH实现CRM练习16登录校验拦截器
一图示
二PrivilegeInterceptor
三PrivilegeInterceptor配置
四strutsxml 配置说明
五源码下载
都需要登录验证。主要的操作方式就是通过拦截器来实现的。
如果不按这个顺序配置,会出错的。
struts.xml的配置如下
一图示
二PrivilegeInterceptor
三PrivilegeInterceptor配置
四strutsxml 配置说明
五源码下载
SSH与SSM学习之SSH实现CRM练习16——登录校验拦截器
一、图示
除了调用登录、注册、上传文件(因为这个单独的,和其他没关),这三个方法外,其他的方法调用的时候都需要登录验证。主要的操作方式就是通过拦截器来实现的。
二、PrivilegeInterceptor
/** * @author:qiwenming * @date:2017/12/3 0003 * @description: * 登录的验证 */ public class PrivilegeInterceptor extends MethodFilterInterceptor { //不校验登陆和注册方法 @Override protected String doIntercept(ActionInvocation invocation) throws Exception { //1 获取session //2 获取登录标识 //3 判断标识是否存在 Map<String,Object> session = ActionContext.getContext().getSession(); User user = (User)session.get("user"); if(user!=null){ //存在-->放行 return invocation.invoke(); }else { //不存在---> 重定向到登陆页面 return "toLogin"; } } }
三、PrivilegeInterceptor配置
主要在 struts.xml 中添加如下配置................... <interceptors> <!-- 注册拦截器 --> <interceptor name="privilegeInterceptor" class="com.qwm.ssh_crm.web.intercreptor.PrivilegeInterceptor"></interceptor> <!-- 配置拦截器栈 --> <interceptor-stack name="myStack"> <interceptor-ref name="privilegeInterceptor"> <param name="excludeMethods">login,regist,uploadFile</param> </interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> </interceptor-stack> <!-- 指定默认拦截器栈 --> </interceptors> <!-- 指定默认拦截器栈 --> <default-interceptor-ref name="myStack"></default-interceptor-ref> ...................
四、struts.xml 配置说明
struts.xml 中的 package中配置的顺序是有要求的,如下:result-types? interceptors? default-interceptor-ref?, default-action-ref? default-class-ref? global-results? global-allowed-methods? global-exception-mappings?, action*
如果不按这个顺序配置,会出错的。
struts.xml的配置如下
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd"> <struts> <!-- 配置动态方法调用是否开启常量 默认是关闭的,需要开启--> <constant name="struts.enable.DynamicMethodInvocation" value="true"/> <!-- struts.objectFactory = spring 将action的创建交给spring容器 struts.objectFactory.spring.autoWire = name spring负责装配Action依赖属性 默认已经打开了--> <constant name="struts.objectFactory" value="spring"/> <package name="crm1" namespace="/" extends="struts-default"> <interceptors> <!-- 注册拦截器 --> <interceptor name="privilegeInterceptor" class="com.qwm.ssh_crm.web.intercreptor.PrivilegeInterceptor"></interceptor> <!-- 配置拦截器栈 --> <interceptor-stack name="myStack"> <interceptor-ref name="privilegeInterceptor"> <param name="excludeMethods">login,regist,uploadFile</param> </interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> </interceptor-stack> <!-- 指定默认拦截器栈 --> </interceptors> <!-- 指定默认拦截器栈 --> <default-interceptor-ref name="myStack"></default-interceptor-ref> <!-- 全局结果集配置 --> <global-results> <result name="toLogin" type="redirect" >/login.jsp</result> </global-results> <!--全局允许方法调用--> <global-allowed-methods>regex:.*</global-allowed-methods> <global-exception-mappings> <exception-mapping result="error" exception="java.lang.RuntimeException"></exception-mapping> </global-exception-mappings> <!--class属性值,来自applicationContext.xml 中 Action的配置--> <action name="UserAction_*" class="userAction" method="{1}"> <result name="toHome" type="redirect">/index.html</result> <result name="error">/login.jsp</result> <result name="regist" >/regist.jsp</result> </action> <action name="CustomerAction_*" class="customerAction" method="{1}"> <result name="edit" >/jsp/customer/add.jsp</result> <result name="list" >/jsp/customer/list.jsp</result> <result name="toList" type="redirectAction" > <param name="namespace">/</param> <param name="actionName">CustomerAction_list</param> </result> </action> <action name="BaseDictAction" class="baseDictAction" method="execute"/> <action name="UploadFileAction" class="uploadFileAction" method="uploadFile"> <result name="success" >/jsp/upload.jsp</result> </action> <action name="LinkManAction_*" class="linkManAction" method="{1}"> <result name="add" >/jsp/linkman/add.jsp</result> <result name="list" >/jsp/linkman/list.jsp</result> <result name="toList" type="redirectAction" > <param name="namespace">/</param> <param name="actionName">LinkManAction_list</param> </result> </action> </package> </struts>
五、源码下载
https://github.com/wimingxxx/ssh_crm相关文章推荐
- SSH与SSM学习之SSH实现CRM练习15——注册登录
- SSH与SSM学习之SSH实现CRM练习01——客户列表01_客户列表分析
- SSH与SSM学习之SSH实现CRM练习14——联系人列表
- SSH与SSM学习之SSH实现CRM练习05——客户列表05_CustomerAction
- SSH与SSM学习之SSH实现CRM练习07——BaseDao封装
- SSH与SSM学习之SSH实现CRM练习08——数据字典表
- SSH与SSM学习之SSH实现CRM练习03——客户列表03_CustomerDao
- SSH与SSM学习之SSH实现CRM练习12——文件上传原理
- SSH与SSM学习之SSH实现CRM练习17——添加客户拜访记录和列表
- SSH与SSM学习之SSH实现CRM练习06——客户列表06_页面和测试
- SSH与SSM学习之SSH实现CRM练习11——文件上传
- SSH与SSM学习之SSH实现CRM练习04——客户列表04_CustomerService
- SSH与SSM学习之SSH实现CRM练习13——添加联系人
- SSH与SSM学习之SSH实现CRM练习10——编辑客户和删除客户
- SSH与SSM学习之SSH实现CRM练习09——新增客户
- SSH与SSM学习之SSH实现CRM练习02——客户列表02_PageBean
- SSH与SSM学习之SSH整合11——实现登录功能
- 学习SSH时的练习demo,实现分页和登录等简单功能
- Linux学习日志day2 Part1——搭建freeIPA服务器实现用户管理以及SSH服务远程登录
- ssm学习总结-Ajax实现简单的登录校验