iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >java中Servlet与Tomcat的关系是什么
  • 564
分享到

java中Servlet与Tomcat的关系是什么

2023-06-14 23:06:35 564人浏览 安东尼
摘要

这篇文章将为大家详细讲解有关java中Servlet与Tomcat的关系是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。常用的java框架有哪些1.springMVC,spring WEB mvc是一

这篇文章将为大家详细讲解有关java中Servlet与Tomcat的关系是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

常用的java框架有哪些

1.springMVCspring WEB mvc是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架。2.shiro,Apache Shiro是Java的一个安全框架。3.mybatis,MyBatis 是支持普通 sql查询,存储过程和高级映射的优秀持久层框架。4.dubbo,Dubbo是一个分布式服务框架。5.Maven,Maven是个项目管理和构建自动化工具。6.RabbitMQ,RabbitMQ是用Erlang实现的一个高并发高可靠AMQP消息队列服务器。7.Ehcache,EhCache 是一个纯Java的进程内缓存框架。

一、Servlet与Tomcat的关系

(1)Tomcat是什么?

Tomcat其实是Web服务器和Servlet容器的结合体

(2)什么是Web服务器?

比如,我当前在杭州,你能否用自己的电脑访问我桌面上的一张图片?恐怕不行,我们太习惯通过URL访问的一个网站、下载一部电影了。一个资源,如果没有URL映射,那么外界几乎很难访问,而Web服务器的作用说穿了就是:将某个主机上的资源映射为一个URL供外界访问

二、什么是Servlet

(1)什么是Servlet容器?

Servlet是运行在Web服务器或应用服务器上的程序。

Servlet容器,顾名思义里面存着Servlet对象,我们为什么能够通过Web服务器映射的URL访问资源?肯定需要写程序处理请求,主要3个过程:接受请求,处理请求,响应请求。

三、Servlet的类结构

java中Servlet与Tomcat的关系是什么

通过继承httpservlet实现Servlet接口

一般在实际项目开发中,都是使用继承HttpServlet类的方式去实现Servlet程序

(1)编写一个类去继承HttpServlet类

(2)根据业务需要重写doGet或doPost方法

(3)到web.xml中的配置servlet程序的访问地址

四、ServletConfig类

ServletConfig代表的是当前Servlet在web.xml中的配置信息

 String getServletName(); ---获取当前Servlet在web.xml中配置的名字     ServletContext getServletContext();---获取当前Servlet指定名称的初始化参数的值     String getInitParameter(String var1);---获取当前Servlet所有初始化参数的名字组成的枚举     Enumeration<String> getInitParameterNames();---获取代表当前web应用的ServletContext对象

(1)作用:

可以获取Servlet程序的别名Servlet-name的值

获取初始化参数init-param

