使用jsp+servlet+mysql+tomcat实现登录网页设计

文章申明:原文章为java jsp+servlet+mysql实现登录网页设计经阅读后重新编写了其中的代码

开发框架

IDE:Eclipse Java EE,Servers:Tomcat 8.0, DataBase:MySQL V5.7

涉及下面几个文件:

1、登录页面 login.jsp

2、成功跳转页面 success.jsp

3、失败跳转页面 fail.jsp

4、servlet 处理类 LoginTestServlet.java

5、配置文件 web.xml

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

LoginTestServlet.java内容

package com.study;

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

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 Ken
 * @date 2017-7-16 19:44:48
 */
@WebServlet("/LoginTestServlet")
public class LoginTestServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public LoginTestServlet() {
		super();
	}
	
	/**
	 * @see HttpServlet#doGet(HttpServletRequest requset, HttpServletResponse response)
	 */
	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(username == "" || username == null || username.length() > 20) {
			try {
				result = "请输入用户名(不能超过20个字符)";
				request.setAttribute("message", result);
				response.sendRedirect("login.jsp");
				return;
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		
		if(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 conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		
		try {
			conn = (Connection) DriverManager.getConnection(url,"root", "root567~");
			stmt = (Statement) conn.createStatement();
			
			String sql = "select * from userInfo where username='"+username+"' and userpsw= '"+psw+"'";
			rs = stmt.executeQuery(sql);
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		HttpSession session = request.getSession();
		session.setAttribute("username", username);
		
		try {
			if(rs.next()) {
				session.setAttribute("age", rs.getString("age"));
				session.setAttribute("sex", rs.getString("sex"));
				session.setAttribute("weight", rs.getString("weight"));
				response.sendRedirect("success.jsp");
			} else {
				session.setAttribute("message", "用户名或密码不匹配。");
				response.sendRedirect("fail.jsp");
				return;
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}


login.jsp内容

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




用户登录


	

用户登录

用户名:
密 码:


success.jsp内容

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




登录成功


<%
	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 = "女";
	}
%>
	
<%=username %>

欢迎您,登录成功!


登录用户信息:
姓名: <%=username %>
年龄: <%=age %>
体重: <%=weight %>
性别: <%=sex %>
返回

fail.jsp内容

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




登录失败


	<%
		String username = (String)session.getAttribute("username");
		String msg = (String)session.getAttribute("message");
	%>
	
<%=username %>

对不起,登录失败!


原因: <%=msg %>

5秒后将返回登录界面

<% response.setHeader("Refresh", "5;URL=/Login/login.jsp"); %>


web.xml内容



  Login
  
    index.html
    index.htm
    index.jsp
    default.html
    default.htm
    default.jsp
  
  
  
  
  	LoginTestServlet
  	com.study.LoginTestServlet
  
  
  
  	LoginTestServlet
  	/loginTestServlet
  


对应的数据库和表,Eclipse链接MySQL的方法请自行度娘下哈

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')
);



附上运行后的效果






你可能感兴趣的:(Java)