当前位置: 首页 > news >正文

java-初识Servlet,Tomcat,JDBC

文章目录

  • 前言
  • 一、Servlet
      • Servlet 生命周期
      • Servlet 实例
      • Servlet 过滤器
  • 二、Tomcat
      • JDBC
      • 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("<h1>Hello World</h1>");}// 处理 POST 请求方法public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}
}

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

<?xml version="1.0" encoding="UTF-8"?>
<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>MyServlet</servlet-name><servlet-class>MyServlet</servlet-class></servlet><servlet-mapping><servlet-name>MyServlet</servlet-name><url-pattern>/myservlet</url-pattern></servlet-mapping></web-app>

上面代码,我们将 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();}}}
}

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


总结

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

http://www.lryc.cn/news/145944.html

相关文章:

  • SpringBoot+mybatis+pgsql多个数据源配置
  • 视频汇聚/视频监控管理平台EasyCVR接入海康SDK协议后无法播放该如何解决?
  • MQ消息队列(主要介绍RabbitMQ)
  • 2023年7月天猫糕点市场数据分析(天猫数据怎么看)
  • 开源双语对话语言模型 ChatGLM-6B 本地私有化部署
  • Zabbix 5.0 媒体介质 邮箱配置例子
  • 基于Red Hat Enterprise Linux 7操作系统的PostgresSql15的备份恢复(实践笔记)
  • AMEYA360:类比半导体推出小尺寸低功耗仪表放大器INA103和INA104
  • 【Ubuntu20.04】安装gcc11 g++11, Ubuntu18.04
  • vim系列之常用命令
  • Scikit-Learn中的特征选择和特征提取详解
  • Python之动态规划
  • [ES]二基础 |
  • vscode vue3自定义自动补全
  • Spring Cloud + Spring Boot 项目搭建结构层次示例讲解
  • 使用cgroup工具对服务器某些/全部用户进行计算资源限制
  • C#获取DataTable的前N行数据然后按指定字段排序
  • Swift 中的动态成员查找
  • leetcode做题笔记102. 二叉树的层序遍历
  • python编写四画面同时播放swap视频
  • 用XSIBackup为VMware ESXi打造完美备份方案
  • React 项目中引入msal验证以及部分报错处理
  • Unity3D 2021 使用 SharpZipLib 遇到的安卓打包 I18N 相关问题
  • 软件工程(十五) 行为型设计模式(一)
  • 【校招VIP】前端算法考点之快慢指针题型
  • Docker基础入门:容器数据卷与Dockerfile构建镜像(发布)
  • 部署问题集合(二十一)从零开始搭建一台NAS服务器(Linux虚拟机)
  • Git小白入门——了解分布式版本管理和安装
  • 芯科科技宣布推出下一代暨第三代无线开发平台,打造更智能、更高效的物联网
  • 无涯教程-Android - Intents/Filters