servlet登录例子

servlet登录例子

1人收藏此文章, 我要收藏 发表于10个月前(2012-08-02 14:00) , 已有599次阅读 ,共0个评论

 

index.jsp

01 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
02 <%
03 String path = request.getContextPath();
04 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
05 %>
06  
07 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
08 <html>
09   <head>
10     <base href="<%=basePath%>">
11      
12     <title>My JSP 'index.jsp' starting page</title>
13     <meta http-equiv="pragma" content="no-cache">
14     <meta http-equiv="cache-control" content="no-cache">
15     <meta http-equiv="expires" content="0">   
16     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
17     <meta http-equiv="description" content="This is my page">
18     <!--
19     <link rel="stylesheet" type="text/css" href="styles.css">
20     -->
21   </head>
22    
23   <body>
24         <form name="form1" method="post" action="login/servlet">
25            用户名:<input type="text" name="username"><br/>
26          密&nbsp;&nbsp;码:<input type="password" name="password"><br/>
27           <input type="submit" text = "提交" >  
28         </form>
29   </body>
30 </html>

 

LoginServlet.java
01 package com.cn;
02 import java.io.IOException;
03 import javax.naming.Context;
04 import javax.servlet.ServletException;
05 import javax.servlet.http.HttpServlet;
06 import javax.servlet.http.HttpServletRequest;
07 import javax.servlet.http.HttpServletResponse;
08 public class LoginSerlvet extends HttpServlet {
09     @Override
10     protected void doGet(HttpServletRequest request, HttpServletResponse response)
11             throws ServletException, IOException {
12         doPost(request,response);
13     }
14     @Override
15     protected void doPost(HttpServletRequest request, HttpServletResponse response)
16             throws ServletException, IOException {
17         String username = request.getParameter("username");
18         String password = request.getParameter("password");
19         System.out.println("---username------"+username);
20         System.out.println("---username------"+password);
21         User user = new User();
22         user.setUsername(username);
23         user.setPassword(password);
24         System.out.println("----------------"+user.getUsername());
25         if(username!=""&&password!=""){
26             request.setAttribute("username", username);
27             request.setAttribute("password", password);
28             request.getRequestDispatcher("/success.jsp").forward(request, response);
29             //response.sendRedirect(request.getContextPath() +"/success.jsp");
30         }
31         else{
32             request.getRequestDispatcher("/error.jsp").forward(request, response);
33         }
34     }
35  
36 }

 

success.jsp
01 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
02 <%@ page import="com.cn.*" %>
03 <%
04 String path = request.getContextPath();
05 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
06 %>
07  
08 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
09 <html>
10   <head>
11     <base href="<%=basePath%>">
12      
13     <title>My JSP 'success.jsp' starting page</title>
14      
15     <meta http-equiv="pragma" content="no-cache">
16     <meta http-equiv="cache-control" content="no-cache">
17     <meta http-equiv="expires" content="0">   
18     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
19     <meta http-equiv="description" content="This is my page">
20     <!--
21     <link rel="stylesheet" type="text/css" href="styles.css">
22     -->
23      
24   </head>
25    
26   <body>
27     登录成功:用户名为:<%=request.getAttribute("username")%> <br>
28   </body>
29 </html>

 

