# 一.基础介绍

# 1.什么是 javaWeb?

JavaWeb 是一种使用 Java 编程语言开发 Web 应用程序的技术体系。它是建立在 Java 平台上的一组技术和规范,用于创建动态、交互性和可扩展的 Web 应用程序。JavaWeb 通常涉及到使用 Java Servlet、JavaServer Pages(JSP)、JavaBeans、Enterprise JavaBeans(EJB)等技术。

JavaWeb 技术的使用使开发者能够构建功能强大、可维护和可扩展的 Web 应用程序。这些应用程序可以在各种 Web 服务器上运行,并能够与数据库、其他 Web 服务以及其他企业级系统进行交互。

# 2.JavaWeb 组件和技术

以下是一些 JavaWeb 中常用的关键组件和技术:

  1. Java Servlet: Java Servlet 是在服务器端执行的 Java 程序,用于处理 Web 请求和生成动态的 Web 内容。它们通常被用于处理表单提交、用户身份验证等任务。

  2. JavaServer Pages(JSP): JSP 是一种在 HTML 页面中嵌入 Java 代码的技术,用于简化动态 Web 页面的创建。JSP 页面可以包含 Java 代码、HTML 标签和特定的 JSP 标签。

  3. JavaBeans: JavaBeans 是可重用的 Java 组件,用于在 JavaWeb 应用程序中实现业务逻辑和数据管理。它们通常被用于封装和管理应用程序中的数据。

  4. Enterprise JavaBeans(EJB): EJB 是一种服务器端组件模型,用于构建分布式的企业级应用程序。它提供了一种规范,定义了组件之间的交互方式,包括事务管理、安全性等。

  5. Java Database Connectivity(JDBC): JDBC 是 Java 用于与数据库交互的 API。在 JavaWeb 应用程序中,通过 JDBC 可以实现与数据库的连接、查询和更新操作。

  6. JavaServer Faces(JSF): JSF 是 Java 的一个 Web 应用程序框架,用于简化用户界面的开发。它提供了一组组件和标签,使得构建用户界面更加容易。

# 3.什么是 Tomcat?

Apache Tomcat(通常简称为 Tomcat)是一个开源的、轻量级的 Java Servlet 容器,也可以作为一个独立的 Web 服务器运行。它是 Apache 软件基金会的一个项目,用于实现和提供 Java Servlet 和 JavaServer Pages(JSP)技术的开发和部署环境。

以下是一些关键特点和功能:

  1. Servlet 容器: Tomcat 充当 Java Servlet 的容器,负责管理和执行 Servlet 程序。Servlet 是在服务器端运行的 Java 程序,用于处理 Web 请求和生成动态的 Web 内容。

  2. JSP 容器: Tomcat 还作为 JSP 容器,支持执行 JavaServer Pages。JSP 是一种在 HTML 页面中嵌入 Java 代码的技术,用于简化动态 Web 页面的开发。

  3. 独立 Web 服务器: 虽然 Tomcat 最初是设计用于运行 Servlet 和 JSP,但它也可以作为一个独立的 Web 服务器使用。它支持基本的 HTTP 服务,并且可以处理静态内容。

  4. 开源: Tomcat 是一个开源项目,这意味着它的源代码是公开可用的,并且开发者可以自由地使用、修改和分发它。

  5. 可扩展性: Tomcat 具有良好的可扩展性,支持通过插件(如 Valve 和 Realm)扩展其功能。这使得开发者可以根据应用程序的需求进行定制和扩展。

  6. 跨平台: Tomcat 是跨平台的,可以在多种操作系统上运行,包括 Windows、Linux 和 macOS 等。

由于其轻量级、灵活性和开源性质,Tomcat 被广泛用于 JavaWeb 应用程序的开发和部署。它通常与其他 Java 技术(如 Java EE 或 Spring 框架)一起使用,以构建完整的企业级 Web 应用程序。

# 二.基础准备

# 1.新建项目

打开 IDEA,单击“New Project”或者通过 File–>new–>Project,在弹出的对话框中输入项目名称,其它的默认选择,点击 finish 按钮

image-20231207134542931

# 2.设置项目信息

image-20231207134915490

# 3.web 支持

