Servlet p1 Servlet的实现

这篇具有很好参考价值的文章主要介绍了Servlet p1 Servlet的实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

学习课程: 【这可能是B站讲的最好的Servlet教程,5小时打通Servlet全套教程丨2022最新版,轻松掌握servlet基础+案例实操】 https://www.bilibili.com/video/BV1Kr4y1V7ZE/?share_source=copy_web&vd_source=2c07d62293f5003c919b2df9b2e0549e

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 p1 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接口:文章来源地址https://www.toymoban.com/news/detail-480385.html

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() {

    }
}

到了这里,关于Servlet p1 Servlet的实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Servlet学习六】Cookie 与Session && 实现登录与上传文件

    目录 一、Cookie与Session(掌握) 🌈1、Cookie是什么? 🌈2、Session是什么? 二、代码功能演示 🌈1、实现登录功能(掌握) 🌈2、实现上传文件功能(掌握) 1、目标:实现程序,通过网页上传一张图片到服务器。 2、核心方法总结 问题1:为什么会有cookie?         HTTP协议

    2024年02月11日
    浏览(49)
  • JavaWeb小项目之Servlet实现用户登录(详细教程学习笔记)【IDEA工具】

    这个【Servlet实现用户登录】小项目,作为 JavaWeb小项目系列 的开篇,未来我会继续完善各个功能,直到可以真正作为一个Web项目(PS:希望这个坑可以填上,说来遗憾,现在已经大三了,人生也比较迷茫,希望可以通过考研改变自己吧。岁月蹉跎,大一学C++,大二学JavaSE的时

    2023年04月11日
    浏览(52)
  • Javaee课程lab4,学生信息管理系统(MVC(JSP+JavaBeans+Servlet)+ JDBC)

    实验目的: 1、熟悉MVC设计模式,掌握编程思路 2、综合运用JSP、Servlet、JavaBean、JDBC等技术实现MIS系统—学生信息管理系统(铁大) JDBC是Java Database Connectivity(Java数据库连接)的缩写,编程人员可以通过这个API接口连接到数据库,并使用结构化查询语言(SQL)完成对数据库的

    2024年02月09日
    浏览(45)
  • Git基础学习_p1

    Git相信大部分从事软件工作的人都听说过,甚至用过。 它是一款版本控制软件,用于管理项目迭代更新。 但大部分时候,你可能只是用过。就我个人而言,能想起来并知道其用途的,就下面几个简单命令, 还有 git remote 、 git branch 等命令会偶尔用一下,但使用时都得上网查

    2024年02月04日
    浏览(25)
  • java 课程签到管理系统Myeclipse开发mysql数据库web结构jsp编程servlet计算机网页项目

    一、源码特点     java 课程签到管理系统是一套完善的java web信息管理系统 采用serlvet+dao+bean,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。 java 课程签

    2024年02月19日
    浏览(36)
  • 【深度学习】S1 预备知识 P1 张量

    张量(Tensor)是深度学习中用于表示和处理多维数据的数据结构。张量与 Numpy 类似,但是不同的是深度学习框架专门为张量提供了丰富的操作API,包括创建张量、数据转换、数学运算、索引和切片等,使张量可以使用 GPU 加速,大大提高处理大量数据时的计算速度;同时提供

    2024年02月21日
    浏览(31)
  • 机器学习比较好的视频资源

    吴恩达,经典入门课程。 [中英字幕]吴恩达机器学习系列课程_哔哩哔哩_bilibili​ www.bilibili.com/video/BV164411b7dx?spm_id_from=333.999.0.0正在上传…重新上传取消 [双语字幕]吴恩达深度学习deeplearning.ai_哔哩哔哩_bilibili​ www.bilibili.com/video/BV1FT4y1E74V?from=searchseid=15646252865401424706spm_id_from=

    2024年02月11日
    浏览(38)
  • java web期末课程设计 学生成绩管理系统(mysql,jstl+el,Javabean)+增删改查,session域+servlet(基础易理解)

    学生成绩管理系统(源码地址在评论区需要的小伙伴可以看看,大二时做的,做得不太好) 为了更好的学习理解JavaWeb,创建了此系统。此系统可以帮助学习Java web基础,特别是javaweb入门,此系统使用大部分Java web基础知识。Java web课程设计联系了前端的HTML、CSS、JAVASCRIPT、JSP等

    2024年02月09日
    浏览(68)
  • 基于Java平面设计课程在线学习平台系统设计和实现

    博主介绍 : ✌ 全网粉丝30W+,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作 ✌ 主要内容: SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、P

    2024年02月02日
    浏览(62)
  • Vue+springboot舞蹈基础课程视频学习分享平台的实现和开发

    基于java语言设计并实现了舞蹈基础数据平台。该系统基于B/S即所谓浏览器/服务器模式,应用Springboot框架,选择MySQL作为后台数据库。系统主要包括首页、个人中心、用户管理、舞蹈类型管理、舞蹈视频管理、用户留言、管理员管理、系统管理等功能模块。 重点研究的,关键

    2024年02月07日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包