• java-初识Servlet,Tomcat,JDBC



    前言

    java入门须知的重要概念/名词/技术 等

    一、Servlet

    Servlet是Java Web开发中的一个核心组件,它是基于Java语言编写的服务器端程序,可以接收Web容器(如Tomcat)发送过来的HTTP请求,并向客户端发送HTTP响应。Servlet通常用来处理动态Web页面、Web表单数据、管理会话(session)等任务。

    实际上,Servlet的主要用途是实现动态Web页面,它可以根据请求参数、表单数据、Session状态等动态生成HTML页面内容,并将结果返回给客户端。Servlet还可以处理上传文件、验证用户身份、调用数据库等操作。

    使用Servlet可以帮助开发者解决很多Web开发中的问题,如实现动态页面、保证数据交互的安全性、提高Web应用的可扩展性和可维护性等。此外,Servlet的开放式架构使得它与其他Java技术如JSP、JDBC等无缝集成,使得开发更加快捷、高效。
    在这里插入图片描述

    Servlet 生命周期

    Servlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程:

    Servlet 初始化后调用 init () 方法。
    Servlet 调用 service() 方法来处理客户端的请求。
    Servlet 销毁前调用 destroy() 方法。
    最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。

    Servlet 实例

    // 导入必要的 Servlet 库
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    
    // 继承 HttpServlet 类
    public class MyServlet extends HttpServlet {
    
      // 处理 GET 请求方法
      public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
          // 设置响应内容类型
          response.setContentType("text/html");
    
          // 实际的逻辑是在这里
          PrintWriter out = response.getWriter();
          out.println("

    Hello World

    "
    ); } // 处理 POST 请求方法 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
    • 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

    这个 Servlet 会处理 HTTP GET 和 POST 请求,并在浏览器中输出 “Hello World”。要运行此 Servlet,您需要编写一个 web.xml 文件并将其部署到一个 Servlet 容器中。以下是一个示例 web.xml 文件:

    
    <web-app xmlns="http://java.sun.com/xml/ns/javaee"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
            version="3.0">
    
        <servlet>
            <servlet-name>MyServletservlet-name>
            <servlet-class>MyServletservlet-class>
        servlet>
    
        <servlet-mapping>
            <servlet-name>MyServletservlet-name>
            <url-pattern>/myservleturl-pattern>
        servlet-mapping>
    
    web-app>
     
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    上面代码,我们将 Servlet 映射到 /myservlet URL,这意味着当用户访问 http://localhost:8080/myservlet 时,Servlet 将被调用。

    Servlet 过滤器

    Servlet 过滤器是一个 Java 程序组件,它可以拦截 Http 请求和响应,以便在处理请求之前或响应之后执行一些操作。它是基于 Java Servlet API 的一种功能,可以用于处理请求、授权、记录,转换内容或响应,以及在请求或响应被发送到 Servlet 之前或之后执行其他操作。

    Servlet 过滤器提供了一种简单而强大的方法来修改或增强 HTTP 请求和响应,可以用来实现一些常见的功能,例如:

    • 认证和授权:过滤器可以对请求进行身份验证和权限检查,以保护应用程序免受未经授权的访问。
    • 数据压缩:通过在响应中添加压缩头,可以减少数据传输量,从而提高应用程序的性能。
    • 日志记录:可以使用过滤器记录请求和响应的详细信息,以进行监视、故障排除和分析。
    • 数据转换:可以使用过滤器将请求或响应转换为其他格式,例如将 XML 生成为 JSON 或反之。

    Servlet 过滤器可以在 WEB.XML 文件中配置,并通过 Java Servlet API 中提供的 Filter 接口来实现。此外,开发人员还可以自定义过滤器来满足其特定的需求。

    二、Tomcat

    Tomcat 是一个 Java Web 应用服务器,而 Servlet 是 Java Web 开发的重要组件之一,用于处理客户端的 HTTP 请求和响应,Tomcat 作为一个 Web 服务器,可以通过 Servlet 容器来管理和运行 Servlet,因此 Tomcat 中集成了 Servlet 容器,可以使用 Servlet 直接开发 Web 应用程序,实现对客户端 HTTP 请求的处理和响应。简而言之,Tomcat 与 Servlet 是一种相互依赖的关系。

    在这里插入图片描述

    JDBC

    JDBC是Java Database Connectivity的缩写,是Java平台上关于数据库访问的一种标准。JDBC API是Java应用程序和各种关系数据库之间进行连接和交互的标准API。使用JDBC API,Java应用程序可以执行诸如查询、插入、更新和删除等各种数据库操作。

    JDBC API由两部分组成:JDBC Driver API和JDBC Manager API。JDBC Driver API提供了连接数据库和执行SQL语句的方法,不同的数据库需要使用不同的JDBC驱动程序。JDBC Manager API则提供了管理JDBC驱动程序、连接数据库及其元数据的方法。

    JDBC的工作方式是通过Java应用程序中的JDBC驱动程序来连接到数据库。JDBC驱动程序是一个软件组件,作为Java应用程序和数据库之间通信的媒介。JDBC驱动程序可以使用不同的连接方式来连接不同的数据库,例如直接连接、间接连接、分布式连接等。常用的JDBC驱动程序包括JDBC-ODBC桥、纯Java驱动程序和本地协议驱动程序等。

    使用JDBC API进行数据库操作的基本步骤如下:

    1. 加载并注册JDBC驱动程序。

    2. 创建一个数据库连接。

    3. 创建一个Statement对象,用于执行SQL语句。

    4. 执行SQL语句,得到一个ResultSet对象,用于处理查询结果。

    5. 处理ResultSet对象中的数据。

    6. 关闭ResultSet对象、Statement对象和数据库连接。

    JDBC是Java应用程序中访问关系型数据库的一种标准API,它简化了Java编程人员对数据库的访问,为Java应用程序与各种关系型数据库之间提供了一个标准接口。

    JDBC连接数据库实例

    下面是一个使用 JDBC 连接 MySQL 数据库的示例代码:

    import java.sql.*;
    
    public class JDBCTest {
        public static void main(String[] args) throws SQLException {
            Connection connection = null;
            Statement statement = null;
            ResultSet resultSet = null;
    
            try {
                // 加载MySQL JDBC驱动程序
                Class.forName("com.mysql.jdbc.Driver");
    
                // 连接到数据库
                String url = "jdbc:mysql://localhost:3306/mydatabase";
                String username = "root";
                String password = "password";
                connection = DriverManager.getConnection(url, username, password);
    
                // 执行查询
                String sql = "SELECT * FROM mytable";
                statement = connection.createStatement();
                resultSet = statement.executeQuery(sql);
    
                // 处理结果集
                while (resultSet.next()) {
                    int id = resultSet.getInt("id");
                    String name = resultSet.getString("name");
                    System.out.println("id = " + id + ", name = " + name);
                }
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } finally {
                // 关闭资源
                if (resultSet != null) {
                    resultSet.close();
                }
                if (statement != null) {
                    statement.close();
                }
                if (connection != null) {
                    connection.close();
                }
            }
        }
    }
    
    • 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

    上述代码中,先加载 MySQL 的 JDBC 驱动程序,然后通过 DriverManager.getConnection() 方法连接到指定的数据库。接着执行一个查询,将结果集存储在 ResultSet 对象中,并逐行遍历结果集来获取数据。最后,需要关闭连接、语句和结果集等资源。


    总结

    我们在此文章知道了servlet 是基于Java语言编写的服务器端程序,可以处理Web容器(如Tomcat)发送过来的HTTP请求,也写了实例代码,另外servlet的过滤器,可以用来处理请求前与请求后的一些逻辑。;接着简单了介绍了tomcat,知道Tomcat 作为一个 Web 服务器,可以通过 Servlet 容器来管理和运行 Servlet;最后介绍jdbc,以及jdbc连接数据库的实例代码。

  • 相关阅读:
    吲哚菁绿ICG标记纳米二硫化钨|ICG-WS2 NPs|WS2-ICG|ICG-SS-PEG-WS2|荧光如何偶联修饰纳米粒
    【信号去噪】基于卡尔曼滤波实现信号去噪附matlab代码
    解决Kafka新消费者组导致重复消费的问题
    一文解读ISO26262安全标准:概念阶段
    8.StringTable(字符串常量池)
    关于allatori代码混淆技术的一次实践
    【PostgreSQL】PG_DUMP的文件大小元小于库占用物理空间统计
    Golang: Store Query Result in a Map
    opencv-python之图像的基本表示形式
    PHP:声明注解类
  • 原文地址:https://blog.csdn.net/Bruce__taotao/article/details/132565790