JavaEE 之 后台验证+拦截器
1.Validator后台验证
a.在web.xml中配置
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/mySpring-*.xml
</param-value>
</context-param>
<servlet>
<servlet-name>myValidator</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/mySpring-*.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>myValidator</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
b.在mySpring-servlet.xml中配置
<!-- 启动注解驱动 -->
<mvc:annotation-driven validator="validator"/>
<!--启用自动扫描 -->
<context:component-scan base-package="com.wode.controller" /> <bean id="validator"
class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean ">
<property name="providerClass" value="org.hibernate.validator.HibernateValidator" />
</bean>
c.Controller中
@RequestMapping(path="login",method=RequestMethod.POST)
public ModelAndView login(@Valid UserBean user,BindingResult br){
ModelAndView mod = new ModelAndView();
if(br.hasErrors()){
mod.setViewName("login");
return mod;
}else{
mod.setViewName("main");
mod.addObject("userName",user.getUserName());
return mod;
} }
d.在Bean中
@NotEmpty(message = "不能为空")
@Length(max=16, min=8, message= "账户必须是8-16位")
private String userName; @NotEmpty(message = "不能为空")
private String userPwd;
e.在html中
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags/form" %>
<spring:form action="login.do" method="post" commandName="userBean">
用户名:<input type="text" name="userName"><spring:errors delimiter="," path="userName"></spring:errors><br/>
密码:<input type="password" name="userPwd"><spring:errors delimiter="," path="userPwd"></spring:errors><br/>
<input type="submit">
</spring:form>
2.Interceptors拦截器
a.在mySpring-servlet.xml中配置
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/*"/>
<mvc:exclude-mapping path="/login.do"/>
<bean class="com.wode.util.MyInterceptor" id="MyInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
b.建拦截器类
①方法一:继承HandlerInterceptorAdapter类
public class MyInterceptor extends HandlerInterceptorAdapter{
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
// TODO Auto-generated method stub
boolean flag = false;
HttpSession session = request.getSession();
if(session.getAttribute("user") != null){
flag=true;
}else{
response.sendRedirect("login.jsp");
}
return flag;
}
}
②方法一:实现HandlerInterceptor接口
public class MyInterceptor2 implements HandlerInterceptor {
@Override
public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
// TODO Auto-generated method stub
System.out.println("方法执行之后视图生成之前拦截");
}
@Override
public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
throws Exception {
// TODO Auto-generated method stub
System.out.println("方法执行之后拦截");
}
@Override
public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {
// TODO Auto-generated method stub
System.out.println("方法执行之前拦截");
//ture--接着执行 false 停止执行
//session 中如果没有用户信息 就重定向到登录页面
return true;
}
}
JavaEE 之 后台验证+拦截器的更多相关文章
- Asp.net Mvc 身份验证、异常处理、权限验证(拦截器)实现代码
本问主要介绍asp.net的身份验证机制及asp.net MVC拦截器在项目中的运用.现在让我们来模拟一个简单的流程:用户登录>权限验证>异常处理 1.用户登录 验证用户是否登录成功步骤直 ...
- SpringMVC拦截器(实现登录验证拦截器)
本例实现登陆时的验证拦截,采用SpringMVC拦截器来实现 当用户点击到网站主页时要进行拦截,用户登录了才能进入网站主页,否则进入登陆页面 核心代码 首先是index.jsp,显示链接 <%@ ...
- spring登录验证拦截器和根据用户角色登录
大家都知道spring的用户登录拦截器,确实省去了程序员不少的精力,下面说说我在项目中使用的感受. 德安微信管理后台是管理多个微信帐号的平台,登录到平台的用户有三个角色,游客和微信帐号管理员.超级管理 ...
- struts2学习(6)自定义拦截器-登录验证拦截器
需求:对登录进行验证,用户名cy 密码123456才能登录进去: 登录进去后,将用户存在session中: 其他链接要来访问(除了登录链接),首先验证是否登录,对这个进行拦截: com.cy.mod ...
- JAVAEE——struts2_04:自定义拦截器、struts2标签、登陆功能和校验登陆拦截器的实现
一.自定义拦截器 1.架构 2.拦截器创建 //拦截器:第一种创建方式 //拦截器生命周期:随项目的启动而创建,随项目关闭而销毁 public class MyInterceptor implemen ...
- Axios Token验证拦截器
import axios from 'axios'; // req拦截 axios.interceptors.request.use( //设置头部的token config.headers['tok ...
- JavaEE权限管理系统的搭建(六)--------使用拦截器实现菜单URL的跳转权限验证和页面的三级菜单权限按钮显示
本小结讲解,点击菜单进行页面跳转,看下图,点击管理员列表后会被认证拦截器首先拦截,验证用户是否登录,如果登录就放行,紧接着会被权限验证拦截器再次拦截,拦截的时候,会根据URL地址上找到对应的方法,然后 ...
- 基于SSH2框架Struts2拦截器的登录验证实现(转)
大象在这里假设你已经弄清楚了Struts2拦截器的基本概念,可以进入实际运用了.那么我们在之前的基础上只需要做下小小的改变,就可以使用Struts2的拦截器机制实现登录的验证. 修改数 ...
- Struts2学习笔记四:深入拦截器
一:拦截器的工作原理 拦截器的执行过程可以类比filter过滤器,ActionInvocation实例执行过程中,先执行action实例上引用的拦截器们,然后才执行action实例处理请求,返回res ...
随机推荐
- 【LOJ565】【LibreOJ Round #10】mathematican 的二进制 DP 分治FFT
题目大意 有一个无限长的二进制串,初始时它的每一位都为 \(0\).现在有 \(m\) 个操作,其中第 \(i\) 个操作是将这个二进制串的数值加上 \(2^{a_i}\).我们称每次操作的代价是这次 ...
- Sequence II HDU - 5919(主席树)
Mr. Frog has an integer sequence of length n, which can be denoted as a1,a2,⋯,ana1,a2,⋯,anThere are ...
- Linux-负载均衡LVS
LVS负载均衡 负载均衡集群是Load Balance 集群的缩写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有Nginx.LVS.Haproxy,商业的硬件负载均衡设备有F5.Netscal ...
- qsort()函数详解
一 写在开头1.1 本节内容学习C语言中的qsort()函数. 二 qsort()2.1 函数原型 void qsort( void *base, size_t nmemb, size_t size, ...
- Spring Security 之基本概念
Spring Security 是一个安全框架, 可以简单地认为 Spring Security 是放在用户和 Spring 应用之间的一个安全屏障, 每一个 web 请求都先要经过 Spring S ...
- 2017-2018-2 PDE 讨论班
等等. 第一次上课居然忘记怎么让笔记本电脑和投影仪相连了. 有两个接口. 一个在外面, 没用. 一个盖着了, 忘记翻开了.
- C++创建对象的三种方法
我自己以前经常弄混 A a(1); 栈内存中分配 A b = A(1); 栈内存中分配,和第一种无本质区别 A c = new A(1); 堆内存中分配 前两种在函数体执行完毕之后会被释放,第三种需要 ...
- 使用echarts-for-react 绘制折线图 报错:`series.type should be specified `
解决办法: 在动态获取值的函数前面加 访问器属性 get ,去获取对象的属性 @inject('commonStore', 'reportUIStore') @observer class Line ...
- mui上拉刷新+下拉加载
具体操作见代码: <!doctype html> <html> <head> <meta charset="UTF-8"> < ...
- 将代码上传版本库gitee
首先在电脑中安装git,配置好环境变量. 在后台输入命令上传 上传账号的用户名git config --global user.name "" 上传账号的邮箱git config ...