返回顶部
首页 > 资讯 > 精选 >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://lsjlt.com/news/275904.html(转载时请注明来源链接)

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

猜你喜欢
  • java中Servlet与Tomcat的关系是什么
    这篇文章将为大家详细讲解有关java中Servlet与Tomcat的关系是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。常用的java框架有哪些1.SpringMVC,Spring Web MVC是一...
    99+
    2023-06-14
  • jdk与java的关系是什么
    jdk是什么?jdk是对java基础环境和相应开发平台标准和工具包的封装(zip)。开发平台: j2se、j2ee、j2me环境:虚拟机、运行环境jdk与java的关系JDK是整个JAVA的核心,包括了Java运行环境JRE(Java Ru...
    99+
    2017-03-25
    java入门 jdk java 关系
  • 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
  • HTML与CSS的关系是什么
    这篇文章主要介绍“HTML与CSS的关系是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“HTML与CSS的关系是什么”文章能帮助大家解决问题。CSS控制HTML...
    99+
    2024-04-02
  • bootstrap与jquery的关系是什么
    这篇文章主要介绍了bootstrap与jquery的关系是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇bootstrap与jquery的关系是什么文章都会有所收获,下面我...
    99+
    2024-04-02
  • JavaScript与dom的关系是什么
    这篇文章主要讲解了“JavaScript与dom的关系是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript与dom的关系是什么”吧! ...
    99+
    2024-04-02
  • k8s与Docker的关系是什么
    这期内容当中小编将会给大家带来有关k8s与Docker的关系是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、从虚拟化角度:图1上图是Docker容器(可用k8s管理的玩意儿)与传统虚拟化方式的不同...
    99+
    2023-06-06
  • Linux与Unix的关系是什么
    本篇文章给大家分享的是有关Linux与Unix的关系是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Unix和BSD说到Linux,我们首先要了解Unix。Unix是一种在...
    99+
    2023-06-16
  • Flex与Flash的关系是什么
    这篇文章主要介绍Flex与Flash的关系是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Flex简介Flex通常是指AdobeFlex,是最初由Macromedia公司在2004年3月发布的,基于其专有的Mac...
    99+
    2023-06-17
  • Vue与VueComponent的关系是什么
    本篇内容介绍了“Vue与VueComponent的关系是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!   ...
    99+
    2023-06-21
  • mui.init()与mui.plusReady()的关系是什么
    这篇文章将为大家详细讲解有关mui.init()与mui.plusReady()的关系是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。首先我们来看下mui.init()与mui.plus...
    99+
    2023-05-30
    mui.init mui.plusready
  • hive与hadoop的关系是什么
    Hive与Hadoop之间是一种关系,Hive是建立在Hadoop之上的数据仓库工具,它提供了一个类SQL查询语言来查询和分析大规模...
    99+
    2024-04-02
  • Oozie与Hadoop的关系是什么
    Oozie是一个用于管理和执行Hadoop作业的工作流引擎。它与Hadoop的关系是,Oozie允许用户定义复杂的工作流程,包括Ha...
    99+
    2024-04-02
  • Java socket通信与C++之间的关系是什么
    Java socket通信与C++之间的关系是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。c++builer与Java socket通信是我们在编程中经常用到的,有不少的...
    99+
    2023-06-17
  • java servlet的工作原理是什么
    Java Servlet是一种用于在服务器上处理客户端请求的Java程序。它的工作原理如下:1. 客户端发送HTTP请求到服务器。这...
    99+
    2023-09-25
    java servlet
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作