首页 > 其他分享 >servlet

servlet

时间:2024-12-25 14:44:35浏览次数:5  
标签:java Servlet FirstServlet import HTTP servlet

1. JDK介绍

JDK,全称Java SE Development kit(JDK),即java标准版开发包,是Oracle提供的一套用于开发java应用程序的开发包,它提供编译,运行java程序所需要的各种工具和资源,包括java编译器,java运行时环境,以及常用的java类库等。

2.JRE

JRE,全称Java Runtime Environment即Java运行环境。它是Java语言程序运行所需的软件环境。
JDK中包含了JRE。

3. Servlet

Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。

比如,我们打开一个网站有个注册功能,在填写完信息后,点击提交,所填写的信息传输到后端,根据所指向的路径,来匹配对应的servlet,专门用于处理注册流程

4.Servlet生命周期

Servlet生命周期就是从创建到毁灭的过程。
大致是四个阶段。

  1. init():初始化阶段,只被调用一次,也就是在第一次创建Servlet时被调用。
  2. service():服务阶段,主要处理来自客户端的请求,并可以根据HTTP请求类型来调用对应的方法,
    比如 doGet(),doPost(),doPut() 等等。
  3. doGet(),doPost():处理阶段,将主要代码逻辑写在此处。根据不同HTTP请求对应不同方法。
  4. destroy():毁灭阶段,该方法只会被调用一次,即在Servlet生命期结束时被调用。

5.Servlet项目新建

新建项目

选择 archetype 可以简单理解为选择模板,选择不同的模板会有各自的规范

在 pom.xml 中引入servlet的依赖,写在 标签内,然后可以点击右上角 加载文件改动的按钮(也就是重新加载安装依赖)

 <dependencies>
   <dependency>
     <groupId>junit</groupId>
     <artifactId>junit</artifactId>
     <version>4.13.1</version>
     <scope>test</scope>
   </dependency>
   <dependency>
     <groupId>javax.servlet</groupId>
     <artifactId>javax.servlet-api</artifactId>
     <version>3.1.0</version><scope>compile</scope>
   </dependency>
 </dependencies>

6.环境配置Tomcat

下载地址:https://tomcat.apache.org/
下载任意版本的即可

进入IDEA配置tomcat

选择刚刚下载解压的tomcat

先apply再ok

7.编写Servlet并运行

新建项目
创建一个java的主目录,以后的代码都写在此处
main -> new -> Diretory

创建class文件,并命名为FirstServlet

代码书写

import javax.servlet.ServletException; // 导入 ServletException 类,用于处理 Servlet 的异常
import javax.servlet.http.HttpServlet; // 导入 HttpServlet 类,提供处理 HTTP 请求的基础功能
import javax.servlet.http.HttpServletRequest; // 导入 HttpServletRequest 类,表示 HTTP 请求
import javax.servlet.http.HttpServletResponse; // 导入 HttpServletResponse 类,表示 HTTP 响应
import java.io.IOException; // 导入 IOException 类,用于处理输入输出异常
import java.io.PrintWriter; // 导入 PrintWriter 类,用于向客户端输出字符流

// 定义一个名为 FirstServlet 的类,继承自 HttpServlet
public class FirstServlet extends HttpServlet {

    // 重写 doGet 方法,处理 GET 请求
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 设置响应内容类型为 HTML
        resp.setContentType("text/html");

        // 获取 PrintWriter 对象,用于向响应输出数据
        PrintWriter out = resp.getWriter();

        // 向客户端发送一段 HTML 内容
        out.println("<h1>hello, first blood</h1>");
    }

    // 重写 doPost 方法,处理 POST 请求
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 调用 doGet 方法,以便对 POST 请求进行相同的处理
        doGet(req, resp);
    }
}

在web.xml 中注册servlet
在servlet中,需要根据URL路径匹配映射到对应的servlet。即在 web.xml 中注册servlet,如下图所
示:

<?xml version="1.0" encoding="UTF-8"?>
<web-app
    version="4.0"
    xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    xmlns:javaee="http://xmlns.jcp.org/xml/ns/javaee"
    xmlns:xml="http://www.w3.org/XML/1998/namespace"
    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">
  <display-name>Archetype Created Web Application</display-name>
  <servlet> <!-- 定义一个 Servlet -->
    <servlet-name>FirstServlet</servlet-name> <!-- Servlet 的名称 -->
    <servlet-class>FirstServlet</servlet-class> <!-- Servlet 的类名 -->
  </servlet>

  <servlet-mapping> <!-- 定义 Servlet 的映射 -->
    <servlet-name>FirstServlet</servlet-name> <!-- 绑定的 Servlet 名称 -->
    <url-pattern>/FirstServlet</url-pattern> <!-- 请求 URL 模式 -->
  </servlet-mapping>
