环境配置:
Idea 2020.3
Tomcat 9
Maven 3.6.3
MySQL 8.0+Navicat 15
新建项目:
从原型创建,选择…webapp
写自己的项目名字
如果自己下载了maven
从这里使用自己安装的maven,第二行选择覆盖,用自己的路径的setting覆盖掉。
第三行选择自己的仓库。
完成之后,IDEA会自己配置好框架。
我们需要在pom.xml中配置自己需要的依赖包。
这个项目,我们需要tomcat-servlet-api和mysql-connector-java。
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-servlet-api</artifactId>
<version>7.0.62</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.17</version>
</dependency>
完成后更新maven配置文件。
我们需要构建
LoginServlet.java--可以直接创建为servlet文件。
判断用户密码时候正确,正确转到main.jsp,错误转到login.jsp。
User.java--存放user类的一些用法如setusername,getusername等等。
CommonSql.java--进行数据查询操作。
login.jsp--登陆界面,登陆action跳转到LoginServlet进行判断。
main.jsp--显示登陆成功。
LoginServlet
package cong;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import util.CommonSql;
@WebServlet(name = "LoginServlet", value = "/LoginServlet")
public class LoginServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");//防止post乱码
String username = request.getParameter("username");
String password = request.getParameter("password");
User user=new User();
user.setUsername(username);
user.setPassword(password);
System.out.println("user="+user.getUsername());
System.out.println("pswd="+user.getPassword());
String sql;
sql = " SELECT * FROM 自己的表名 where username = '"+user.getUsername()+"' and password = '"+user.getPassword()+"'";
CommonSql login = new CommonSql();
User user1 = login.CaozuoSql(sql);
//user.getUsername().equals(user1.getUsername()) && user.getPassword().equals(user1.getPassword())
if(user1 != null){
System.out.println("查找成功");
request.setAttribute("usertemp", user1);
request.getRequestDispatcher("/main.jsp").forward(request, response);
}
else{
System.out.println("查找失败");
request.setAttribute("errInfo", "用户名或密码不正确!");
String message = "登陆失败,请返回重新登录";
request.setAttribute("message",message);
request.getRequestDispatcher("/login.jsp").forward(request, response);
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// System.out.println("tt");
doGet(request,response);
}
}
User
package cong;
public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
CommonSql
package util;
import cong.User;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class CommonSql {
public User CaozuoSql(String sql ){
User user=new User();
// MySQL 8.0 以下版本 - JDBC 驱动名及数据库 URL
// final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
// final String DB_URL = "jdbc:mysql://localhost:3306/javaee?serverTimezone=UTC&characterEncoding=utf-8";
// MySQL 8.0 以上版本 - JDBC 驱动名及数据库 URL
final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
final String DB_URL = "jdbc:mysql://localhost:3306/database?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";
// 数据库的用户名与密码,需要根据自己的设置
final String USER = "账号";
final String PASS = "密码";
Connection conn = null;
Statement stmt = null;
try{
// 注册 JDBC 驱动
Class.forName(JDBC_DRIVER);
// 打开链接
conn = DriverManager.getConnection(DB_URL,USER,PASS);
// 执行查询
stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
if(rs.next()){ //查不到数据 sql执行false
String username2 = rs.getString("username");
String password2 = rs.getString("password");
System.out.println("查到了");
// System.out.println(username2 + password2);
user.setUsername(username2);
user.setPassword(password2);
// 完成后关闭
rs.close();
stmt.close();
conn.close();
return user;
}
else {
// 完成后关闭
rs.close();
stmt.close();
conn.close();
return null;
}
}catch(Exception se){
// 处理 JDBC 错误
se.printStackTrace();
} finally {
// 关闭资源
try {
if (stmt != null) stmt.close();
if (conn != null) conn.close();
}
catch (Exception se) {
se.printStackTrace();
}
}
return user;
}
}
login
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登录页</title>
</head>
<%
String message = (String) request.getAttribute("message");
if(message!=null){
%>
<script>
alert("<%=message%>");
</script>
<%
}
%>
<body>
<form action="<%=request.getContextPath()%>/LoginServlet" method="post">
<table>
<tr><td>用户名:</td><td><input type="text" name="username" /></td></tr>
<tr><td>密码:</td><td><input type="password" name="password" /></td></tr>
<tr><td colspan="2"><input type="submit" value="登录"/></td></tr>
</table>
</form>
</body>
</html>
main
<%@ page import="cong.User" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<%
User user = (User)request.getAttribute("usertemp"); //取出request中的user
%>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>登录成功</title>
</head>
<body>
<h1><%=user.getUsername()%>,你好。欢迎登录系统!</h1>
</body>
</html>
配置好Tomcat
将数据库名,表名,账号,密码都改成自己的。
代码仅供参考。