web.xml
01 <?xml version="1.0" encoding="UTF-8"?>
02 <web-app version="2.4"
03     xmlns="http://java.sun.com/xml/ns/j2ee"
04     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
05     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
06     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
07   <welcome-file-list>
08     <welcome-file>index.jsp</welcome-file>
09   </welcome-file-list>
10   <servlet>
11     <servlet-name>LoginSerlvet</servlet-name>
12     <servlet-class>com.cn.LoginSerlvet</servlet-class>
13   </servlet>
14   <servlet-mapping>
15     <servlet-name>LoginSerlvet</servlet-name>
16     <url-pattern>/login/servlet</url-pattern>
17   </servlet-mapping>
18 </web-app>
1  
1 补充------------
001 进入mysql,创建数据库和表:
002 mysql>CREATE DATABASE demo;
003 mysql>CREATE TABLE user(
004                 id INT NOT NULL AUTO_INCREMENT,
005                 username VARCHAR(50) NOT NULL,
006                 password VARCHAR(20) NOT NULL,
007                 PRIMARY KEY(id)
008                 )ENGINE=INNODB;
009 mysql>use demo;
010 mysql>insert into user(id,username,password) values(default,'admin','admin');
011 mysql>insert into user(id,username,password) values(default,'huzjtech','123456');  
012      
013 创建验证用户的类UserValidation,他的功能是通过用户的输入数据到数据库中查找该用户是否存在:
014 [java] view plaincopy
015 package huzj.login.jdbc; 
016     
017 import java.sql.Connection;  
018 import java.sql.DriverManager; 
019 import java.sql.PreparedStatement;   
020 import java.sql.ResultSet;   
021 import java.sql.SQLException;      
022 public class UserValidation {    
023     private String username;   
024     public void setUsername(String username) {   
025         this.username = username;   
026     }       
027     public void setPassword(String password) {   
028         this.password = password;   
029     }   
030     private String password;   
031     public boolean validate() throws SQLException, ClassNotFoundException {   
032         boolean flag = false;  
033         Class.forName("com.mysql.jdbc.Driver");   
034         String url = "jdbc:mysql://localhost:3306/demo";   
035         Connection conn = DriverManager.getConnection(url, "root", "password"); 
036         PreparedStatement ps = conn 
037                 .prepareStatement("select * from user u where u.username=? and u.password=?"); 
038         ps.setString(1, username); 
039         ps.setString(2, password); 
040         ResultSet rs = ps.executeQuery(); 
041         if (rs.next()) { 
042             flag = true; 
043         
044         return flag; 
045     
046
047 创建一个servlet 完成分发LoginServlet;
048 [java] view plaincopy
049 package huzj.login.control; 
050 import huzj.login.entity.User; 
051 import huzj.login.jdbc.UserValidation; 
052 import java.io.IOException; 
053 import java.sql.SQLException; 
054 import javax.servlet.ServletException; 
055 import javax.servlet.http.HttpServlet; 
056 import javax.servlet.http.HttpServletRequest; 
057 import javax.servlet.http.HttpServletResponse; 
058 import org.apache.commons.logging.Log; 
059 import org.apache.commons.logging.LogFactory; 
060 public class LoginServlet extends HttpServlet { 
061     public void service(HttpServletRequest request, HttpServletResponse response) 
062             throws ServletException, IOException { 
063         Log logger = LogFactory.getLog(getClass()); 
064         logger.info("process this ...."); 
065         String username = request.getParameter("username"); 
066         String password = request.getParameter("password"); 
067         UserValidation uv = new UserValidation(); 
068         uv.setUsername(username); 
069         uv.setPassword(password); 
070         String url1 = "/loginsuccess.jsp"; 
071         String url2 = "/login.jsp"; 
072         try { 
073             if (uv.validate() == true) { 
074                 request.setAttribute("username", username); 
075                 getServletContext().getRequestDispatcher(url1).forward(request, 
076                         response); 
077             } else { 
078                 // response.sendError(404, "Loging failure...!"); 
079                 getServletContext().getRequestDispatcher(url2).forward(request, 
080                         response); 
081             
082         } catch (SQLException e) { 
083             // TODO Auto-generated catch block 
084             e.printStackTrace(); 
085         } catch (ClassNotFoundException e) { 
086             // TODO Auto-generated catch block 
087             e.printStackTrace(); 
088         
089     
090
091 配置web.xml文件:
092 [xml] view plaincopy
093 <?xml version="1.0" encoding="UTF-8"?> 
094 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
095     xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
096     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
097     id="WebApp_ID" version="2.5"
098     <display-name>jdbc-first-app-login</display-name
099     <servlet
100         <servlet-name>userlogin</servlet-name
101         <servlet-class>huzj.login.control.LoginServlet</servlet-class
102     </servlet
103     <servlet-mapping
104         <servlet-name>userlogin</servlet-name
105         <url-pattern>/login</url-pattern
106     </servlet-mapping
107     <welcome-file-list
108         <welcome-file>login.jsp</welcome-file
109     </welcome-file-list
110 </web-app
111 创建一个登录login.jsp:
112 [xml] view plaincopy
113 <%@ page language="java" contentType="text/html; charset=UTF-8" 
114     pageEncoding="UTF-8"%> 
115 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
116 <html
117 <head
118 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
119 <title>Insert title here</title
120 </head
121 <body
122 <form action="login"
123     userName:<input type="text" name="username"
124     userPassword:<input type="password" name="password"
125     <input type="submit" value="Submit"
126 </form
127 </body
128 </html
129 登录成功页面loginsuccess.jsp:
130 [xml] view plaincopy
131 <%@ page language="java" contentType="text/html; charset=UTF-8" 
132     pageEncoding="UTF-8"%> 
133 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
134 <html
135 <head
136 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
137 <title>Insert title here</title
138 </head
139 <body
140 <h1>Login Success!</h1
141 <p>Hello,<b><%=request.getAttribute("username")%></b>!</p
142 </body
143 </html>
posted @ 2013-06-06 09:13  天涯海角路  阅读(224)  评论(0)    收藏  举报