为项目添加 Web 框架支持,右键单击创建的项目,点击 Add Framework Support,在弹出的对话框中勾选 Web Application(4.0)及 Create web.xml 复选框,单击“OK”按钮,完成添加。

image-20231207135046260

# 4.web application 支持

image-20231207134943926

# 5.添加依赖

添加依赖包,右键单击 WEB-INF 文件夹,在弹出的对话框中选择 New–>Directory 命令,创建 lib 文件夹。

mysql-connector-j-8.2.0.jar 是 mysql 相关的连接包,如果不需要 mysql,可以不要这个包

servlet-api.jar servlet 依赖包

servlet-api.jar

image-20231207140130413

# 6.Add As Library

在 servlet-api.jar 文件上右击鼠标,选择 Add As Library,将 jar 包添加到 Library 中

image-20231207140224711

# 三.业务代码

# 1.业务层


@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
        // 设置请求的字符编码为UTF-8
        request.setCharacterEncoding("UTF-8");
        // 获取页面上输入的用户名和密码
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        // 调用 DBOperator 类来验证用户
        boolean userExists = DBOperator.setUserInfo(username, password);
        // 设置响应内容类型
        response.setContentType("text/html;charset=UTF-8");
        if (userExists) {
            request.getSession().setAttribute("username", username);
            response.sendRedirect("success.jsp");
        } else {
            request.getSession().setAttribute("username", username);
            response.sendRedirect("fail.jsp");
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

# 2.数据层


public class DBOperator {

    /**
     * JDBC连接数据库的相关信息
     */
    private static final String JDBC_URL = "jdbc:mysql://localhost:3306/student_system_db";
    private static final String JDBC_USER = "root";
    private static final String JDBC_PASSWORD = "123456";

    /**
     * 验证用户信息的方法
     *
     * @param username
     * @param password
     * @return
     */
    public static boolean setUserInfo(String username, String password) {
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        try {
            // 加载JDBC驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            // 建立数据库连接
            connection = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASSWORD);
            // 使用预编译语句查询用户信息
            String query = "SELECT * FROM student WHERE username = ? AND password = ?";
            preparedStatement = connection.prepareStatement(query);
            preparedStatement.setString(1, username);
            preparedStatement.setString(2, password);
            // 执行查询
            resultSet = preparedStatement.executeQuery();
            // 如果查询结果非空,则表示用户存在
            return resultSet.next();
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
            return false;
        } finally {
            try {
                if (resultSet != null) {
                    resultSet.close();
                }
                if (preparedStatement != null) {
                    preparedStatement.close();
                }
                if (connection != null) {
                    connection.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55

# 3.数据库脚本

CREATE
database student_system_db;
use
student_system_db;

CREATE TABLE student_system_db.student
(
    id       char(10),
    username nvarchar(8),
    password char(20)
);
INSERT INTO student_system_db.student
    (id, username, password)
VALUES ('190504582', '公孙丽', 'gs123')
     , ('330504422', '王翰', 'wang24')
;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 四.jsp 页面

# 1.index 页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>首页</title>
</head>
<body>
首页
</body>
</html>
1
2
3
4
5
6
7
8
9

# 2.登录页面

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Login Page</title>
</head>
<body>
<h2>Login Page</h2>
<form action="LoginServlet" method="post" accept-charset="UTF-8">
    Username: <input type="text" name="username"><br>
    Password: <input type="password" name="password"><br>
    <input type="submit" value="Login">
</form>
</body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 3.登录成功页面

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <title>登录成功</title>
</head>
<body>
<h2>登录成功!欢迎 <%= session.getAttribute("username") %></h2>
</body>
</html>
1
2
3
4
5
6
7
8
9
10

# 4.失败页面

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <title>登录失败</title>
</head>
<body>
<h2>登录失败,用户名 <%= session.getAttribute("username") %> 不存在,请重新登录。</h2>
</body>
</html>
1
2
3
4
5
6
7
8
9
10

# 五.配置 tomcat

# 1.本机安装 tomcat

下载地址 (opens new window)

image-20231207140421099

# 2.配置 tomcat

image-20231207135420028

# 3.启动项目

image-20231207135436921

# 4.访问项目

通过访问如下页面可以到达登录页面

http://localhost:8080/webProject_war_exploded/Login.jsp

上次更新: 10/29/2024, 10:27:50 AM