获取ServletContext对象

 @Override    public void init(ServletConfig servletConfig) throws ServletException {//        1、可以获取Servlet程序的别名Servlet-name的值        System.out.println(servletConfig.getServletName());//        2、获取初始化参数init-param        System.out.println(servletConfig.getInitParameter("username"));//        3、获取ServletContext对象        System.out.println(servletConfig.getServletContext());        System.out.println("2、执行初始化方法");    }

五、ServletContext类

(1)什么是ServletContext?

ServletContext是一个接口,它表示Servlet上下文对象。

一个Web工程,只有一个ServletContext对象实例。

ServletContext是一个域对象。

ServletContext是在web工程部署启动的时候创建,在web工程停止的时候销毁。

什么是域对象?

域对象,是可以像Map一样存取数据的对象,叫域对象。

这里的域指的是存取数据的操作范围,整个web工程。

存数据 取数据 删除数据

Map put() get() remove()

域对象 setAttribute() getAttribute() removeAttribute()

(2) ServletContext类的四个作用

获取web.xml中配置的上下文参数context-param

public class ContextServlet extends HttpServlet {    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {     }     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    //1、 获取web.xml中配置上下文参数context-param        ServletContext servletContext = getServletConfig().getServletContext();        String username = servletContext.getInitParameter("username");        System.out.println("context-param参数的username"+username);     }}

在web.xml中

<!--    context-param 是上下文参数(它是属于整个web工程)-->    <context-param>        <param-name>username</param-name>        <param-value>context</param-value>    </context-param>

获取当前的工程路径,格式:/工程路径

获取工程部署后在服务器硬盘上的绝对路径

(3)ServletContext像map一样存取数据

public class ContextServlet1 extends HttpServlet {    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {     }     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        //获取ServletContext对象        ServletContext context = getServletContext();        System.out.println("保存之前:Context1 获取key1的值是:"+context.getAttribute("key1"));        context.setAttribute("key1","value1");        System.out.println("Context1中获取域数据key1的值是:"+context.getAttribute("key1"));     }}
保存之前:Context1 获取key1的值是:nullContext1中获取域数据key1的值是:value1Context2中获取域数据key1的值是:value1

六、Servlet的生命周期

public class HelloServlet implements Servlet {    public HelloServlet() {        System.out.println("1、执行构造器方法");    }     @Override    public void init(ServletConfig servletConfig) throws ServletException {        System.out.println("2、执行初始化方法");    }     @Override    public ServletConfig getServletConfig() {        return null;    }     //service方法是专门用来处理请求和响应的    @Override    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {        System.out.println("3、hello servlet 被访问了");    }     @Override    public String getServletInfo() {        return null;    }     @Override    public void destroy() {        System.out.println(" 4、执行销毁方法");    }}

执行的结果


1、执行构造器方法
2、执行初始化方法
3、hello servlet 被访问了
3、hello servlet 被访问了
3、hello servlet 被访问了
3、hello servlet 被访问了
3、hello servlet 被访问了
3、hello servlet 被访问了
3、hello servlet 被访问了
3、hello servlet 被访问了
3、hello servlet 被访问了
G:\softWareInstall\apache-tomcat-9.0.45\bin\catalina.bat stop
Using CATALINA_BASE:   "C:\Users\Administrator\AppData\Local\JetBrains\IntelliJidea2020.1\tomcat\Unnamed_Servlet"
Using CATALINA_HOME:   "G:\softWareInstall\apache-tomcat-9.0.45"
Using CATALINA_TMPDIR: "G:\softWareInstall\apache-tomcat-9.0.45\temp"
Using JRE_HOME:        "C:\Program Files\Java\jdk1.8.0_60"
Using CLASSPATH:       "G:\softWareInstall\apache-tomcat-9.0.45\bin\bootstrap.jar;G:\softWareInstall\apache-tomcat-9.0.45\bin\tomcat-juli.jar"
Using CATALINA_OPTS:   ""
03-May-2021 14:33:11.909 淇℃伅 [main] org.apache.catalina.core.StandardServer.await 閫氳繃鍏抽棴绔彛鎺ユ敹鍒版湁鏁堢殑鍏抽棴鍛戒护銆傛鍦ㄥ仠姝㈡湇鍔″櫒瀹炰緥銆�
03-May-2021 14:33:11.909 淇℃伅 [main] org.apache.coyote.AbstractProtocol.pause 鏆傚仠ProtocolHandler["http-NIO-8080"]
03-May-2021 14:33:12.289 淇℃伅 [main] org.apache.catalina.core.StandardService.stopInternal 姝e湪鍋滄鏈嶅姟[Catalina]
 4、执行销毁方法

(1)执行Servlet构造器方法 (2) 执行init初始化方法

第一、二步,是在第一次访问的时候创建Servlet程序会调用

(3)执行 Service方法

第三步、每次访问都会调用

(4)执行destroy销毁方法

在web工程停止的时候调用

七、Get、Post

get、post请求都会走Service方法,那么怎么区分get、post请求

//service方法是专门用来处理请求和响应的    @Override    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {        System.out.println("3、hello servlet 被访问了");        HttpServletRequest httpServletRequest=(HttpServletRequest)servletRequest;        String method = httpServletRequest.getMethod();        if ("Get".equals(method)){                    }        if ("POST".equals(method)){                    }    }

关于“java中Servlet与Tomcat的关系是什么”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: java中Servlet与Tomcat的关系是什么

本文链接: https://www.lsjlt.com/news/275904.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java中Servlet与Tomcat的关系是什么
    这篇文章将为大家详细讲解有关java中Servlet与Tomcat的关系是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。常用的java框架有哪些1.SpringMVC,Spring Web MVC是一...
    99+
    2023-06-14
  • Java与HTML的关系是什么
    这篇文章主要为大家分析了Java与HTML的关系是什么的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Java与HTML的关系是什么”的知识吧。在继续讲解前,...
    99+
    2023-06-03
  • tomcat与apache的区别与联系是什么
    Tomcat和Apache是两个不同的软件,但也可以配合使用。1. Tomcat是一个独立的Web应用服务器,它专门用于运行Java...
    99+
    2023-09-21
    Tomcat apache
  • Java中接口与对象数组的关系是什么?
    在Java中,接口是一种特殊的抽象类,它定义了一组方法的签名,但没有实现。接口的作用是为了实现类提供一种规范,即实现类必须实现接口中的所有方法。在Java中,我们可以通过创建对象数组来存储一组对象,而接口在这个过程中起到了关键作用。 首先...
    99+
    2023-11-09
    接口 对象 数组
  • servlet/filter/listener/interceptor区别与联系是什么
    本篇内容介绍了“servlet/filter/listener/interceptor区别与联系是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这...
    99+
    2024-04-02
  • Java Servlet是什么意思
    这篇文章给大家分享的是有关Java Servlet是什么意思的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Servlet 是什么?Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来...
    99+
    2023-06-02
  • java中基本数据类型与Object的关系是什么
    这篇文章给大家分享的是有关java中基本数据类型与Object的关系是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。基本数据类型与Object的关系我知道大家是不是都听说过Object是所有类型的基类,但是这...
    99+
    2023-06-29
  • Linux与Unix的关系是什么
    本篇文章给大家分享的是有关Linux与Unix的关系是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Unix和BSD说到Linux,我们首先要了解Unix。Unix是一种在...
    99+
    2023-06-16
  • hive与hadoop的关系是什么
    Hive与Hadoop之间是一种关系,Hive是建立在Hadoop之上的数据仓库工具,它提供了一个类SQL查询语言来查询和分析大规模...
    99+
    2024-04-02
  • k8s与Docker的关系是什么
    这期内容当中小编将会给大家带来有关k8s与Docker的关系是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、从虚拟化角度:图1上图是Docker容器(可用k8s管理的玩意儿)与传统虚拟化方式的不同...
    99+
    2023-06-06
  • Flex与Flash的关系是什么
    这篇文章主要介绍Flex与Flash的关系是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Flex简介Flex通常是指AdobeFlex,是最初由Macromedia公司在2004年3月发布的,基于其专有的Mac...
    99+
    2023-06-17
  • Oozie与Hadoop的关系是什么
    Oozie是一个用于管理和执行Hadoop作业的工作流引擎。它与Hadoop的关系是,Oozie允许用户定义复杂的工作流程,包括Ha...
    99+
    2024-04-02
  • mui.init()与mui.plusReady()的关系是什么
    这篇文章将为大家详细讲解有关mui.init()与mui.plusReady()的关系是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。首先我们来看下mui.init()与mui.plus...
    99+
    2023-05-30
    mui.init mui.plusready
  • JavaScript与dom的关系是什么
    这篇文章主要讲解了“JavaScript与dom的关系是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript与dom的关系是什么”吧! ...
    99+
    2024-04-02
  • HTML与CSS的关系是什么
    这篇文章主要介绍“HTML与CSS的关系是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“HTML与CSS的关系是什么”文章能帮助大家解决问题。CSS控制HTML...
    99+
    2024-04-02
  • bootstrap与jquery的关系是什么
    这篇文章主要介绍了bootstrap与jquery的关系是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇bootstrap与jquery的关系是什么文章都会有所收获,下面我...
    99+
    2024-04-02
  • Vue与VueComponent的关系是什么
    本篇内容介绍了“Vue与VueComponent的关系是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!   ...
    99+
    2023-06-21
  • Java socket通信与C++之间的关系是什么
    Java socket通信与C++之间的关系是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。c++builer与Java socket通信是我们在编程中经常用到的,有不少的...
    99+
    2023-06-17
  • Java中的进程与线程有什么关系
    本篇文章给大家分享的是有关Java中的进程与线程有什么关系,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。进程与线程,本质意义上说, 是操作系统的调度单位,可以看成是一种操作系统...
    99+
    2023-05-31
    java 进程 线程
  • 什么是Composer,它与PHP的关系是什么?
    随着现代 Web 开发技术的迅速发展,依赖管理成为了一个越来越重要的议题。无论是前端还是后端开发,我们需要引入各种各样的库和框架来达到更高的开发效率和更好的应用性能。而这些库和框架的组织、版本控制和安装管理问题则成为了一个值得思考和解决的难...
    99+
    2023-05-14
    PHP 依赖管理 Composer
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作