SpringMVC用户登录和拦截器简单应用增删改查
来源:互联网 发布:梦里花落知多少解释 编辑:程序博客网 时间:2024/05/19 14:38
在学习SpringMVC和Spring整合的时候做了一个小练习,对员工进行报道(增)、修改、升迁、离职等操作,操作的时候用户必须实在登录状态下才能进行,这时候就用到了拦截器。
控制层
showEmp.jsp,因为省略了数据库操作,showEmp.jsp只显示succ表示登录成功
通过查阅资料,整理了一下,并简单进行了一下测试,当用户没有登录进行操作时,会自动跳转到login.jsp,也就是登录页面,部分程序如下:
自定义拦截器Login实现HandlerInterceptor接口,重写HandlerInterceptor接口的方法
package com.hygj.interceptor;import java.util.List;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;public class Login implements HandlerInterceptor {private List<String> excludedUrls;public List<String> getExcludedUrls() {return excludedUrls;}public void setExcludedUrls(List<String> excludedUrls) {this.excludedUrls = excludedUrls;}public void afterCompletion(HttpServletRequest httpRequest,HttpServletResponse httpResponse, Object obj, Exception exc)throws Exception {// TODO Auto-generated method stub}public void postHandle(HttpServletRequest httpRequest, HttpServletResponse httpResponse,Object obj, ModelAndView arg3) throws Exception {// TODO Auto-generated method stub}public boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object obj) throws Exception {//demo_13/emp/XXX 获取控制层方法String requestUri = request.getRequestURI();//遍历获取不做拦截的路径 for (String url : excludedUrls) { //如果是以/checkLogin结尾的请求不做拦截处理 if (requestUri.endsWith(url)) { return true; } } HttpSession session = request.getSession(); //判断用户是否登录 if (session.getAttribute("userUid") == null) { //如果没有登录,则跳转到login.jsp response.sendRedirect(request.getContextPath() + "/login.jsp"); } return true;}}SpringMVC容器配置
<!--配置拦截器, 如果多个拦截器,则顺序执行 --><mvc:interceptors> <mvc:interceptor> <!-- 拦截器拦截的URL格式 ,如果不配置或/**,将拦截所有的Controller--> <mvc:mapping path="/**" /> <!-- 处理拦截的具体实现类 --> <bean class="com.hygj.interceptor.Login"> <!-- excludedUrls是要放行的url集合 --> <property name="excludedUrls"> <list> <value>/checkLogin</value> </list> </property> </bean> </mvc:interceptor> </mvc:interceptors>
测试用户名为:admin,密码为1
login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><%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>login</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">--><c:if test="${err == '1'}"><script type="text/javascript">alert("uid或pwd错误");</script></c:if> </head> <body> <form method="post" action="${pageContext.request.contextPath}/emp/checkLogin"> uid:<input type="text" id="userUid" name="userUid" value="${userUid}"><br><br> pwd:<input type="text" id="userPwd" name="userPwd"><br><br> <input type="submit" value="Login"> </form> </body></html>
控制层
checkLogin()判断用户名和密码,登录成功则跳转到showEmp.jsp
package com.hygj.controller;import java.io.IOException;import java.io.PrintWriter;import java.text.SimpleDateFormat;import java.util.Date;import java.util.List;import javax.annotation.Resource;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.springframework.beans.propertyeditors.CustomDateEditor;import org.springframework.stereotype.Controller;import org.springframework.web.HttpRequestHandler;import org.springframework.web.bind.WebDataBinder;import org.springframework.web.bind.annotation.InitBinder;import org.springframework.web.bind.annotation.RequestMapping;import com.hygj.pojo.Employee;import com.hygj.pojo.EmployeeHistroy;import com.hygj.pojo.Pager;import com.hygj.service.iface.IEmpService;@Controller@RequestMapping("/emp")public class EmpController {@Resource(name="empService")private IEmpService empService;public void setEmpService(IEmpService empService) {this.empService = empService;}@RequestMapping("/checkLogin")public String checkLogin(HttpServletRequest request){String userUid = request.getParameter("userUid");String userPwd = request.getParameter("userPwd");if("admin".equals(userUid) && "1".equals(userPwd)){HttpSession session = request.getSession();session.setAttribute("userUid", userUid);return "redirect:showEmp";}else{request.setAttribute("err", 1);return "login";}}@RequestMapping("/show")public String showEmp(HttpServletRequest request){//省略return "showEmp";}}
showEmp.jsp,因为省略了数据库操作,showEmp.jsp只显示succ表示登录成功
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><%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>showEmp</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> succ </body></html>
全部源码下载:http://download.csdn.net/download/users0001/10123920
阅读全文
1 0
- SpringMVC用户登录和拦截器简单应用增删改查
- Struts2+hibernate实现用户登录和增删改查案例
- Struts2+hibernate实现用户登录和增删改查案例
- Struts2+hibernate实现用户登录和增删改查案例
- Python菜鸟成长记——简单实现用户登录和增删改查以及文件上传和下载
- NodeJs实现简单登录增删改查、登录Demo
- myeclipse 实现框架 spring+springmvc+springsecurity+myibatis+mysql用户认证和人员增删改查
- maven+springMVC+mybatis+easyUI管理用户增删改查
- SpringMVC+hibernate整合小例子,用户的增删查改
- springmvc拦截器,用户登录拦截过程
- 二、spring mvc模拟用户增删改查以及登录和上传文件的相关流程
- SSH框架---Struts2+hibernate实现用户登录和增删改查案例
- 利用springmvc和mybatis实现简单的增删改查功能出现的小问题
- Springmvc+Spring+Mybatis+Maven简单的增删改查
- SpringMVC+Spring+HIbernate 简单增删改查实例
- SpringMVC之简单的增删改查(SSM整合)
- 使用springMvc+easyui+mysql实现简单的增删改查
- SpringMVC+Spring+HIbernate 简单增删改查实例
- eclipse 工程报错
- 小愿景,职业发展,思维拓展
- 使用XStream是实现XML与Java对象的转换(1)--简介及入门示例
- Magento中Mage::getSingleton函数
- 入门训练 序列求和
- SpringMVC用户登录和拦截器简单应用增删改查
- 百练+最近邻点对+递归分治法的运用+计算在左右两边的点距离部分最精彩
- 【poj3279】Fliptile(反转)
- maven assembly报错找不到配置描述
- 内存泄漏
- 171118
- Magento中Mage::helper函数
- MySQL多表查询
- 使用Intellij创建Struts2项目