zoukankan      html  css  js  c++  java
  • 动态网站项目(Dynamic Web Project)登录功能的实现(mvc(五层架构)+jdbc+servlet+tomcat7.0+jdk1.8)(js验证+cookie)

    1.index.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    <link type="text/css" href="css/index.css" rel="stylesheet"></link>
    </head>
    <body>
        <!-- 使用Cookie保存密码 -->
        <%
            //获取所有的Cookie
            Cookie[] cookies = request.getCookies();
            //如果cookie中存有数据,说明曾有登陆成功的用户名=和密码保存在cookie中
            String username = null;
            String password = null;
            if(cookies != null){
                for(int i=0;i<cookies.length;i++){
                    //如果key和username相等,则有登陆成功地用存储在cookie中,我们获取用户名和密码
                    if("username".equals(cookies[i].getName())){
                        username=cookies[i].getValue();
                    }
                    if("password".equals(cookies[i].getName())){
                        password=cookies[i].getValue();
                    }
                }
            }
            //System.out.println(username);
            //System.out.println(password);
            //如果有这样的用户名和密码,那么跳转到servlet页面进行操作判断
            if(username!=null&&password!=null){
                request.getRequestDispatcher("LoginServlet?username="+username+"&password="+password).forward(request, response);
            }
            
        
        
        %>
        
        <div id="login_frame">
            <p id="image_logo"><img src="images/t.png" ></p>
            <!-- 提示信息 -->
            <%String msg =(String)request.getAttribute("msg");
               if(msg!=null&&!"".equals(msg)){%>
              <font color="red"><%= msg%></font>
            <%}%>
            
            
            
            <form method="post" id="form1">
                <p><lable class="label_input">用户名:</lable><input type="text" id="uname" name="username" class="text_field"><span id="span1" class="span_field"></span></p>
                <p><lable class="label_input">密码:</lable><input type="text" id="pwd" name="password" class="text_field"><span id="span2" class="span_field"></span></p>
                <select name="time" class="select_field">
                    <option value="0">不保存密码</option>
                    <option value="1">保存密码1分钟</option>
                    <option value="3">保存密码3分钟</option>
                </select>
                <input type="button" value="登录" id="btn_login" onclick="fun()">
        </form>
        </div>
        
        
        <script type="text/javascript">
            function fun(){
                
                //flag用于标记用户名和密码是否为空
                var flag=1;
                var uname = document.getElementById("uname").value;
                var pwd = document.getElementById("pwd").value;
                //alert(uname);
                //用户名为空时
                if(uname==null||uname==""){
                    document.getElementById("span1").innerHTML="用户名不能为空";
                    document.getElementById("span1").style.color="red";
                    flag=2;
                }
                 //密码为空时
                if(pwd==null||pwd==""){
                    document.getElementById("span2").innerHTML="密码不能为空";
                    document.getElementById("span2").style.color="red";
                    flag=2;
                }
                //用户名和密码都不为空时,进行逻辑判断
                if(flag==1){
                    var f1=document.getElementById("form1");
                    f1.action="LoginServlet";
                    f1.submit();
                }
            }
        </script>
    </body>
    </html>

    2.Vo层:User995.java

     1 package com.icss.vo;
     2 
     3 public class User1995 {
     4     private String username;
     5     private String password;
     6     private String status;
     7     public String getUsername() {
     8         return username;
     9     }
    10     public void setUsername(String username) {
    11         this.username = username;
    12     }
    13     public String getPassword() {
    14         return password;
    15     }
    16     public void setPassword(String password) {
    17         this.password = password;
    18     }
    19     public String getStatus() {
    20         return status;
    21     }
    22     public void setStatus(String status) {
    23         this.status = status;
    24     }
    25     
    26 
    27 }

    3.controller层:LoginServlet(使用servlet的注解方式)

     1 package com.icss.controller;
     2 
     3 import java.io.IOException;
     4 import java.sql.SQLException;
     5 
     6 import javax.servlet.ServletException;
     7 import javax.servlet.annotation.WebServlet;
     8 import javax.servlet.http.Cookie;
     9 import javax.servlet.http.HttpServlet;
    10 import javax.servlet.http.HttpServletRequest;
    11 import javax.servlet.http.HttpServletResponse;
    12 
    13 import com.icss.service.UserService;
    14 
    15 /**
    16  * Servlet implementation class LoginServlet
    17  */
    18 @WebServlet("/LoginServlet")
    19 public class LoginServlet extends HttpServlet {
    20     private static final long serialVersionUID = 1L;
    21        
    22     /**
    23      * @see HttpServlet#HttpServlet()
    24      */
    25     public LoginServlet() {
    26         super();
    27         // TODO Auto-generated constructor stub
    28     }
    29 
    30     /**
    31      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    32      */
    33     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    34         doPost(request, response);
    35     }
    36 
    37     /**
    38      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    39      */
    40     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    41         //接受请求
    42         String username = request.getParameter("username");
    43         String password = request.getParameter("password");
    44         //处理请求
    45         UserService us = new UserService();
    46         try {
    47             //判断用户的状态,进行跳转
    48             int flag = us.userService(username, password);
    49             if(flag==0){
    50                 //正在审核
    51                 request.setAttribute("msg", "该用户正在审核中");
    52                 request.getRequestDispatcher("index.jsp").forward(request, response);
    53             }else if(flag==1){
    54                 //登陆成功
    55                 //************************cookie简化登录*****************************
    56                 String time = request.getParameter("time");
    57                 int days = 0;
    58                 if(time!=null){
    59                     //将time强制转换int类型
    60                     days = Integer.parseInt(time);
    61                     //创建Cookie对象
    62                     Cookie usernameCookie = new Cookie("username", username);
    63                     Cookie passwordCookie = new Cookie("password", password);
    64                     //设置Cookie的有效时间
    65                     usernameCookie.setMaxAge(days*60);
    66                     passwordCookie.setMaxAge(days*60);
    67                     //使Cookie生效
    68                     response.addCookie(usernameCookie);
    69                     response.addCookie(passwordCookie);
    70                 }
    71                 //************************cookie简化登录*****************************
    72                 request.setAttribute("msg", username);
    73                 request.getRequestDispatcher("loginsuccess.jsp").forward(request, response);
    74             }else if(flag==2){
    75                 //审核未通过
    76                 request.setAttribute("msg", "该用户审核未通过");
    77                 request.getRequestDispatcher("index.jsp").forward(request, response);
    78             }else if(flag==3){
    79                 //用户名或密码错误
    80                 request.setAttribute("msg", "用户名或密码错误,请重新输入");
    81                 request.getRequestDispatcher("index.jsp").forward(request, response);
    82             }
    83             
    84         } catch (ClassNotFoundException e) {
    85             // TODO Auto-generated catch block
    86             e.printStackTrace();
    87         } catch (SQLException e) {
    88             // TODO Auto-generated catch block
    89             e.printStackTrace();
    90         }
    91     }
    92 
    93 }

    4.service层:UserService.java

     1 package com.icss.service;
     2 
     3 import java.sql.SQLException;
     4 
     5 import com.icss.dao.UserDao;
     6 import com.icss.vo.User1995;
     7 
     8 public class UserService {
     9     public int userService(String username,String password) throws ClassNotFoundException, SQLException{
    10         //status:0-正在审核,1-审核通过,登陆成功,2-审核未通过,3-用户名或密码不正确
    11         //flag用来标记
    12         int flag=3;
    13         UserDao ud= new UserDao();
    14         User1995 user = ud.userDao(username, password);
    15         if(user!=null){
    16             String status = user.getStatus();
    17             if("0".equals(status)){
    18                 //正在审核
    19                 flag=0;
    20             }else if("1".equals(status)){
    21                 flag=1;
    22             }else if("2".equals(status)){
    23                 flag=2;
    24             }
    25         }else{
    26             flag=3;
    27         }
    28         return flag;
    29     }
    30 
    31 }

    5.util层:DBUtil.java

     1 package com.icss.util;
     2 
     3 import java.sql.Connection;
     4 import java.sql.DriverManager;
     5 import java.sql.SQLException;
     6 
     7 public class DBUtil {
     8     public static Connection connection;
     9     public static Connection getConnection() throws ClassNotFoundException, SQLException{
    10         Class.forName("oracle.jdbc.driver.OracleDriver");
    11         Connection connection = DriverManager.getConnection
    12                 ("jdbc:oracle:thin:@localhost:1521:XE","scott","tiger");
    13         return connection;
    14     }
    15 
    16 }

    6.dao层:UserDao.java

     1 package com.icss.dao;
     2 
     3 import java.sql.PreparedStatement;
     4 import java.sql.ResultSet;
     5 import java.sql.SQLException;
     6 
     7 import com.icss.util.DBUtil;
     8 import com.icss.vo.User1995;
     9 
    10 public class UserDao {
    11     public User1995 loginDao(String username,String password) throws SQLException, ClassNotFoundException{
    12         PreparedStatement pStatement = DBUtil.getConnection().prepareStatement("select * from user1995 where username=?and password=?");
    13         pStatement.setString(1, username);
    14         pStatement.setString(2, password);
    15         //结果集
    16         ResultSet rs= pStatement.executeQuery();
    17         User1995 user = new User1995();
    18         while(rs.next()){
    19             user.setUsername(rs.getString(1));
    20             user.setPassword(rs.getString(2));
    21             user.setStatus(rs.getString(3));
    22         }
    23         rs.close();
    24         pStatement.close();
    25         DBUtil.getConnection().close();
    26         return user;
    27     }
    28 
    29 }
  • 相关阅读:
    学习视屏
    Spring 和 MyBatis 环境整合
    struts2 多文件下载
    struts2的单文件下载
    很好的验证码
    Oracle 存储过程
    Oracle序列
    struts2 的多文件上传
    struts2的单文件上传
    NETBEAN 启动报错 CANNOT LOCATE JAVA INSTALLATION IN SPECIFIED JDKHOME的解决办法
  • 原文地址:https://www.cnblogs.com/wushenga/p/12528531.html
Copyright © 2011-2022 走看看