servlet 登录的例子(完整)

本文转自:

http://blog.csdn.net/huzjtech/archive/2008/06/29/2596772.aspx

 

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,他的功能是通过用户的输入数据到数据库中查找该用户是否存在:

 

package com.jay.login.jdbc;   
  
import java.sql.Connection;  
 
import java.sql.DriverManager;  
 
import java.sql.PreparedStatement;  
 
import java.sql.ResultSet;  
 
import java.sql.SQLException;  
 
 
 
public class UserValidation {  
 
 
 
    private String username;  
 
 
 
    public void setUsername(String username) {  
 
        this.username = username;  
 
    }  
 
 
 
    public void setPassword(String password) {  
 
        this.password = password;  
 
    }  
 
 
 
    private String password;  
 
 
    public boolean validate() throws SQLException, ClassNotFoundException {  
 
 
 
        boolean flag = false;  
 
        Class.forName("com.mysql.jdbc.Driver");  
 
 
 
        String url = "jdbc:mysql://localhost:3306/demo";  
 
 
 
        Connection conn = DriverManager.getConnection(url, "root", "password");  
 
 
 
        PreparedStatement ps = conn  
 
                .prepareStatement("select * from user u where u.username=? and u.password=?");  
 
        ps.setString(1, username);  
 
        ps.setString(2, password);  
 
 
 
        ResultSet rs = ps.executeQuery();  
 
 
 
        if (rs.next()) {  
 
            flag = true;  
 
        }  
 
        return flag;  
 
    }  
 

 

3.创建一个servlet 完成分发LoginServlet;

package com.jay.login.control;   

  
 
import com.jay.login.jdbc.UserValidation;  
 
 
 
import java.io.IOException;  
 
import java.sql.SQLException;  
 
 
 
import javax.servlet.ServletException;  
 
import javax.servlet.http.HttpServlet;  
 
import javax.servlet.http.HttpServletRequest;  
 
import javax.servlet.http.HttpServletResponse;  
 
 
 
import org.apache.commons.logging.Log;  
 
import org.apache.commons.logging.LogFactory;  
 
 
 
public class LoginServlet extends HttpServlet {  
 
 
 
    public void service(HttpServletRequest request, HttpServletResponse response)  
 
            throws ServletException, IOException {  
 
 
 
        Log logger = LogFactory.getLog(getClass());  
 
 
 
        logger.info("process this ....");  
 
 
 
        String username = request.getParameter("username");  
 
        String password = request.getParameter("password");  
 
 
 
        UserValidation uv = new UserValidation();  
 
 
 
        uv.setUsername(username);  
 
        uv.setPassword(password);  
 
 
 
        String url1 = "/loginsuccess.jsp";  
 
        String url2 = "/login.jsp";  
 
 
 
        try {  
 
            if (uv.validate() == true) {  
 
                request.setAttribute("username", username);  
 
                getServletContext().getRequestDispatcher(url1).forward(request,  
 
                        response);  
 
            } else {  
 
                // response.sendError(404, "Loging failure...!");  
 
                getServletContext().getRequestDispatcher(url2).forward(request,  
 
                        response);  
 
            }  
 
        } catch (SQLException e) {  
 
            // TODO Auto-generated catch block  
 
            e.printStackTrace();  
 
        } catch (ClassNotFoundException e) {  
 
            // TODO Auto-generated catch block  
 
            e.printStackTrace();  
 
        }  
 
 
    }  
 
 

 

4.配置web.xml文件:

<?xml version="1.0" encoding="UTF-8"?> 
 
<web-app xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance
 
    xmlns="
http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd
 
    xsi:schemaLocation="
http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd
 
    id="WebApp_ID" version="2.5"> 
 
    <display-name>jdbc-first-app-login</display-name> 
 
    <servlet> 
 
        <servlet-name>userlogin</servlet-name> 
 
        <servlet-class>com.jay.login.control.LoginServlet</servlet-class> 
 
    </servlet> 
 
    <servlet-mapping> 
 
        <servlet-name>userlogin</servlet-name> 
 
        <url-pattern>/login</url-pattern> 
 
    </servlet-mapping> 
 
    <welcome-file-list> 
 
        <welcome-file>login.jsp</welcome-file> 
 
    </welcome-file-list> 
 
</web-app> 

 

 

5.创建一个登录login.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> 
 
</head> 
 
<body> 
 
<form action="login"> 
 
    userName:<input type="text" name="username"> 
 
    userPassword:<input type="password" name="password"> 
 
    <input type="submit" value="Submit"> 
 
</form> 
 
</body> 
 
</html> 

 

 


 

6.登录成功页面loginsuccess.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> 
 
</head> 
 
<body> 
 
<h1>Login Success!</h1> 
 
<p>Hello,<b><%=request.getAttribute("username")%></b>!</p> 
 
</body> 
 
</html> 


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/huzjtech/archive/2008/06/29/2596772.aspx

 

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值