准备工作:在mysql新建一个数据库名:TestDB,用户:root,密码:root
在项目中必须加载mysql的连接驱动。
在创建的TestDB中,创建表user,插入若干条数据(id,name(用户名),pwd(用户密码))
1.index.jsp
2.login.jsp
3.success.jsp
4.MyServlet.java
1.index.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Hello World!</h1>
<jsp:forward page="login.jsp"/>
</body>
</html>
2.login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<script>
function check() {
if (document.form.username.value == "") {
alert("请输入用户名");
return false;
}
else if (document.form.password.value == "") {
alert("请输入密码");
return false;
}
else {
}
}
</script>
<body>
<form name="form" action="LoginServlet" method="post" onsubmit="return check()">
<table border="1" align="center">
<tr>
<td colspan="2"><h3 align="center">用户登录</h3></td>
</tr>
<tr>
<td>username:</td>
<td><input type="text" name="username"/></td>
</tr>
<tr>
<td>password:</td>
<td><input type="password" name="password"/></td>
</tr>
<tr>
<td align="center" colspan="2"><input type="submit" value="提交"/>
<input type="reset" value="重置"/>
</td>
</tr>
</table>
<center> ${message}</center>
</form>
</body>
</html>
3.sucess.jsp
<%@page language="java" import="java.util.*" contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Success Page</title>
</head>
<body>
<%
String name = null;
String user = request.getParameter("username");
String pwd = request.getParameter("passward");
if (user == null&&pwd == null&&user==""&&pwd=="") {
response.sendRedirect("login.jsp");
}
name = (String)session.getAttribute("username");
if (name == null) {
response.sendRedirect("login.jsp");
}
%>
<%=name + "登录成功"%>
</body>
</html>
4.MyServlet.java
package servlet;
import java.io.IOException;
import java.sql.*;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/LoginServlet")
public class MyServlet extends HttpServlet {
Connection conn;
String url = "jdbc:mysql://localhost:3306/TestDB";
@Override
public void init() throws ServletException {
super.init();
try{
Class.forName("com.mysql.jdbc.Driver");
}catch(ClassNotFoundException e){
System.out.println(e);
}
}
@Override
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
String username = request.getParameter("username");
String password = request.getParameter("password");
String message = null;
request.getSession().setAttribute("message",message);
try {
conn = DriverManager.getConnection(url, "root", "root");
Statement stmt = conn.createStatement(); // 获取Statement
String sql = "SELECT * FROM user WHERE name='" + username
+ "' AND pwd='" + password + "'"; // 查询用户信息的SQL语句
ResultSet rs = stmt.executeQuery(sql); // 执行查询
if (rs.next()) { // 有数据库中存在该用户
request.getSession().setAttribute("username", username);
rs.close();
stmt.close();
conn.close();
response.sendRedirect("success.jsp");
}
else{
message = "用户名或密码有误";
request.getSession().setAttribute("message",message);
response.sendRedirect("login.jsp");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
请点击右边超链接:整个代码项目提供下载