学习servlet方法,servlet的service方法

 admin   2023-05-31 05:35   16 人阅读  0 条评论

对于一些网上谈论的学习servlet方法的相关题,和以及一些servlet的service方法的话题,想必很多人都是很想知道,下来听小编解说。

学习servlet方法

5.2 Servlet

Servlet 是Java供给的一门动静web资本开发技术

5.2.1 迅速入门

需要剖析编辑一位Servlet类,并运用IDEA中Tomcat插件举行布置,最后经过浏览器会见所编辑的Servlet程-序


    导入 Servlet 依附坐标
    <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <麽!-- provided 指在编译和尝试历程这类有用,最终变成的war包时不会参加 由于Tomcat的lib纲领中曾经有servlet-api这一个jar包,假如在变成war包的时刻见效就会和Tomcat中的jar包矛盾,致使报错 --> <scope>provided</scope> </dependency>
    界说类,完成 Servlet 接口,并重写接口中一切办法,并在 service 办法中打印一句话
    import javax.servlet.*; import javax.servlet.annotation.WebServlet; import java.io.IOException; /** * @Author 晨默 * @Date 2022/8/30 21:44 */ @WebServlet(&34;) public class ServletDemo1 implements Servlet @Override public ServletConfig getServletConfig() @Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException @Override public String getServletInfo() @Override public void destroy()
    设置在 ServletDemo 类上运用 @WebServlet 说明,设置该 Servlet 的会见途径
    @WebServlet(&34;)
    会见启动Tomcat,浏览器输出 URL 位置会见该 Servlet
    http://localhost:5050/tomcat-demo-war/demo1
    会见后,在控制台就会打印 servlet hello world~呀。程序运行成-功
5.2.2 实行流程

    浏览器发-出 http://localhost:5050/tomcat-demo-war/demo1 的恳求

