项目目录一览
如果不知道文件应该创建在何处,回过头来看看就好
一.项目构建
1.idea创建一个简单Java项目
2.添加web框架
3.在web目录下新建目录,命名为classes
4.复制classes目录的绝对路径,打开项目结构添加编译路径
5.添加servlet依赖(在自己tomcat安装目录的lib文件夹下可以找到)
二.配置tomcat
三.编写servlet代码
1.在src下创建如下Java代码
注意数据库名字必须修改为自己的数据库String url="jdbc:mysql://localhost:3306/232haoqingnian";红色部分为自己的数据库名字
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 java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
/**
* 简述:
*
* @author:LiYansheng
* @date:2021/08/11 22:56
* @version:
*/
@WebServlet("/logon")
public class validatelogon extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType("text/html;charset=UTF-8");
response.getWriter().println("hello world");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
String username = request.getParameter("username");
String password = request.getParameter("password");
PrintWriter out = response.getWriter();
try {
int flag=0;
// 第一步:装载驱动
Class.forName("com.mysql.cj.jdbc.Driver");
// 第二步:建立连接
String url="jdbc:mysql://localhost:3306/232haoqingnian";
String user="root";
String pwd="root";
Connection con= DriverManager.getConnection(url,user,pwd);
// 第三步:执行sql语句
String sql = "select * from user";
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(sql);
while (rs.next()) {
System.out.println(username+password);
System.out.println(rs.getString("username"));
System.out.println(rs.getString("password"));
if (username.equals(rs.getString("username")) && password.equals(rs.getString("password"))) {
response.sendRedirect("https://www.maoyan.com/");
flag=1;
break;
}
}
if(flag==0) {
response.setContentType("text/html;charset=UTF-8");
out = response.getWriter();
out.println("<html><body>");
out.println("<h2>验证失败,账号或密码错误</h2>");
out.println("</body></html>");
}
out.close();// 关闭Printwrite
// 第五步:关闭连接
con.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
2.在web.xml下web-app标签里边添加如下代码
<servlet>
<servlet-name>logon</servlet-name>
<servlet-class>validatelogon</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>logon</servlet-name>
<url-pattern>/demo</url-pattern>
</servlet-mapping>
其中servlet-class是创建的servlet类的名字,servlet-name对应servlet类下注解@WebServlet的值url-pattern是你想要的访问路径
3.创建html代码编写一个表单
设置表单<from action="http://localhost:8080/mywebproject/demo" method="post">其中mywebproject是刚刚部署tomcat时创建工件时的默认地址
下面代码仅供参考可用自己的登录表单,把账号密码框的name属性设置成username和password便于和servlet代码匹配
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>系统登录</title>
<style>
* {
margin: 0;
padding: 0;
}
/* 父容器样式 */
.container {
height: 800px;
background-color: rgb(228, 226, 223);
border: 1px solid;
/* padding: 1px; */
}
form {
background-color: aqua;
height: 350px;
}
h2 {
color: blue;
font-size: 20px;
}
</style>
</head>
<body>
<div class="container">
<form action="http://localhost:8080/mywebproject/demo" align="center"
method="post">
<h2>欢迎登录花果山电影信息管理系统</h2>
<table height="200px">
</thead>
<tbody>
<tr>
<td><span>账号:</span></td>
<td><input type="text" name="username"><br></td>
</tr>
<tr>
<td><span>密码:</span></td>
<td><input type="password" name="password"></td>
</tr>
</tbody>
</table>
<input type="submit" value="登录">
<input type="reset" value="重置">
</form>
</div>
</body>
</html>
四.添加数据库驱动依赖,创建user表
1.在自己的数据库创建user表
2.添加数据库依赖
添加方法同添加servlet依赖,如果没有这个驱动依赖文件可以参考这里mysql驱动下载
五.验证登录
1.启动项目
1-1:验证servlet配置成功
在地址栏直接输入demo默认跳转servlet的doGet()方法,显示hello world即为成功
如果遇到如下错误,不要惧怕
可以这样解决,打开项目结构->工件->底边警告那里可以一键修正
2.打开html文件(可以在浏览器中直接输入文件名字打开)
3.输入账号密码登录
如果账号密码在数据库中存在会跳转以下界面,登陆成功
否则会验证失败出现以下界面