servlet实现简单的登录功能

1.登录页面 Login.html



<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <title>登录</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
<div >
<h4 >
请输入您的登录信息
</h4>
<div ></div>
<form action="login.do" method="post">
<table>
<tr>
<td><label for="loginname">用户名:</label></td>
<td><input type="text" id="loginname" name="loginname" value="" style="width: 220px"></td>
</tr>
<tr>
<td><label for="password">密码:</label></td>
<td><input type="password" id="password" name="password" value="" style="width: 220px"></td>
</tr>
</table>
<div></div>
<label >
<input type="checkbox" />
<span>记住我的登陆信息</span>
</label>
<div></div>
<div></div>
<button>
<span>登录</span>
</button>
</form>
</div>
</body>
</html>

2.LoginServlet.java

package com.yanCheng.service.impl;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.yanCheng.controller.DataProvider;
import com.yanCheng.dao.*;


public class LoginServelt extends HttpServlet {


private final String ERROR_VIEW = "Error.view";

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("utf-8");
String loginname = request.getParameter("loginname");
String password = request.getParameter("password");
if(checkLogin(loginname,password)){
//登录成功页面
response.sendRedirect("views/Home/Index.html");
}else{
//也可以像成功页面那样写
response.sendRedirect(ERROR_VIEW);
}

}

//读取数据库,验证登录
private boolean checkLogin(String loginname, String password) {
if (loginname != null && password != null) {
return !DataProvider.isResultSetNull("select * from yancheng.lcb_user_information "
+ "where LOGINNAME = '" + loginname + "' and PASSWORD = '" + password + "'");
}
return false;
}

@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
}

3.建立数据库模型,主要实现数据库连接建立、执行查询、释放连接、判断等操作。
DataProvider.java package com.yanCheng.controllerimport java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;


public class DataProvider {

//指定驱动名
protected static String driver = "com.mysql.jdbc.Driver";
//指定访问的URL
protected static String url = "jdbc:mysql://localhost:3306/yancheng";
//MySQL用户名
protected static String user = "root";
//MySQL密码
protected static String password = "123456";
//初始Connection
protected static Connection connection = null;

//建立连接
public static Connection getConnection() {
try {
Class.forName(driver);
connection = DriverManager.getConnection(url, user, password);
return connection;
} catch (ClassNotFoundException | SQLException e) {
return null;
}
}

//获取结果集
public static ResultSet getResultSet(String sql) {
Statement statement;
ResultSet resultSet = null;
Connection conn = getConnection();
if (conn != null) {
System.out.println("连接成功!");
try {
statement = conn.createStatement();
resultSet = statement.executeQuery(sql);
} catch (Exception e) {
}
return resultSet;
} else {
return null;
}
}

//判断结果集是否为空
public static boolean isResultSetNull(String sql) {
int count = 0;
ResultSet resultSet = getResultSet(sql);
try {
while (resultSet.next()) {
count += 1;
}
} catch (SQLException ex) {
Logger.getLogger(DataProvider.class.getName()).log(Level.SEVERE, null, ex);
}
if (count == 0) {
return true;
} else {
return false;
}
}

//是否执行
public static boolean execute(String sql) {
boolean success;
Statement statement;
Connection conn = getConnection();
if (conn != null) {
try {
statement = conn.createStatement();
success = statement.execute(sql);
} catch (Exception e) {
success = false;
}
} else {
success = false;
}
return success;
}

//释放连接
public static void releaseConnection() {
try {
if (connection != null) {
connection.close();
}
} catch (Exception e) {
}
}
}

4.登录成功页面
index.html
写一个登录成功的html就好
5.d登录失败页面
error.java
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author Barudisshu
 */
public class Error extends HttpServlet {

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {
            /* TODO output your page here. You may use following sample code. */
            out.println("<!DOCTYPE html>");
            out.println("<html>");
            out.println("<head>");
            out.println("<meta charset=\"utf-8\">");
            out.println("<title>会员登录成功页面</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>会员 " + request.getParameter("user") + " 你好</h1>");
            out.println("</body>");
            out.println("</html>");
        } finally {
            out.close();
        }
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }
}

6.web.xml配置

<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.yanCheng.service.impl.LoginServelt</servlet-class>
</servlet>
<servlet>
<servlet-name>Failure</servlet-name>
<servlet-class>com.yanCheng.service.impl.Failure</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/login.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Failure</servlet-name>
<url-pattern>/failure.view</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>Login.html</welcome-file>
<!--<welcome-file>Index.html</welcome-file>-->
</welcome-file-list>
 
posted @ 2018-03-31 14:30  旋风冲锋ofo  阅读(725)  评论(0编辑  收藏  举报