首页 > 其他分享 >Servlet p1 Servlet的实现

Servlet p1 Servlet的实现

时间:2023-06-12 22:33:56浏览次数:35  
标签:p1 实现 Servlet WebServlet HttpServlet import servlet javax

Servlet的实现

基本介绍

​ Servlet是Server与Applet的缩写,是服务端小程序的总思。使用Java语言编写的服务器端程序,可以像生成动态的WEB页,Servlet主要运行在服务器端,并由服务器调用执行,是一种按照Servlet标准来开发的类。是SUN公司提供的一门用于开发动态Web资源的技术。(言外之意:要实现web开发,需要实现Servlet标准)

​ 它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。

​ Servlet本质上也是Java类,但要遵循Servlet规范进行编写,没有main()方法,它的创建、使用、销毁都由Servlet容器进行管理(如Tomcat)。(言外之意:写自己的类,不用写main方法,别人自动调用)

​ Servlet是和HTTP协议是紧密联系的,其可以处理HTTP协议相关的所有内容。这也是Servlet应用广泛的原因之一。
提供了Servlet功能的服务器,叫做Servlet容器,其常见容器有很多,如Tomcat,Jetty,WebLogic,Server,WebSphere,JBoss等等。

Servlet架构:

Servlet架构

实现Servlet规范

​ 实现 Servlet 规范,即继承 HttpServlet 类,需要导入相应的包,(在此之前需要导入对应的servlet的jar包)。该类中已经完成了通信的规则,我们只需要进行业务的实现即可。

import javax.servlet.http.HttpServlet;

public class servlet01 extends HttpServlet{
}

重写service方法和设置注解

  • 重写service方法

    ​ 满足Servlet规范只是让我们的类能够满足接收请求的要求,接收到请求后需要对请求进行分析,以及进行业务逻辑处理,计算出结果,则需要添加代码,在Servlet中有一个叫做service的方法,专门用来做请求处理的操作,业务代码则可以写在该方法中。

    ​ service() 方法是执行实际任务的主要方法。Servlet 容器(即 Web 服务器)调用 service() 方法来处理来自客户端(浏览器)的请求,并把格式化的响应写回给客户端。

    ​ 每次服务器接收到一个 Servlet 请求时,服务器会产生一个新的线程并调用服务。service() 方法检查 HTTP 请求类型(GET、POST、PUT、DELETE 等),并在适当的时候调用 doGet、doPost、doPut,doDelete 等方法。

  • 设置注解

    ​ 在完成好了一切代码的编写后,还需要向服务器说明,特定请求对应特定资源。

    ​ 开发servletI项目,使用@WebServlet将一个继承于javax.servlet.http,HttpServlet的类定义为Servlet组件。
    在Servlet3.0中,可以使用@VebServleti注解将一个继承于javax.servlet.http.HttpServlet的类标注为可以处理用
    户请求的Servlet。

package com.xxxx.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

//@WebServlet("/ser01")
//@WebServlet(name = "Servlet01", value = "/ser01")//name就是一个名字可写可不写,value后面可以接数组,数组中的地址都可以访问到该页面
//@WebServlet(name = "Servlet01", value = {"/ser01", "/ser001"})
@WebServlet("/ser01")//路径中的 "/" 一定不能忘
public class Servlet01 extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("Hello Servlet!");

        resp.getWriter().write("Hello Servlet!");
    }
}

实现Servlet的方式

  1. 继承HttpServlet类
  2. 继承GenericServlet类:GenericServlet类是HttpServlet类的父类,所以也可以用来实现Servlet;
  3. 实现Servlet接口:GenericServlet类也实现了Servlet接口,实现Servlet接口也可以使用Servlet;

以上三种方式通常使用HttpServlet,方法也更全面;

继承GenericServlet类:

package com.xxxx.servlet;

import javax.servlet.GenericServlet;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;

@WebServlet("/ser02")
public class servlet02 extends GenericServlet {
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("继承GenericServlet类...");//GenericServlet是HttpServlet的父类
    }
}

实现Servlet接口:

package com.xxxx.servlet;

import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;

