精华内容
下载资源
问答
  • servlet深入了解
    2016-08-09 13:45:03

    参考博客:http://blog.csdn.net/cike110120/article/details/8266959


    主要还是要阅读上面博客的内容,下面只是从上面加了点理解

    servlet容器处理请求的过程

    首先我们将这个过程中的程序对象类比到生活

    servlet容器:我们的工厂
    servlet:工厂中的一款机器
    servlet线程:servlet这台机器所处的流水线
    调用servlet的方法:点击某些开关
    参数:燃料,具体材料


    1)用户点击一个链接,指向了一个servlet而不是一个静态页面。这里可以看下面web技术)
    2)容器“看出”这个请求是一个Servlet,所以它创建了两个对象HttpServletRequest和HttpServletResponse。
    3)容器根据请求中的URL找到正确的Servlet,为这个请求创建或分配一个线程,并把请求和响应对象传递给这个Servlet线程。
    4)容器调用Servlet的service()方法。根据请求的不同类型,service()方法会调用doGet()或doPost()方法。这里假设调用doGet()方法。
    5)doGet()方法生成动态页面,并把这个页面“塞到”响应对象里,需要注意的是,容器还有响应对象的一个引用!
    6)线程结束,容器把响应对象转换为一个HTTP响应,并把它发回给客户,然后删除请求和响应对象。


    容器作用是什么?
    负责管理这个工厂里面的各种机器,因为客户发起请求时,谁来确认使用什么机器呢,翻译客户的语言,表达(外国客户)、调用机器的什么开关呢?做这些事情就是我们工厂(也就是servlet容器),所以说servlet容器的作用就是解耦servlet和用户、外界,使servlet专注于完成自己的工作。

    Web技术

    随着互联网技术的发展,基于HTTP和HTML的web应用急速增长。早期的web应用主要用于浏览新闻等静态页面,用户通过HTTP协议请求服务器上的静态页面,服务器上的web服务器软件接收到请求后,读取URI标示的资源,再加上消息报头发送给客户端浏览器,浏览器负责解析HTML,将结果呈现出来。

    然而随着时间发展,用户已经不满足于仅浏览静态页面。用户需要一些交互操作,获取一些动态结果。如果基于HTTP协议实现服务器端软件增强功能太过复杂,所以需要一些扩展机制来实现用户想要的功能。早期使用的Web服务器扩展机制是CGI(Common Gateway Interface,公共网关接口)。使用这种方法,用户单击某个链接或输入网址来访问CGI程序,web服务器收到请求后,运行该CGI程序,对用户请求进行处理,紧接着将处理结果并产生一个响应,该响应被返回给web服务器,web服务器对响应进行包装,以HTTP响应的方式返回给浏览器。

    CGI程序在一定程度上解决了用户需求。不过还存在一些不足之处,如CGI程序编写困难,响应时间较长,以进程方式运行导致性能受限。于是1997年,sun公司推出了Servlet技术,作为Java阵营的CGI解决方案。



    更多相关内容
  • servlet 深入了解

    2019-05-18 11:09:00
    简单来说,客户端发送请求,传递到servlet容器,而servlet将数据转换成服务器端可以处理的数据再发送给服务器端,再数据处理之后,再传递到servlet容器,servlet再转译到客户端,完成了一次客户端和服务器端的信息...

    servlet  作用

    在Java web b/s架构中,servlet扮演了重要的角色,作为一个中转处理的容器,他连接了客户端和服务器端的信息交互和处理。简单来说,客户端发送请求,传递到servlet容器,而servlet将数据转换成服务器端可以处理的数据再发送给服务器端,再数据处理之后,再传递到servlet容器,servlet再转译到客户端,完成了一次客户端和服务器端的信息交互。

    首先我们要理清一个逻辑:浏览器http请求------》tomcat服务器-------》到达servlet-----》执行doget,dopost方法----》返回数据

            从这个逻辑可以看出tomcat才是和客户端打交道的:

                   他监听了端口,请求过来后,根据url信息和web.xml配置文件匹配,确定要将请求交给哪个servlet去处理,servlet处理请求然后返回给tomcat,tomcat在把数据返回给用户。

     

    servlet  的实例化

    如果没有设置loadOnStartup,则第一次请求的时候实例化

    分三种情况:
    loadOnStartup < 0 
    即负数的情况下,web容器启动的时候不做实例化处理,servlet首次被调用时做实例化
    这种情况和没有设置loadOnStartup是一样的。
    loadOnStartup > 0
    web容器启动的时候做实例化处理,顺序是由小到大,正整数小的先被实例化
    loadOnStartup = 0
    web容器启动的时候做实例化处理,相当于是最大整数,因此web容器启动时,最后被实例化

     

    servlet实例化 解惑

    本来一直以为 servlet是在容器启动的时候就实例化的,可是后来仔细想过,如果有1千个servlet,那服务器启动的时候就要实例化一千个类,那就是要在内存(堆中)中创建一千个对象,一次创建这么多对象,对于内存(堆中)而言负载量相当的大,有可能就会出现《内存溢出》的异常,所以后来想想,应该是在请求的时候才去实例化的吧,这样的话,对于容器而言不用启动的时候就加载那么多东西,感觉这就是请求时才加载的根本原因吧,纯属个人见解,希望各位有不同见解的提出来,大家一起讨论。

     

    servlet 销毁 解惑

    jdk api 的定义

    destroy方法在容器移除servlet 时执行,同样只执行一次。这个方法会在所有的线程的service()方法执行完成或者超时后执行,调用这个方法后,容器不会再调用这个servlet的方法,也就是说容器不再把请求发送给这个servlet。这个方法给servlet释放占用的资源的机会,通常用来执行一些清理任务

     

    Servlet容器停止或者重新启动:Servlet容器调用Servlet对象的destroy方法来释放资源

     

    引用1            以下是jt   198952 在csdn上的原帖

     http://blog.csdn.net/jt198952/article/details/5656130

     

    大多数程序员都知道Servlet的生命周期,简单的概括这就分为四步:servlet类加载--->实例化--->服务--->销毁。对这个过程只是肤浅了解下,对于servlet何时被销毁,还是不太情楚。下面我们描述一下Tomcat与Servlet是如何工作的,首先看下面的时序图.

     

    1、Web Client 向Servlet容器(Tomcat)发出Http请求

    2、Servlet容器接收Web Client的请求

    3、Servlet容器创建一个HttpRequest对象,将Web Client请求的信息封装到这个对象中

    4、Servlet容器创建一个HttpResponse对象

    5、Servlet容器调用HttpServlet对象的service方法,把HttpRequest对象与HttpResponse对象作为参数传给 HttpServlet对象

    6、HttpServlet调用HttpRequest对象的有关方法,获取Http请求信息

    7、HttpServlet调用HttpResponse对象的有关方法,生成响应数据

    8、Servlet容器把HttpServlet的响应结果传给Web Client

     

    对于Servlet容器(Tomcat)与HttpServlet是怎样进行交互的呢,看下类图

    Servlet的框架是由两个Java包组成的:javax.servlet与javax.servlet.http。在javax.servlet包中定义了所有的Servlet类都必须实现或者扩展的通用接口和类。在javax.servlet.http包中定义了采用Http协议通信的HttpServlet类。Servlet的框架的核心是javax.servlet.Servlet接口,所有的Servlet都必须实现这个接口。

     

    在Servlet接口中定义了5个方法,

    其中3个方法代表了Servlet的生命周期:

    1、init方法:负责初始化Servlet对象。

    2、service方法:负责响应客户的请求。

    3、destroy方法:当Servlet对象退出生命周期时,负责释放占用的资源。

     

    一、创建Servlet对象的时机

    1、Servlet容器启动时:读取web.xml配置文件中的信息,构造指定的Servlet对象,创建ServletConfig对象,同时将ServletConfig对象作为参数来调用Servlet对象的init方法。

    2、在Servlet容器启动后:客户首次向Servlet发出请求,Servlet容器会判断内存中是否存在指定的Servlet对象,如果没有则创建它,然后根据客户的请求创建HttpRequest、 HttpResponse对象,从而调用Servlet对象的service方法。

    3、Servlet的类文件被更新后,重新创建ServletServlet容器在启动时自动创建Servlet,这是由在web.xml文件中为Servlet设置的<load-on-startup>属性决定

    的。从中我们也能看到同一个类型的Servlet对象在Servlet容器中以单例的形式存在。

     

    二、销毁Servlet对象的时机

    1、Servlet容器停止或者重新启动:Servlet容器调用Servlet对象的destroy方法来释放资源。以上所讲的就是Servlet对象的生命周期。那么Servlet容器如何知道创建哪一个Servlet对象?

    Servlet对象如何配置?实际上这些信息是通过读取web.xml配置文件来实现的。

    我们来看一下web.xml文件中的Servlet对象的配置节信息

    -------------------------------------------

    <servlet>

    <servlet-name>action<servlet-name>

    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

    <init-param>

    <param-name>config</param-name>

    <param-value>/WEB-INF/struts-config.xml</param-value>

    </init-param>

    <init-param>

    <param-name>detail</param-name>

    <param-value>2</param-value>

    </init-param>

    <init-param>

    <param-name>debug</param-name>

    <param-value>2</param-value>

    </init-param>

    <load-on-startup>2</load-on-startup>

    </servlet>

     

    <servlet-mapping>

    <servlet-name>action</servlet-name>

    <url-pattern>*.do</url-pattern>

    </servlet-mapping>

     

    --------------------------------------------

     

    下面对上面的配置节信息进行解析

    servlet-name:Servlet对象的名称

    servlet-class:创建Servlet对象所要调用的类

    param-name:参数名称

    param-value:参数值

    load-on-startup:Servlet容器启动时加载Servlet对象的顺序

    servlet-mapping/servlet-name:要与servlet中的servlet-name配置节内容对应

    url-pattern:客户访问的Servlet的相对URL路径

     

    个人理解:

    前提:我们之前创建的servlet 实例狭义的来说就是一个接口的实现类,广义的来说就是。。。。。

         servlet 容器有很多,之前我们接触tomcat 里面的context 容器实质上就是一个servlet 容器

    servlet 容器是工作流程:

                1.  读取配置文件web.xml 文件(这个文件里面还有其他部分的配置信息)中的servlet的配置信息 

    ------》 2.  根据 servlet 的配置信息添加到 servlet 容器中配置文件中  (具体放在哪个文件中,不清楚),即将servlet的类和url请求关系存入, 以备后面http请求来之后的对应查找

    -------》3. 当http请求来, servlet 容器会创建httprequest 对象, 将webclient 的请求信息封装在对象中

    -------》4. servlet 容器创建httpresponse 对象,用于将服务器处理后的结果封装在这个对象之中,然后返回到客户端

    -------》5. servlet 容器判断处理当前请求的servlet 实例是否被创建,如果没有创建则创建对应实例

    -------》6. servlet 容器调用 servlet实体类的service()方法,并将httprequest, httpresponse 对象作为传递参数

    --------》7. servlet对象 根据httprequest 对象获取http请求信息

    --------》 8. servlet对象 根据httpresponse 对象,生成响应信息

    --------》 9. servlet 容器将servlet 对象生成的响应信息返回到web client

      

     

     

           

     

    转载于:https://www.cnblogs.com/helloqiufei/p/10885029.html

    展开全文
  • Servlet入门 Servlet线程特性:实例化一次,多线程运行 请求和响应接口 Servlet API中 javax.servlet.ServletRequest[接口]<-javax.servlet.http.HttpServletRequest javax.servlet.ServletResponse[接口]&...

    Servlet入门

    • Servlet线程特性:实例化一次,多线程运行

    • 请求和响应接口 Servlet API中

      • javax.servlet.ServletRequest[接口]<-javax.servlet.http.HttpServletRequest
      • javax.servlet.ServletResponse[接口]<-javax.servlet.http.HttpServletResponse
    • 利用Servlet对客户端不同方式请求做出动态响应

      • 3种方式访问服务端
        • 直接从地址栏输入URL访问
        • 网页中点击链接访问
        • 网页中通过表单提交访问
          • ajax也算是一种访问方式,但注意不能请求跳转页面。
          • 补充:后面的axios也算是一种访问方式。
    • Servlet获取普通请求的参数

      • 向Servlet传递请求参数的方式
        • URL:添加 ?name1=value1&name2=value2
        • 表单提交:表单元素name为参数 value值为参数值
          • 补充:表单提交包括隐藏域的提交
          • ajax方式提交请求参数/axios方式提交请求参数
      • Servlet中获取请求参数的方式:
        • 请求接口中提供与获取请求参数相关的方法
          • getParameter(name) 返回指定名字的请求参数的值,String型
          • getParameterMap() 将所有请求参数的name和value值作为键值对返回,存储在Map对象中
          • getParameterNames() 返回所有请求参数的名字,存在集合对象中
          • getParameterValues(name) 返回指定名字的请求参数值,String[],适用一个名字对应多个值的情况
    • Servlet初始化参数 见前章 只在当前Servlet中使用

      • 补充:可通过servletconfig接口来获取到初始化参数的相关信息。

        doPost()/doGet()中:
        getInitParameter("name");//获取指定name的初始化参数值
        
    • 全局参数 context-param 所有Servlet中都能使用

      位置:web.xml的根节点中
      <context-param>
      	<param-name>props</param-name>
      	<param-value>hello</param-value>
      </context-param>
      访问方式:
      doPost()/doGet()方法中:
      //先获取到ServletContext上下文对象
      ServletContext context = this.getServletContext();
      //调用该上下文对象的该方法
      context.getInitParameter("props");//hello
      
    • Servlet加载启动选项 见前章

    • Servlet配置中通配符用法

      两种方式
      位置:servlet-mapping中
      <url-pattern>*.action</url-pattern>
      <url-pattern>/admin/*</url-pattern>
      注意:这里不能同时使用通配符和后缀 比如 /admin/*.do
      
    • web.xml首页及错误页面等其他配置信息

      位置:web.xml根目录
      配置默认首页:当不指定具体访问路径时,默认访问默认首页
      <welcom-file-list>//按顺序访问,都不存在报404错误
        	<welcome-file>index.html</welcome-file>
        	<welcome-file>index.htm</welcome-file>
        	<welcome-file>default.htm</welcome-file>
        	<welcome-file>default.jsp</welcome-file>
      </welcom-file-list>
      位置:web.xml根目录
      配置错误页面:当应用中出现响应错误或异常时,可以跳转到错误页面
      <error-page>//出现404错误,自动跳转到404.html
      	<error-code>404</error-code>
        	<location>/404.html</location>
      </error-page>
      <error-page>
      	<exception-type>java.lang.NullPointerException</exception-type>
        	<location>/exception.html</location>
      </error-page>
      
    • Servlet获取请求头属性方法—Request的相关方法

      客户端请求服务端Servlet时,会传递给服务器一系列的HTTP请求头属性,请求接口中定义了系列方法获取请求属性。

      • getHeader(String name) 返回某个请求头属性的值,返回String
      • getHeaders(String name) 返回指定名字的请求头属性的值,适用一个名字对应多个值得情况
      • getIntHeader(String name) 返回类型为Int类型的请求头属性值
      • getDateHeader(String name) 返回日期类型的请求头属性 ,返回long
      • getHeaderNames() 返回所有请求头属性的名字
    • 重要的请求头属性(请求长度、请求MIME类型、请求refer等)

      Content-Length:   请求长度   request.getIntHeader("")
      Accept:    MIME类型		  request.getHeader("")
      Referer:    来路路径		request.getHeader("")
      
    • 路径问题

      • 服务器根目录:服务器IP+":port";
      • 上下文根目录:服务器IP+":port"+工程部署后根目录(通常为项目名称);
        • 注意:每一个容器的根目录和上下文目录可能不一样。例框架和tomcat的容器。
        • 比如Dynamic Web Project 下的WebContent就被Tomcat视为上下文根目录
        • 所以每个容器注意看自己容器的上下文目录
      • 有无"/":类比sturts2,有"/"表示从Action容器根目录开始寻找(也就是上下文根目录),如果无则最好给出访问资源的绝对路径。–这里不是很清晰,可以略过。
      • 超链接是在servlet容器内进行(即服务器根目录)。所以struts2中最好给出绝对路径来访问资源。但是Springmvc中,似乎不用也是可以的。
    • 路径问题

      • 相对路径:

        默认,相对于当前网络路径的上一级目录,等效于./

        http://172.18.20.2:8080/serveletdemo/b        img/aaa.jpg   =>  http://172.18.20.2:8080/serveletdemo/img/aaa.jpg
        
        http://172.18.20.2:8080/serveletdemo/b/c      img/aaa.jpg   =>       http://172.18.20.2:8080/serveletdemo/b/img/aaa.jpg
        
        ../ 查找上一级目录
        
        http://172.18.20.2:8080/serveletdemo/b/c     ../img/aaa.jpg    =>    http://172.18.20.2:8080/serveletdemo/img/aaa.jpg 
        

        base标签 --解决了相对路径的问题

        指定了相对路径的根路径,

        http://172.18.20.2:8080/serveletdemo/b/c/e/d/f img/aaa.jpg => http://172.18.20.2:8080/serveletdemo/img/aaa.jpg

        绝对路径:相对于根路径

        ​ /img/aaa.jpg => http://172.18.20.2:8080/img/aaa.jpg

    • 补充 :路径问题

      • HTML下

        • 使用场景

          • from action
          • a链接 href
          • 图片
        • 路径

          //下面是jsp在默认WebContent下时
          <!--相对路径 默认于相对于当前路径的上一级目录-->
          <a href="login.jsp"> </a>   --->上下文目录      localhost:8080/jspdemo/login.jsp    通过<base>标签矫正相对路径为当前上下文路径    
          <base href="<%= application.getContextPah() %>">
          <!--绝对路径--><a href="/login.jsp"></a>   ---->服务器根目录   localhost:8080/login.jsp//例:如果该jsp在/product/h
          <!--相对路径 --><a href="login.jsp"> </a> ----相对的是当前路径的上一级    			localhost:8080/jspdemo/product/login.jsp
          <!--绝对路径-->
          <a href="/login.jsp"></a> ---服务器根路径  localhost:8080/login.jsp
          
      • Servlet中

        • 使用场景
          • 请求转发
          • 响应重定向
        • servlet 命名为/a/b
         //请求转发下
         绝对路径   ("/a/b")  ----相对于上下文根目录  localhost:8080/jspdemo/a/b
         相对路径    ("a/b")   ----相对于上一层路径   localhost:8080/jspdemo/a/a/b
        
         总结:servlet命名+/   url也+/ 
         //响应重定向---这个则是与HTML下相同
         绝对路径    ("/a/b")  ---服务器路径    localhost:8080/a/b
         相对路径    ("a/b")   ---相对于上一层路径  localhost:8080/a/a/b
        

    展开全文
  • 通俗解释一下:就是我们开发人员所编写的一个类,必须直接或者间接实现这个javaEE的核心规范,也就是实现Servlet接口,因为这种类产生的对象可以被浏览器访问到,因此称之为Servlet,并且javaEE中规定了只有Servlet的...
  • 深入理解Servlet

    2021-05-11 18:37:28
    在学习Servlet中,自己也遇到很多坑,后来在乐字节公开课上学到了很多,为了跟广大朋友互勉,小编整理了几点以供参考,有表述不精确的欢迎指正。 1、Servlet : 用java语言编写的动态资源开发技术。 2、Servlet 特点...

    前言
    在学习Servlet中,自己也遇到很多坑,后来在乐字节公开课上学到了很多,为了跟广大朋友互勉,小编整理了几点以供参考,有表述不精确的欢迎指正。

    1、Servlet : 用java语言编写的动态资源开发技术。

    2、Servlet 特点:

    1)普通的java类,继承HttpServlet类,覆盖doGet、doPost等方法。

    2)Servlet类只能交给tomcat服务器运行。

    3、怎样使用Eclipse开发Servlet?

    1)编写一个servlet类,继承HttpServlet

    2)配置web.xml文件

    3)访问 http://localhost:8080/FirstServlet/Servlet

    4、在web.xml中配置 和的作用?

    servlet容器对url的匹配过程:

    当一个请求发送到servlet容器的时候,容器先会将请求的url减去当前应用上下文的路径作为servlet的映射url,比如我访问的是http://localhost:8080/FirstServlet/Servlet,我的应用上下文是FirstServlet,容器会将http://localhost:8080/FirstServlet去掉,剩下的/Servlet部分拿来做servlet的映射匹配。

    映射匹配步骤:

    1)首先在web.xml文件中查找是否有匹配的url-pattern的内容(/Servlet)

    2)如果找到匹配的url-pattern,则使用当前servlet-name的名称到web.xml文件中查询是否相同名称的servlet配置

    3)如果找到相同名称的servlet配置,则取出对应的servlet配置信息中的servlet-class内容(zzuli.edu.cn.Servlet),然后通过servlet-class里的内容,反射构造Servlet的对象,调用Servlet对象里面的方法。

    5、 Myeclipse和Eclipse中的Tomcat怎样部署项目?

    1)Myeclipse默认将项目部署到tomcat安装目录下的webapps中

    2)eclipse并不像MyEclipse默认将项目部署到tomcat安装目录下的webapps中,而是默认部署到工作目录(workspace)下的.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps中

    6、Servlet 注解

    Servlet3.0以上可以使用注解@WebServlet自动映射,不用在web.xml中配置和

    使用方法:编写一个servlet类,继承HttpServlet,然后在servlet上面加上@webServlet即可。

    注意点:@WebServlet注解括号里面必须加映射路径

    7、Sevlet的生命周期(重点)

    Servlet重要的四个生命周期方法:

    1)构造方法:创建servlet对象的时候调用。默认情况下,第一次访问servlet的时候创建servlet对象。只调用1次,证明servlet对象在tomcat是单实例的。

    2)init方法:创建完servlet对象的时候调用,只调用1次。

    3)service方法:每次发出请求时调用,调用n次。

    4)destroy方法:销毁servlet对象的时候调用。停止服务器或者重新部署web应用时销毁servlet对象。只调用1次。

    8、伪代码演示servlet的生命周期

    Tomtcat内部代码运行:

    1、通过URL映射找到到servlet-class的内容(zzuli.edu.cn.FirstServlet)

    2、通过反射构造FirstServlet对象

    2.1 得到字节码对象

    Class clazz = class.forName(“zzuli.edu.cn.FirstServlet”);

    2.2 调用无参数的构造方法来构造对象

    Object obj = clazz.newInstance(); —1.servlet的构造方法被调用

    3、创建ServletConfig对象,通过反射调用init方法

    3.1 得到方法对象

    Method m = clazz.getDeclareMethod(“init”,ServletConfig.class);

    3.2 调用方法

    m.invoke(obj,config); --2.servlet的init方法被调用

    4、创建request,response对象,通过反射调用service方法

    4.1 得到方法对象

    Methodm m=clazz.getDeclareMethod(“service”,HttpServletRequest.class,HttpServlet Response.class);

    4.2 调用方法

    m.invoke(obj,request,response); --3.servlet的service方法被调用

    5、当tomcat服务器停止或web应用重新部署,通过反射调用destroy方法

    5.1 得到方法对象

    Method m = clazz.getDeclareMethod(“destroy”,null);

    5.2 调用方法

    m.invoke(obj,null); --4.servlet的destroy方法被调用

    9、怎样证明Servlet是单例的?

    通过构造函数来证明,当多次请求(访问)servlet时,如果构造函数只被执行一次,说明servlet是单例的。

    Servlet默认是单例的,是在第一次请求被执行时创建的(懒汉式)。

    10、Servlet的自动加载

    默认情况下,servlet对象是在第一次请求被执行时创建的。如果servlet的构造方法或init方法中执行了比较多的逻辑代码,那么导致用户第一次访问sevrlet的时候比较慢。

    怎样解决这种问题呢?

    改变servlet创建对象的时机:提前到加载web应用的时候创建!

    方法:只需要在servlet的配置信息中,加上一个即可!

    11、Servlet的多线程并发问题(重点)

    注意:servlet对象在tomcat服务器中是单实例多线程的。

    因为servlet是多线程的,所以当多个servlet的线程同时访问了servlet的共享数据,如成员变量,可能会引发线程安全问题。

    解决线程不安全问题办法:

    1)把使用到共享数据的代码块进行同步(使用synchronized关键字进行同步)

    2)在servlet类中尽量不要使用成员变量。如果确实要使用成员,必须同步,而且尽量缩小同步代码块的范围(哪里使用到了成员变量,就同步哪里!!),以避免因为同步而导致并发效率降低。

    3)只要在servlet类中不使用共享数据,就不影响servlet的正常使用。

    线程不安全代码演示:

    当用两个浏览器同时访问时,会出现线程不安全问题,如下图所示

    线程安全代码:(使用synchronized)

    此时用两个浏览器同时访问,不会出现线程不安全问题

    12、ServletContext对象

    1)得到web应用上下文路径:

    2)ServletContext域对象:作用范围在整个web应用中有效!

    常用方法:

    保存数据:void setAttribute(java.lang.String name, java.lang.Object object)

    获取数据:java.lang.Object getAttribute(java.lang.String name)

    删除数据:void removeAttribute(java.lang.String name)
    文章转自乐字节

    展开全文
  • servlet深入理解

    2019-04-13 21:28:16
    servlet简介 一般的网页程序,是由我们通过浏览器访问来实现的,在这一过程中浏览器发送请求,服务器接收请求,并对请求做出响应,这就是我们熟悉的B/S模型(浏览器-服务器),而servlet就是对请求做出处理的组件,...
  • 深入理解 Java Servlet

    2021-03-16 17:35:04
    Servlet 简介Servlet(Server Applet),全称 ...狭义的 Servlet 是指 Java 语言实现的一个接口,广义的 Servlet 是指任何实现了这个 Servlet 接口的类,一般情况下,人们将 Servlet 理解为后者。Servlet 运行于支持...
  • 包含了servlet从入门到高级技术的介绍,这是我工作几年的总结的讲义。里面包含了许多图解和自我总结,以及一些日子,适合对servlet进行深入理解和巩固。
  • servlet jsp深入了解

    2010-07-26 12:46:51
    更加深入了解servlet 和 jsp 的结合。更好的帮助你熟悉他们的关系
  • Servlet、Filter、Listener深入理解.docx
  • 深入了解servlet

    2020-12-10 15:40:35
    文章目录深入了解servlet1、Servlet 创建2、Servlet对象和方法解析2.1、Servlet接口代码2.2、ServletConfig接口定义2.3、Servlet第一个实现类GenericServlet2.4、基于协议的HttpServlet3、配置解析3.1、web-app3.2、...
  • Servlet 深入复习

    2021-05-17 15:25:34
    用于获取Servlet配置的初始化参数,该参数是程序员在开发的时候配置在web.xml中的 <servlet> <servlet-name>springMVCservlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-...
  • Web基础之Servlet深入

    2017-04-22 13:41:30
    Web基础之Servlet深入 一、Servlet生命周期回顾: Servlet生命周期( Life Cycle): 生命周期:指一个对象从创建到销毁所经历的过程。 生命周期方法:定义在 javax.servlet.Servlet 接口中,包括三个方法: init...
  • 深入理解servlet

    2020-03-17 18:56:31
    servlet的四个重要的方法是自身的无参构造函数、init方法、service(或者是doGet、doPost方法,其中三个功能我测试的时候是一样的,三者有你没我,都有只会执行service的方法)、destory方法(当servlet重启或者...
  • 深入理解JSP和Servlet

    2021-03-16 17:34:44
    图片.png Servlet的启动: 在下列时刻Servlet容器装载Servlet: --Servlet容器启动时自动装载某些Servlet --在Servlet容器启动后,客户首次向Servlet发出请求 --Servlet的类文件被更新后,重新装载Servlet Servlet...
  • 深入理解 Servlet

    2019-04-22 22:47:49
    1、什么是 Servlet ? Servlet(Server Applet)是 Java Servlet 的简称,称为小服务程序或服务连接器,用 Java 编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态 Web...
  • 1、概述狭义上看,是java的...2、核心对象下面就是Servlet接口的内容:public abstract interface javax.servlet.Servlet {//初始化public abstract void init(javax.servlet.ServletConfig arg0) throws javax.ser...
  • Servlet监听器 监听器基本概念 监听器作用 创建监听器 用IDEA可以很轻松的创建一个监听器出来,按照如下步骤: 可以看到IDEA自动帮我们生成了监听器代码模板: package com.example.myfirstweb.controller; /** * ...
  • Servlet其实就是一个遵循Servlet开发的java类。Serlvet是由服务器调用的,运行在服务器端。 为什么要用到Serlvet? 我们编写java程序想要在网上实现 聊天、发帖、这样一些的交互功能,普通的java技术是非常难完成的...
  • 什么是Servlet Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。 实现与CGI相同的功能, 但是与CGI...
  • 深入理解Servlet [转]

    2016-04-19 22:13:42
    servlet理解篇  1)首先,servlet是一段程序,其次,是运行在服务器上的程序,再次,是处理客户端请求的运行在服务器上程序。主要功能在于交互式地浏览和修改数据,生成动态Web内容。  2) servlet的程序则...
  • Servlet中有几个常用的对象,如果大家还记得之前在JSP的内置对象中介绍过的内容那么应该会对这几个对象大致有个印象JSP内置对象,分别是下图中的这几个红圈内容: 我们知道JSP编译后就是Servlet,这也再次证明了这...
  • javaEE之深入理解Servlet

    2020-09-29 08:37:39
    Servlet重要的四个生命周期方法 构造方法: 创建servlet对象的时候调用。默认情况下,第一次访问servlet的时候创建servlet对象只调用1次。证明servlet对象在tomcat是单实例的。 init方法: 创建完servlet对象的时候...
  • 深入了解tomcat中servlet的创建方式

    千次阅读 多人点赞 2020-10-11 12:00:17
    深入了解tomcat中servlet的创建方式 1什么是servlet 1.1、用官方的话解释: Servlet是oracle公司提供的一门用于开发动态web资源的技术,属于javaEE体系中的一种核心规范。 通俗解释一下:就是我们开发人员所编写的一...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 45,848
精华内容 18,339
关键字:

servlet深入了解