使用JSP+Servlet+MySQL+Tomcat实现网页登录

文章申明:原文章为java jsp+servlet+mysql实现登录网页设计,经阅读后重新编写了其中的代码
开发框架:IntelliJ IDEA 2017.2+Maven+Tomcat 8.0+MySQL V5.7

共涉及到下面几个文件:

1、Maven配置文件 pom.xml
2、servlet 处理类 LoginTestServlet.java
3、登录页面 login.jsp
4、成功跳转页面 success.jsp
5、失败跳转页面 fail.jsp
6、配置文件 web.xml

---------------------------------文章正文,请依次阅读------------------------------

  • pom.xml内容
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.ken</groupId>
  <artifactId>Login</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>Login Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>org.testng</groupId>
      <artifactId>testng</artifactId>
      <version>6.8</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.42</version>
    </dependency>
  </dependencies>
  <build>
    <finalName>Login</finalName>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
  • LoginTestServlet.java内容
package com.ken;

import java.io.IOException;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.util.Objects;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;

/**
 * Servlet implementation class LoginTestServlet
 * @Description java+mysql+tomcat实现登录
 * @author xukui
 * @date 2017-7-22 21:22:11
 */
@WebServlet("/LoginTestServlet")
public class LoginTestServlet extends HttpServlet{
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public LoginTestServlet() {
        super();
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse respone)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=gb2312");
        request.setCharacterEncoding("gb2312");

        String result;

        String username = request.getParameter("username");
        String psw = request.getParameter("password");

        if (Objects.equals("", username) || username == null || username.length() > 20) {
            try {
                result = "请输入用户名(不能超过20个字符)";
                request.setAttribute("message", result);
                response.sendRedirect("login.jsp");
                return;
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        if (Objects.equals("", psw) || psw == null || psw.length() > 20) {
            try {
                result = "请输入密码(不能超过20个字符)";
                request.setAttribute("message", result);
                response.sendRedirect("login.jsp");
                return;
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        //登记JDBC驱动程序
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (Exception e) {
            System.out.print("Class Not Found Exception");
        }

        //链接URL
        String url = "jdbc:mysql://localhost:3306/study";
        Connection connection;
        Statement statement;
        ResultSet resultSet = null;

        try {
            connection = (Connection) DriverManager.getConnection(url, "root", "root567~");
            statement = (Statement) connection.createStatement();

            String sql = "select * from userInfo where username = '"+username+"' and userpsw = '"+psw+"'";
            resultSet = statement.executeQuery(sql);
        } catch (Exception e) {
            e.printStackTrace();
        }

        HttpSession session = request.getSession();
        session.setAttribute("username", username);

        try {
            assert resultSet != null;
            if (resultSet.next()) {
                session.setAttribute("age", resultSet.getString("age"));
                session.setAttribute("sex", resultSet.getString("sex"));
                session.setAttribute("weight", resultSet.getString("weight"));
                response.sendRedirect("success.jsp");
            } else {
                session.setAttribute("message", "用户名或密码不匹配。");
                response.sendRedirect("fail.jsp");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
  • login.jsp内容
<%--
  Created by IntelliJ IDEA.
  User: xukui
  Date: 2017/7/22
  Time: 21:49
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" %>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>用户登录</title>
</head>
<body>
<form action="LoginTestServlet" name="frmLogin" method="post">
    <h1 align="center">用户登录</h1>
    <div align="center">
        <table border="1">
            <tr>
                <td>用户名:</td>
                <td>
                    <label>
                        <input name="username" value="" size="20" maxlength="20" onfocus="if (this.value==='Your name') this.value='';"/>
                    </label>
                </td>
            </tr>
            <tr>
                <td>密 码:</td>
                <td>
                    <label>
                        <input type="password" name="password" value="" size="20" maxlength="20" onfocus="if (this.value==='Your Password') this.value='';" />
                    </label>
                </td>
            </tr>
        </table>
        <br/>
        <input type="submit" name="submit" value="Login" onclick="return validateLogin()">
        <input type="reset" name="reset" value="Clear" />
    </div>
</form>

<script type="text/javascript">
    function validateLogin() {
        var sUserName = document.frmLogin.username.value;
        var sPassWord = document.frmLogin.password.value;
        if(sUserName === "") {
            alert("请输入用户名!");
            return false;
        }

        if(sPassWord === "") {
            alert("请输入密码!");
            return false;
        }
    }
</script>
</body>
</html>
  • success.jsp内容
<%--
  Created by IntelliJ IDEA.
  User: xukui
  Date: 2017/7/22
  Time: 21:50
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" %>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>登录成功</title>
</head>
<body>
<%
    String username = (String) session.getAttribute("username");
    String age = (String) session.getAttribute("age");
    String weight = (String) session.getAttribute("weight");
    String sex = (String) session.getAttribute("sex");
    System.out.println("性别:A" + sex + "A");
    if (sex.trim().equals("M")) {
        sex = "男";
    } else {
        sex = "女";
    }
%>
<div align="center">
    <%=username%>
    <p>欢迎您,登录成功!</p><br/>
    <label style="color: blue">登录用户信息:</label>
    <table border="1">
        <tr>
            <td>姓名:</td>
            <td> <%=username%> </td>
        </tr>
        <tr>
            <td>年龄:</td>
            <td> <%=age%> </td>
        </tr>
        <tr>
            <td>体重:</td>
            <td> <%=weight%> </td>
        </tr>
        <tr>
            <td>性别:</td>
            <td> <%=sex%> </td>
        </tr>
    </table>
    <a href="login.jsp">返回</a>
</div>
</body>
</html>
  • fail.jsp内容
<%--
  Created by IntelliJ IDEA.
  User: xukui
  Date: 2017/7/22
  Time: 21:50
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8"%>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>登录失败</title>
</head>
<body>
<%
    String username = (String) session.getAttribute("username");
    String msg = (String) session.getAttribute("message");
%>
</body>
<div align="center">
    <%=username%>
    <p>对不起,登录失败!</p><br/>
    <label style="color: red">原因:</label>
    <%=msg%><br/>
    <br/>
    <p>5秒后将返回登录界面</p>
</div>

<%
    response.setHeader("Refresh", "5;URL=/Login/login.jsp");
%>
</html>
  • web.xml内容
<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>Archetype Created Web Application</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>login.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

  <!-- 添加servlet -->
  <servlet>
    <servlet-name>LoginTestServlet</servlet-name>
    <servlet-class>com.ken.LoginTestServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>LoginTestServlet</servlet-name>
    <url-pattern>/loginTestServlet</url-pattern>
  </servlet-mapping>
</web-app>
  • 对应的数据库和表
CREATE DATABASE study;
CREATE TABLE userInfo (
    id INT NOT NULL PRIMARY KEY,
    username CHAR(20) NOT NULL,
    userpsw CHAR(20),
    age INT,
    weight INT,
    sex ENUM('M', 'F')
);
  • 附上运行后的效果
image.png
image.png
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容