</web-app>

8.映射匹配流程

/FirstServlet 路径绑定的 Servlet-name为FirstServlet ,而 FirstServlet绑定的 class是FirstServlet ,最终访问 /FirstServlet ,调用的类也就是 FirstServlet.class 。

9.启动项目,并访问

http://localhost:1919/FirstServlet

10.总结

Servlet 提供了一种强大的机制,用于构建动态 Web 应用,处理业务逻辑,并生成响应内容。

标签:java,Servlet,FirstServlet,import,HTTP,servlet
From: https://www.cnblogs.com/lx-limit/p/18630318

相关文章

  • 0day 移动应用getPicServlet存在任意文件的读取漏洞
     0x01产品概述    0day移动应用getPicServlet存在任意文件的读取漏洞通用描述管理和发布于一体的智能化平台,广泛应用于新闻、媒体和各类内容创作机构。该平台支持多终端、多渠道的内容分发,具备素材管理、编辑加工、智能审核等功能,通过AI技术辅助内容创作与数据分析......
  • 深入理解 Servlet:从基础概念到高级特性与实战应用
    一、Servlet简介与工作原理Servlet是JavaWeb开发中的重要组件,它运行在服务器端,用于处理客户端的请求并返回响应。其工作原理涉及多个组件和步骤,从客户端发起请求到服务器端的处理和响应,整个过程有条不紊地进行。(一)Servlet容器与TomcatServlet容器是Servlet运行的环境,负责管理S......
  • Java Web开发基础——Servlet与JSP基础
    在本节中,我们将深入探讨JavaWeb开发中的两个核心技术:Servlet和JSP(JavaServerPages)。这两者是JavaWeb应用程序的基础,理解它们的工作原理、生命周期以及如何高效地使用它们,对于开发者来说至关重要。1.Servlet概念、生命周期与配置Servlet概述Servlet是JavaEE(现为Jakarta......
  • servlet的生命周期
    分为四个节点:第一个阶段:创建servlet。---调用构造方法第二个阶段:初始化servlet。--调用init方法该方法只会执行一次。第三个阶段:服务阶段。---service方法第四个阶段:销毁阶段。---destory方法服务器关闭时不同阶段会调用不同的方法,packagecom.ykq.servlet;......
  • servlet
    1.什么是servlet?在Java中,Servlet是用于创建动态Web内容的服务器端组件。Servlet运行在Tomcat服务器上,可以响应客户端(通常是Web浏览器)发出的请求。Servlet的生命周期由服务器管理,主要包括初始化、请求处理和销毁三个阶段。Servlet是一种Java类,它实现了javax.servlet.Servlet接口......
  • servlet的请求转发和响应重定向
    文章目录1.简介2.请求转发2.1forword的请求转发2.2include的请求转发2.3其他3.响应重定向4.区别5.总结1.简介请求转发(RequestForwarding):请求转发是指服务器端将请求从一个Servlet转发到另一个Servlet、JSP页面或HTML页面,整个过程在服务器内部进行,对......
  • RequestContextHolder 与 HttpServletRequest 的联系
    1.什么是RequestContextHolder?RequestContextHolder是Spring框架提供的一个工具类,用于在当前线程中存储和获取与请求相关的上下文信息。它是基于ThreadLocal实现的,能够保证每个线程独立存储和访问请求信息。与HttpServletRequest的关系:HttpServletRequest:是标准......
  • 12.8 每日总结 (非Web环境中尝试获取HttpServletRequest对象Bug)
    今天的Bug解决吧SpringAI的底层函数回调并没有注册到Web容器中,所以要通过Controller层提前传递。 这个问题出现的原因是因为你在非Web环境中尝试获取HttpServletRequest对象,而这个对象是Web应用程序特有的,用于封装客户端发送的HTTP请求信息。在Spring框架中,HttpServletRequest......
  • Servlet介绍与配合javaWeb的使用
    文章目录1.Servlet介绍2.servlet的使用2.1创建项目2.2新建类2.3注册类2.4访问localhost:8080/myServlet.do2.5更简单的方式,使用注解(@WebServlet)2.6其他:修改欢迎页3.总结1.Servlet介绍Servlet是一种Java编写的服务器端程序,用于处理HTTP请求并生成动态Web内......
  • JavaWeb-2 Ajax以JSON格式访问Servlet
    1.客户端代码1<!DOCTYPEhtml>2<html>3<head>4<metacharset="UTF-8">5<title>Bootstrap实例-水平表单</title>6<linkrel="stylesheet"type="text/css"href="./css/boo......