servlet登录例子

 

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!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>
        <form name="form1" method="post" action="login/servlet">
           用户名:<input type="text" name="username"><br/>
		 密&nbsp;&nbsp;码:<input type="password" name="password"><br/>
	      <input type="submit" text = "提交" >   
        </form>
  </body>
</html>

LoginServlet.java

package com.cn;
import java.io.IOException;
import javax.naming.Context;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginSerlvet extends HttpServlet {
	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request,response);
	}
	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		System.out.println("---username------"+username);
		System.out.println("---username------"+password);
		User user = new User();
		user.setUsername(username);
		user.setPassword(password);
		System.out.println("----------------"+user.getUsername());
		if(username!=""&&password!=""){
			request.setAttribute("username", username);
			request.setAttribute("password", password);
			request.getRequestDispatcher("/success.jsp").forward(request, response);
			//response.sendRedirect(request.getContextPath() +"/success.jsp");
		}
		else{
			request.getRequestDispatcher("/error.jsp").forward(request, response);
		}
	}

}

success.jsp

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="com.cn.*" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'success.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>
    登录成功:用户名为:<%=request.getAttribute("username")%> <br>
  </body>
</html>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
	xmlns="http://java.sun.com/xml/ns/j2ee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
	http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
  	<servlet-name>LoginSerlvet</servlet-name>
  	<servlet-class>com.cn.LoginSerlvet</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>LoginSerlvet</servlet-name>
  	<url-pattern>/login/servlet</url-pattern>
  </servlet-mapping>
</web-app>
补充------------
进入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');   
    
创建验证用户的类UserValidation,他的功能是通过用户的输入数据到数据库中查找该用户是否存在:
[java] view plaincopy
package huzj.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;  
    }  
}  
创建一个servlet 完成分发LoginServlet;
[java] view plaincopy
package huzj.login.control;  
import huzj.login.entity.User;  
import huzj.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();  
        }  
    }  
}  
配置web.xml文件:
[xml] view plaincopy
<?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>huzj.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>  
创建一个登录login.jsp:
[xml] view plaincopy
<%@ 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>  
登录成功页面loginsuccess.jsp:
[xml] view plaincopy
<%@ 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>

转载于:https://my.oschina.net/xiahuawuyu/blog/70422

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值