localhost5050 找出要会见的Tomcat Web服务器
tomcat-demo找出布置在Tomcat服务器上的tomcat-demo工作事情
demo1找出要会见的是工作事情中的哪一个Servlet类,依照@WebServlet以后的值举行婚配
找出ServletDemo1这一个类后,Tomcat Web服务器就会为ServletDemo1这一个类建立一位对-象,随后挪用对-象的service办法
service办法中有 ServletRequest 和 ServletResponse 2个参数了。
ServletRequest恳求数据;
ServletResponse呼应数据
5.2.3 生命周期1. 生命周期对-象的生命周期指一位对-象从被建立到被烧毁的全部历程2. Servlet 生命周期Servlet运转在Servlet容器(web服务器)中,其生命周期由容器来治理,分为4个阶段
加载和实例化默许情形下,当 Servlet 首次被会见时,有容器建立 Servlet 对-象
默许情形,Servlet会在首次会见被容器建立,可是假如建立Servlet对比耗时的话,那样的第一个会见的人期待的时候就对比长,用户的体验就对比差,那样的咋们能不可以把Servlet的建立放到服务器启动的时刻来建立,详细怎么样来设置? @WebServlet(urlPatterns = &34;, loaOnStartup = 1) loadOnStartup的取值有两类情形 (1)负整数首次会见时建立 Servlet 对-象 (2)0或者正整数服务器启动时建立 Servlet 对-象,数字越小优先级越高
初始化在 Servlet 实例化以后,容器将挪用 Servlet 的 init() 初始化对-象,完结一些如加载配置文件.建立联接等初始化的事情啦。该办法只挪用一次
恳求处置每次恳求Servlet时,Servlet容器都会挪用Servlet的service()办法对恳求举行处置
办事停止当须要放开内存或许容器封闭时,容器就会挪用Servlet实例的destroy()办法完结资本的放开了。在destroy()办法挪用以后,容器会放开这一个Servlet实例,该实例然后会被Java的废品收集器所回-收
Terminal命令行中,用 mvn tomcat7:run 启动tomcat后,用 Ctrl+C 封闭tomcat,便可挪用 destroy 办法
import javax.servlet.*; import javax.servlet.annotation.WebServlet; import java.io.IOException; /** * @Author 晨默 * @Date 2022/8/31 8:33 */ @WebServlet(urlPatterns = &34;, loadOnStartup = 1) public class ServletDemo2 implements Servlet @Override public ServletConfig getServletConfig() /** * 供应办事 * 1.挪用机遇:每一一次Servlet被会见时,挪用 * 2.挪用次数: 屡次 * @param servletRequest * @param servletResponse * @throws ServletException * @throws IOException */ @Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException @Override public String getServletInfo() /** * 烧毁办法 * 1.挪用机会内存放开或许服务器封闭的时刻,Servlet对-象会被烧毁,挪用 * 2.挪用次数: 1次 */ @Override public void destroy()
5.2.4 Servlet 办法推荐
获得 Servlet 信息
String getServletInfo() // 该办法用来回返 Servlet 的相干信息,没什么打印出,一样平常回返一位空字符串便可 public String getServletInfo()
获得 ServletConfig 对-象
ServletConfig getServletConfig()
5.2.5 体系结构Servlet 的体系结构
1. Servlet 简化编辑自定义Servlet承继自HttpServlet,只完成 service 办法 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; /** * @Author 晨默 * @Date 2022/8/31 9:04 */ @WebServlet(&34;) public class ServletDemo4 extends HttpServlet @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException 2. GET.POST 推断优化 —— HttpServlet类供给 protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException else else else if (method.equals(METHOD_HEAD)) else if (method.equals(METHOD_POST)) else if (method.equals(METHOD_PUT)) else if (method.equals(METHOD_DELETE)) else if (method.equals(METHOD_OPTIONS)) else if (method.equals(METHOD_TRACE)) else 5.2.6 urlPattern 设置Servlet类编辑好后,要想被会见到,就须要设置其会见途径(urlPattern)
一位Servlet能够设置多个urlPattern
如@WebServlet(urlPatterns = )
localhost:8080/demo71,localhost:8080/demo1`这2个位置都能会见到
urlPattern设置策划
假如途径设置的不-是扩展名,那样的在途径的前边就必需要加/,不然会报错
假如途径设置的是*.do,那样的在*.do的前边不可以加/,不然会报错
准确婚配


纲领婚配


会见途径localhost:8080/user/随意
思索:
谜底是: 能.能.demo8,进而咋们能够获得的结果是/user/*中的/*代表的是零或者多个层级会见大纲,同时间准确婚配优先级要高于大纲婚配呢。
扩展名婚配

注重
随意婚配


注重:/和/*的区分?
当咋们的工作事情中的Servlet设置了 &34;,会笼罩掉tomcat中的DefaultServlet,当其余的url-pattern都婚配不上时都会走这一个Servlet
当咋们的工作事情中设置了&34;,意味着婚配随意会见途径
DefaultServlet是用来处置静態资本,假如设置了&34;会把默许的笼罩掉,就会引起恳求静態资本的时刻有无走默许的而是走了自定义的Servlet类,最后致使静態资本不可以被会见
会见途径http://localhost:8080/web-demo/user是不是能会见到demo9的doGet办法?
会见途径http://localhost:8080/web-demo/user/a/b是不是能会见到demo9的doGet办法?
会见途径http://localhost:8080/web-demo/user/select能否能会见到demo9仍然demo8的doGet办法?
5.2.7 XML设置前边对应Servlet的设置,咋们都运用的是@WebServlet,这一个是Servlet从3.0版本后最先支撑说明设置,3.0版本前只支撑XML配置文件的设置办法呀。关于XML的设置措施有两步:
编辑Servlet类
在web.<?

servlet的service方法

Servlet生命周期表现Servlet从发生到扑灭的历程,总共分为四个阶段分-别是初始化阶段,呼应客户恳求阶段,停止阶段和废品回-收阶段Servlet生命周期就是指Servlet从发生到扑灭的全部历程,接下来将在短文中为我们一五一十推荐这一个历程,拥有肯定的依照效果,盼望对我们有所帮-助呢。

Servlet生命周期

Servlet程-序时运转在服务器端的java程-序,生命周期收到web容器的掌控啦。在Servlet发生到灭亡的历程中总共分为如下四个阶段

(1)构造方法该办法只在建立servlet对-象时挪用而且只挪用1次拉。目标在于证实servlet对-象在tomcat服务器中是单实例的

(2)init办法在初始化阶段运用,即在建立完servlet对-象后就挪用,且只挪用1次呢。

(3)service办法在呼应客户恳求阶段运用,即每次恳求servlet时挪用,挪用n次拉。

(4)destroy办法停止阶段挪用,即在servlet对-象烧毁时挪用啦。只挪用1次了。tomcat服务器截至或者web运用重新部署时挪用

初始化阶段

init办法是在Servlet实例化以后挪用init()办法,在全部servlet生命周期中,init()办法只履行一次拉。初始化阶段包罗建设数据库联接,读取源文件信息等,假如初始化阶段失利,则Servlet将被直-接卸载(注重,不-是直-接烧毁,而是直-接卸载)呢。

呼应客户恳求阶段

当有恳求提交时,servlet挪用service()办法举行处置啦。service() 办法是 Servlet 的焦点,该办法能够屡次挪用,每次都是建立一位线程举行挪用呀。关于service办法,一样平常不须要重写,由于在HttpServlet中完成,它会依照恳求的方法,挪用doGet/doPost也就是说service是用来转向的,因此咋们一样平常写一位servlet,只须要重写doGet或许doPost就能够了了。

停止阶段

当WEB容器封闭或者检测到一位Servlet要从容器中被删除时,会主动挪用destory()办法,放开实例所占用的资本拉。注重destory()办法只能挪用一次啦。一般情形下Servlet容器截至,重新启动都会引发烧毁Servlet对-象的动-作,重新部署工作事情也会引发Servlet对-象的烧毁同时间会挪用destroy办法拉。

废品回-收

在烧毁后,该实例将期待被废品收集器回-收,如在被回-收前再次运用此servlet,会从头用init()办法初始化

总结以上便是本篇短文的全部内容了,期望对我们有所帮-助了。

本篇讲解关于学习servlet方法的话题,和一些servlet的service方法相关题,希望帮帮助到大家。

本文地址:http://wangweitian.com/post/30482.html
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?