SpringMVC自动登录功能

来源:互联网 发布:权志龙水原希子 知乎 编辑:程序博客网 时间:2024/05/17 07:59

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
response.sendRedirect(basePath+"easytogo/controller/AppUser.do"); 
%>

<!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>
   
  </body>
</html>

login.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="java.util.Map"%> 
<%@page import="cn.com.wewell.easytogo.entity.User"%>
<%@page import="javax.servlet.http.HttpSession" %>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
  <head>
    <base href="<%=basePath%>">
   
    <title>登录</title>
 <%
    request.setAttribute("decorator", "none");
    response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
    response.setHeader("Pragma","no-cache"); //HTTP 1.0
    response.setDateHeader ("Expires", 0); //prevents caching at the proxy server
    %> 
<script type="text/javascript">
    function OnLogin() {
        if (window.document.getElementById("username").value == "") {
            alert("请输入登录名!");
            window.document.getElementById("username").focus();
            return false;
        }
        window.document.getElementById("form").submit();
        return true;
     }

    </script>
   
 </head>
 
  <body style="background: url('${pageContext.request.contextPath }/easytogo/images/bg.png') #56a9ef  repeat-x" >
   <form action="easytogo/controller/AppUser.do" method="post" id="form" >
   <table width="1000" border="0" align="center" cellpadding="0" cellspacing="0" >
        <tr>
          <td height="584" class="bj" style="TEXT-ALIGN: center;VERTICAL-ALIGN: top" background="${pageContext.request.contextPath }/easytogo/images/bj.jpg" valign="top">
           <table width="450" border="0" align="center"
            cellpadding="0" cellspacing="0">
            <tr>
             <td height="230">&nbsp;</td>
            </tr>
           </table>   
           <table width="520" border="0" align="center" cellpadding="0" cellspacing="0" style="font-size: 12px">
            <tr>
      <td colspan="3" style="padding-left: 280"><font color="red">${msg1 }</font></td>
    </tr>
        <tr>
          <td width="280" height="133" rowspan="4">&nbsp;</td>
          <td width="90" class="font" height="32">用户名:</td>
          <td width="100" class="left_middle" height="32">
            <input id="username" name="username" type="text"  class="border" style="width: 100px" />
          </td>
        </tr>
        <tr>
          <td height="32" class="font">密&nbsp;&nbsp;码:</td>
          <td class="left_middle"><input id="password" name="password" type="password"  class="border" style="width: 100px"/></td>
        </tr>
        <tr>
          <td colspan="2"><input type="checkbox" id="autologin" name="autologin" value="7">一周内自动登录</td>
        </tr>
        <tr>
          <td height="60" class="font"></td>
          <td class="left_middle">
            <img name="LoginButton" id="LoginButton"  src="${pageContext.request.contextPath }/easytogo/images/BrowserPreview_tmp_06.jpg"  style="border-width:0px;" onclick="OnLogin();"/>
           
          </td>
        </tr>
         </table>
        </td>
       </tr>
      </table>
  </form>
  </body>
</html>

AppUserController

package cn.com.wewell.easytogo.controller;
import java.util.Map;

import javax.annotation.Resource;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;

import cn.com.wewell.easytogo.dao.UserDAO;
import cn.com.wewell.easytogo.entity.User;
import cn.com.wewell.easytogo.service.UserService;
import cn.com.wewell.easytogo.util.CookieUtils;

@Controller("AppUser")
public class AppUserController {
 private String msg1;//记录用户名和密码信息
 @Resource
 private UserService userService;
 @Resource
 private UserDAO userDAO;
 public static final String USER_SESSION="user.session";
 @Resource
 private CookieUtils cookieUtils;
 /**
  * 登陆
  */
 @RequestMapping("/easytogo/controller/AppUser.do")
    public String login(String username, String password,String autologin,HttpServletRequest request,HttpServletResponse response,
      ModelMap map,Map<String, Object> session){
     if(cookieUtils.getCookie(request,userDAO)){
      return "/easytogo/appuser/main";
     }else{
      User user=userService.findUserByUserNameAndPassword(username, password);
      if(user!=null){
       if(autologin!=null && !autologin.isEmpty()){// 判断是否要添加到cookie中 
        Cookie cookie=cookieUtils.addCookie(user);
        response.addCookie(cookie);// 添加cookie到response中
        // 2.将user 设置到session中    
        session.put(USER_SESSION,user);        
       }
       return "/easytogo/appuser/main";
        }else{
       return "/easytogo/appuser/login"; 
      }

     }
     
    }
    /**
     * 用户退出
     * @return
     */
 @RequestMapping("/easytogo/controller/logout.do")
 public String logout(HttpSession session,HttpServletRequest request,HttpServletResponse response){
  session=request.getSession(false);
  if(session!=null){
   session.removeAttribute(USER_SESSION);
  }
  Cookie cookie=cookieUtils.delCookie(request);
  if(cookie!=null){
   response.addCookie(cookie);
  }
  return "/easytogo/appuser/login";
 }
 public String getMsg1() {
     return msg1;
 }
 public void setMsg1(String msg1) {
     this.msg1 = msg1;
 }
 public static String getUserSession() {
     return USER_SESSION;
 }


}

 

 

0 0
原创粉丝点击