首先我们来回顾一下Java Web的基本概念和架构。Java Web是使用Java技术开发的Web应用程序,基于客户端/服务器模型,主要包括三部分组成:客户端(浏览器),Web服务器和应用服务器。其中,Web服务器主要负责接受用户的HTTP请求,根据请求返回相应的HTML页面,而应用服务器则负责处理业务逻辑的运算和数据存储等任务。
在Java Web中,JSP和Servlet是两个重要的技术,用来进行页面的展示和后台的逻辑处理。JSP主要用来处理页面的输出,可以嵌入Java代码来处理动态请求和响应,而Servlet则用于处理HTTP请求和响应,通常被用来实现逻辑处理和数据存储的功能。
接下来,我们将分为六步来介绍JSP+Servlet制作Java Web登录功能的全流程:
步骤一:创建数据库表
为了实现登录功能,我们需要先创建一个用户表,存储用户的账户和密码信息。
可以使用以下SQL语句创建一个名为“user”的用户表,其中包含ID、用户名和密码三个字段:
CREATE TABLE user (
id INT(11) NOT NULL AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL,
PRIMARY KEY (id)
);
步骤二:编写JSP页面
在这里,我们将创建一个名为“login.jsp”的JSP页面,用于用户登录。该页面包含一个登录表单,输入用户名和密码并提交表单即可登录。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>登录页</title>
</head>
<body>
<h1>登录页</h1>
<form action="LoginServlet" method="post">
<p>
用户名:
<input type="text" name="username" />
</p>
<p>
密码:
<input type="password" name="password" />
</p>
<p>
<input type="submit" value="登录" />
</p>
</form>
</body>
</html>
步骤三:编写Servlet代码
接下来,我们将创建一个名为“LoginServlet”的Servlet类,用于处理用户登录请求。在该类中,我们将实现对用户输入信息的校验,以及对数据库中用户数据的查询。
以下是示例代码:
package com.example.web;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class LoginServlet extends HttpServlet {
// 处理POST请求
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 获取登录表单中输入的用户名和密码
String username = request.getParameter("username");
String password = request.getParameter("password");
// 校验用户名和密码是否为空
if (username == null || "".equals(username)) {
request.setAttribute("message", "用户名不能为空");
request.getRequestDispatcher("/login.jsp").forward(request, response);
return;
}
if (password == null || "".equals(password)) {
request.setAttribute("message", "密码不能为空");
request.getRequestDispatcher("/login.jsp").forward(request, response);
return;
}
// 查询数据库中是否存在该用户
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
String sql = "SELECT * FROM user WHERE username = ? AND password = ?";
ps = conn.prepareStatement(sql);
ps.setString(1, username);
ps.setString(2, password);
rs = ps.executeQuery();
if (rs.next()) {
// 如果存在该用户,则登录成功,重定向到首页
response.sendRedirect(request.getContextPath() + "/index.jsp");
} else {
// 如果不存在该用户,则登录失败,返回登录页并提示错误信息
request.setAttribute("message", "用户名或密码错误");
request.getRequestDispatcher("/login.jsp").forward(request, response);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) {
rs.close();
}
if (ps != null) {
ps.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
该代码主要通过“doPost”方法处理用户的登录请求,获取用户输入的用户名和密码,对其进行校验,然后查询数据库,判断是否存在该用户,如果存在则重定向到“index.jsp”页面,如果不存在则返回登录页并提示错误信息。
步骤四:配置web.xml文件
为了让Servlet能够正确地接受用户的请求,在Web应用程序中,需要在“web.xml”文件中配置Servlet。以下是示例代码:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.example.web.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>
</web-app>
该文件主要设置了Servlet的名称和类路径,同时指定了能够访问该Servlet的URL。
步骤五:创建首页
当用户登录成功后,需要重定向到首页。在这里,我们将创建一个名为“index.jsp”的页面,用于展示用户信息和其他相关内容。
以下是示例代码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>首页</title>
</head>
<body>
<h1>欢迎您,<%= request.getParameter("username") %>!</h1>
<p>这里是首页的内容。</p>
</body>
</html>
步骤六:运行程序并测试
最后,我们可以在浏览器中打开“login.jsp”页面,输入正确的用户名和密码,并点击“登录”按钮进行测试。如果登录成功,则会重定向到“index.jsp”页面,并展示用户信息和其他内容。
示例场景一:输入正确的用户名和密码
输入正确的用户名和密码,点击“登录”按钮,程序将会重定向到“index.jsp”页面,并展示如下内容:
欢迎您,xxx!
这里是首页的内容。
示例场景二:输入错误的用户名和密码
输入错误的用户名和密码,点击“登录”按钮,程序将会返回“login.jsp”页面,并提示用户名或密码错误的信息。
以上就是JSP+Servlet制作Java Web登录功能的全流程解析,希望对你有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JSP+Servlet制作Java Web登录功能的全流程解析 - Python技术站