@WebServlet("/ser03")
public class servlet03 implements Servlet {
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }

    @Override
    public ServletConfig getServletConfig() {
        return null;
    }

    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("实现Servlet接口");//GenericServlet实现了该接口
    }

    @Override
    public String getServletInfo() {
        return null;
    }

    @Override
    public void destroy() {

    }
}

标签:p1,实现,Servlet,WebServlet,HttpServlet,import,servlet,javax
From: https://www.cnblogs.com/zh-Note/p/17476278.html

相关文章

  • python 中使用zip实现矩阵转置
     001、[root@PC1test04]#lsa.txttest.py[root@PC1test04]#cata.txt##测试数据010203040506070809101112131415161718192021222324252627282930[root@PC1test04]#cattest.py##测试程序#!/usr/bin/envpython#-*......
  • Ubuntu-20.04.6-server安装MySQL实现远程连接
    Ubuntu-20.04.6-server安装MySQL,修改密码安装MySQL一、查看是否安装数据库mysql--version二、更新系统中的所有软件包和存储库sudoaptupdate三、安装Mysql最新版(我这里已经安装好了)sudoaptinstallmysql-server四、安装成功后,mysql--version查看版本五、查......
  • java实现一个接口多个实现类,并且依次调用指定方法
    接口packagecn.daenx.yhchatsdk.mytest;publicinterfaceMyInterface{/***返回-1,后面的实现类将不再执行*返回0,后面的实现类继续执行**@return*/IntegerdoSomething();}实现类实现类1packagecn.daenx.yhchatsdk.mytest;......
  • 通过python实现相机的立体匹配
    相机的立体匹配是一种通过双目相机拍摄同一场景的左、右两幅视点图像,运用立体匹配算法获取视差图,进而获取深度图的技术。这种技术可以用于三维重建、机器人视觉、虚拟现实等领域。本文将介绍如何使用Python实现相机的立体匹配。首先,我们需要安装OpenCV库。在命令行中输入以下命令:接......
  • Vue3基本功能实现
    vue3介绍#Vue3的变化#1.性能的提升 打包大小减少41%初次渲染快55%,更新渲染快133%内存减少54%#2.源码的升级 使用Proxy代替defineProperty实现响应式重写虚拟DOM的实现和Tree-Shaking#3.拥抱TypeScript Vue3可以更好的支持TypeScript......
  • Servlet
    Servlet简介:Servlet就是sun公司开发动态web的一门技术Sun在这些Api中提供一个接口叫:Servlet,如果你想开发一个Servlet程序:只需要完成两个步骤:编写一个类,实现Servlet接口把开发好的java类部署到web服务器中把实现了Servlet接口的java程序叫做:Servlet......
  • 探索后疫情时代Airbnb实现逆周期增长的四大策略
    ​01.发挥P2P优势,打造差异化的“旅居生活体验”P2P(Peer-to-Peer)是一种点对点的网络模式,即用户之间可以直接进行交流和交易,无需通过中介或第三方机构。早期Airbnb对P2P的利用仅局限在空置房间的供应上,初期目标客户定位为只追求便宜价格的沙发客,这一客户群体不要求过多的舒适的住......
  • 专注开发者体验 | GitOps 实现 Kuberentes 持续部署
    大量的企业已经将Kuberentes用于其生产环境,但面对他们正在运行的多套不同阶段的Kuberentes集群,仍然困惑于在保证业务团队敏捷性的同时,如何实现持续部署,高安全性、权限分离以及可审计。我们认为GitOps是目前比较理想的一种方法来实现基于Kuberentes集群的持续部署,且同时......
  • CH32--裸机系统实现多任务
    在ram和flash资源足够的芯片中,我们通常通过跑操作系统来实现多任务,但此方法有个弊端,那就是对ram要求高,那么对于比如003这种只有2K ram的小容量芯片可能就不太够用了。这时就需要裸机来实现多任务了,方法如下:在裸机中,通常都是在一个while循环中,通过判断相应的标志位,来按照顺序......
  • tensorflow实现花分类
    1.花数据集数据集来自kaggle官网下载。分为五类花,每类花有1000张图片。下载方式可以参考我的https://www.cnblogs.com/wancy/p/17446715.html 2.图片大小分布图训练模型之前,我们会需要先分析数据集,由于此类数据集每类花的图片数量一样,是均衡的。训练模型之前,我们......