一个servlet 登录的小例子

一个servlet 登录的小例子

分类: j2ee 4320人阅读 评论(1) 收藏 举报
  1. 进入mysql,创建数据库和表:
    mysql>CREATE DATABASE demo;
    
    mysql>CREATE TABLE user(
    
                    id INT NOT NULL AUTO_INCREMENT,
    
                    username VARCHAR(50) NOT NULL,
    
                    password VARCHAR(20) NOT NULL,
    
                    PRIMARY KEY(id)
    
                    )ENGINE=INNODB;
    
    mysql>use demo;
    
    mysql>insert into user(id,username,password) values(default,'admin','admin');
    
    mysql>insert into user(id,username,password) values(default,'huzjtech','123456');
    
    
  2. 创建验证用户的类UserValidation,他的功能是通过用户的输入数据到数据库中查找该用户是否存在:
    1. package huzj.login.jdbc;  
    2.   
    3.   
    4.   
    5. import java.sql.Connection;  
    6.   
    7. import java.sql.DriverManager;  
    8.   
    9. import java.sql.PreparedStatement;  
    10.   
    11. import java.sql.ResultSet;  
    12.   
    13. import java.sql.SQLException;  
    14.   
    15.   
    16.   
    17. public class UserValidation {  
    18.   
    19.   
    20.   
    21.     private String username;  
    22.   
    23.   
    24.   
    25.     public void setUsername(String username) {  
    26.   
    27.         this.username = username;  
    28.   
    29.     }  
    30.   
    31.   
    32.   
    33.     public void setPassword(String password) {  
    34.   
    35.         this.password = password;  
    36.   
    37.     }  
    38.   
    39.   
    40.   
    41.     private String password;  
    42.   
    43.   
    44.     public boolean validate() throws SQLException, ClassNotFoundException {  
    45.   
    46.   
    47.   
    48.         boolean flag = false;  
    49.   
    50.         Class.forName("com.mysql.jdbc.Driver");  
    51.   
    52.   
    53.   
    54.         String url = "jdbc:mysql://localhost:3306/demo";  
    55.   
    56.   
    57.   
    58.         Connection conn = DriverManager.getConnection(url, "root", "password");  
    59.   
    60.   
    61.   
    62.         PreparedStatement ps = conn  
    63.   
    64.                 .prepareStatement("select * from user u where u.username=? and u.password=?");  
    65.   
    66.         ps.setString(1, username);  
    67.   
    68.         ps.setString(2, password);  
    69.   
    70.   
    71.   
    72.         ResultSet rs = ps.executeQuery();  
    73.   
    74.   
    75.   
    76.         if (rs.next()) {  
    77.   
    78.             flag = true;  
    79.   
    80.         }  
    81.   
    82.         return flag;  
    83.   
    84.     }  
    85.   
    86. }  
  3. 创建一个servlet 完成分发LoginServlet;
    1. package huzj.login.control;  
    2.   
    3.   
    4.   
    5. import huzj.login.entity.User;  
    6.   
    7. import huzj.login.jdbc.UserValidation;  
    8.   
    9.   
    10.   
    11. import java.io.IOException;  
    12.   
    13. import java.sql.SQLException;  
    14.   
    15.   
    16.   
    17. import javax.servlet.ServletException;  
    18.   
    19. import javax.servlet.http.HttpServlet;  
    20.   
    21. import javax.servlet.http.HttpServletRequest;  
    22.   
    23. import javax.servlet.http.HttpServletResponse;  
    24.   
    25.   
    26.   
    27. import org.apache.commons.logging.Log;  
    28.   
    29. import org.apache.commons.logging.LogFactory;  
    30.   
    31.   
    32.   
    33. public class LoginServlet extends HttpServlet {  
    34.   
    35.   
    36.   
    37.     public void service(HttpServletRequest request, HttpServletResponse response)  
    38.   
    39.             throws ServletException, IOException {  
    40.   
    41.   
    42.   
    43.         Log logger = LogFactory.getLog(getClass());  
    44.   
    45.   
    46.   
    47.         logger.info("process this ....");  
    48.   
    49.   
    50.   
    51.         String username = request.getParameter("username");  
    52.   
    53.         String password = request.getParameter("password");  
    54.   
    55.   
    56.   
    57.         UserValidation uv = new UserValidation();  
    58.   
    59.   
    60.   
    61.         uv.setUsername(username);  
    62.   
    63.         uv.setPassword(password);  
    64.   
    65.   
    66.   
    67.         String url1 = "/loginsuccess.jsp";  
    68.   
    69.         String url2 = "/login.jsp";  
    70.   
    71.   
    72.   
    73.         try {  
    74.   
    75.             if (uv.validate() == true) {  
    76.   
    77.                 request.setAttribute("username", username);  
    78.   
    79.                 getServletContext().getRequestDispatcher(url1).forward(request,  
    80.   
    81.                         response);  
    82.   
    83.             } else {  
    84.   
    85.                 // response.sendError(404, "Loging failure...!");  
    86.   
    87.                 getServletContext().getRequestDispatcher(url2).forward(request,  
    88.   
    89.                         response);  
    90.   
    91.             }  
    92.   
    93.         } catch (SQLException e) {  
    94.   
    95.             // TODO Auto-generated catch block  
    96.   
    97.             e.printStackTrace();  
    98.   
    99.         } catch (ClassNotFoundException e) {  
    100.   
    101.             // TODO Auto-generated catch block  
    102.   
    103.             e.printStackTrace();  
    104.   
    105.         }  
    106.   
    107.   
    108.     }  
    109.   
    110.   
    111. }  
  4. 配置web.xml文件:
    1. <?xml version="1.0" encoding="UTF-8"?>  
    2.   
    3. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    4.   
    5.     xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  
    6.   
    7.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  
    8.   
    9.     id="WebApp_ID" version="2.5">  
    10.   
    11.     <display-name>jdbc-first-app-login</display-name>  
    12.   
    13.     <servlet>  
    14.   
    15.         <servlet-name>userlogin</servlet-name>  
    16.   
    17.         <servlet-class>huzj.login.control.LoginServlet</servlet-class>  
    18.   
    19.     </servlet>  
    20.   
    21.     <servlet-mapping>  
    22.   
    23.         <servlet-name>userlogin</servlet-name>  
    24.   
    25.         <url-pattern>/login</url-pattern>  
    26.   
    27.     </servlet-mapping>  
    28.   
    29.     <welcome-file-list>  
    30.   
    31.         <welcome-file>login.jsp</welcome-file>  
    32.   
    33.     </welcome-file-list>  
    34.   
    35. </web-app>  
  5. 创建一个登录login.jsp:
    1. <%@ page language="java" contentType="text/html; charset=UTF-8"  
    2.   
    3.     pageEncoding="UTF-8"%>  
    4.   
    5. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
    6.   
    7. <html>  
    8.   
    9. <head>  
    10.   
    11. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
    12.   
    13. <title>Insert title here</title>  
    14.   
    15. </head>  
    16.   
    17. <body>  
    18.   
    19. <form action="login">  
    20.   
    21.     userName:<input type="text" name="username">  
    22.   
    23.     userPassword:<input type="password" name="password">  
    24.   
    25.     <input type="submit" value="Submit">  
    26.   
    27. </form>  
    28.   
    29. </body>  
    30.   
    31. </html>  
  6. 登录成功页面loginsuccess.jsp:
    1. <%@ page language="java" contentType="text/html; charset=UTF-8"  
    2.   
    3.     pageEncoding="UTF-8"%>  
    4.   
    5.   
    6.   
    7. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
    8.   
    9. <html>  
    10.   
    11. <head>  
    12.   
    13. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
    14.   
    15. <title>Insert title here</title>  
    16.   
    17. </head>  
    18.   
    19. <body>  
    20.   
    21. <h1>Login Success!</h1>  
    22.   
    23. <p>Hello,<b><%=request.getAttribute("username")%></b>!</p>  
    24.   
    25. </body>  
    26.   
    27. </html>  
  7. 结束。
posted @ 2013-06-06 09:08  天涯海角路  阅读(152)  评论(0)    收藏  举报