servlet 各种请求路径方法

/*
1.具体请求路径:
             如果浏览器请求的【资源文件地址】与当前Servlet中<url-pattern>的内容【完全一致】,Tomcat才会带调用当前Servlet

             例子   OneServlet    <url-pattern>/one.do</url-pattern>

                    http://localhost:8080/myWeb/one.do   OneServelt会被调用

                  http://localhost:8080/myWeb/abc/one.do OneServelt不会被调用

                    [注意]: 具体请求路径,必须以"/"为开头

    2.前置条件请求路径:
                     如果浏览器请求的【资源文件地址】以当前Servelt中<url-pattern>
             的内容为开头的。Tomcat才会带调用当前Servlet

             例子  OneServlet    <url-pattern>/abc/*</url-pattern>

                   "*": 是一个通配符,描述是一个任意长度字符串
               如果当前【资源文件地址】是以"/abc/"为开头,就表示调用的资源OneServlet

                    http://localhost:8080/myWeb/abc/two.do        OneServelt会被调用

                http://localhost:8080/myWeb/abc/one.html      OneServelt会被调用

                    [注意]: 具体请求路径,必须以"/"为开头,必须以"*"为结尾

  3.后置条件请求路径:如果浏览器请求的【资源文件地址】以当前Servelt中<url-pattern>
              的内容为结尾的。Tomcat才会带调用当前Servlet

                例子  OneServlet    <url-pattern>*.do</url-pattern>

                  http://localhost:555/myWeb/abc/one.do        OneServelt会被调用

                  http://localhost:555/myWeb/five.do            OneServelt会被调用

                  http://localhost:555/myWeb/five.do?uname=mike OneServelt会被调用,因为tomcat是通过读取url来定位servlet的

                  请求行:[
                             url:http://localhost:555/myWeb/five.do
                             methos:get
                          ]

                              请求头:[
                                    uname:mike
                           ]

                        [注意]: 不能以"/"为开头,必须以"*"为开头

 4.通配符请求路径:   当前Servlet可以接收对当前网站所有的请求

                       例子  OneServlet    <url-pattern>/*</url-pattern>

                     http://localhost:555/myWeb/mm.jpg   OneServlet

                 http://localhost:555/myWeb/one.do    OneServlet 

5.请求路径优先级:[具体请求路径] > [前置条件]>[通配符] >[后置条件] 

            http://localhost:555/myWeb/abc/one.do

        OneServlet:  <url-pattern>/abc/one.do</url-pattern>

        TwoServlet    <url-pattern>/abc/*</url-pattern>

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

        FourServlet   <url-pattern>/*</url-pattern>
*/

关于优先级:即tomcat根据获取的url去web.xml寻找对应的Servlet来响应请求。

      如果按照【具体请求路径】有匹配了,那么直接调用对应的Servlet,反之再按【前置条件】去匹配,依次类推

生命周期

/*
Servlet实例对象【生命周期】

            1.项目中,所有Servlet的实例对象都是由Tomcat负责创建;开发人员
          没有权利创建Servlet的实例对象

            2.【创建时机】:

               1)【默认情况】:当第一个用户来访问这个Servlet时,Tomcat负责创建
                            它的实例对象

               2)【人工干预】: 要求Tomcat在启动时,创建Servlet的实例对象

                                     <servlet>
                                          <servlet-name>TwoServlet</servlet-name>
                                          <servlet-class>com.bjpowernode.controller.TwoServlet</servlet-class>
                                          <load-on-startup>890</load-on-startup>
                                        </servlet>

          3.在Tomcat运行期间,一个Servlet实现类只能被创建一个实例对象

      4.在Tomcat关闭时,由Tomcat负责销毁所有的Servlet实例对象
*/

原文地址:https://www.cnblogs.com/zsben991126/p/12654895.html

时间: 2024-08-28 10:26:39

servlet 各种请求路径方法的相关文章

Request获取请求路径方法介绍

Request对象通过以下方法来获取请求路径. (1)String getServerName():获取服务器名:localhost (2)String getServerPort():获取服务器端口号:8080 (3)String getContextPath():获取项目名:Test (4)String getServletPath():获取Servlet路径:/login (5)String getQueryString():获取参数部门,即问号后面的部分:username=zhangsa

servlet的请求路径区分

System.out.println("contextPath:"+req.getContextPath()); System.out.println("servletPath:"+req.getServletPath()); System.out.println("requestURI:"+req.getRequestURI()); System.out.println("requestURL:"+req.getReques

一个Servlet中可以有多个处理请求的方法

BaseServlet 一个请求写一个Servlet太过复杂和麻烦,我们希望在一个Servlet中可以有多个处理请求的方法. 客户端发送请求时,必须给出一个参数,用来说明要调用的方法 方法的结构和service()方法的结构一样 初始版 当我们访问Servlet时,发生了那些操作? 首先是通过<url-pattern>找到<servlet-name>,通过<serlvet-name>最终找到<servlet-class>,也就是类名,在通过反射得到Serlv

Servlet处理业务逻辑,JSP处理视图渲染,Servlet处理请求后,把输出的结果转到JSP页面的解决方法

Servlet处理请求后,一般情况下,请求重定向或转发处理. (dispatcher)请求转发:也被称为服务器端重定向,是指服务器在处理多个request请求的过程中,先后委托多个JSP 接替处理的过程.用dispatcher的方法来实现,通过RequestDispatchers来实现,一个是forward,另一个是include.相应的JSP里实现dispatch的标签也有两个:<jsp:forward/>和<jsp:include/> Servlet跳转到JSP, reques

[Servlet]&mdash;在servlet中常混的请求路径

在页面请求,后台获取相关请求路径是,自己长搞混的几个路径,再次做次标记,不要每次使用想不起来是,都去写一个小的demo来测试. request.getContextPath(); request.getRequestURI(); request.getRequestURL(); 打印结果: /servlet_test_all /servlet_test_all/go/parameterTestServelt http://localhost:8888/servlet_test_all/go/pa

Spring注解@RequestMapping请求路径映射问题

@RequestMapping请求路径映射,假设标注在某个controller的类级别上,则表明訪问此类路径下的方法都要加上其配置的路径.最经常使用是标注在方法上.表明哪个详细的方法来接受处理某次请求. 下面两种方式都能够从url中传參数,可是另外一种方式的适用性更高一些,当參数中包括中文的时候,假设用第一种方式传參数,常常会出现參数还没到controller就已经经过编码了(比如:经过utf-8编码后,原本要传的參数就会以%+ab...cd这种方式出现),然后controller接受到这种请求

Servlet 之请求,响应,缓存以及乱码

JavaWeb中,Servlet的请求,响应对象有很多实用的api,此处依据http协议中请求行,请求头,请求体以及响应行,响应头,响应体的思路,对这些api以及相关事项做个整理,最后总结一下乱码的相关处理. 响应行 响应行格式为"协议 状态码 状态码信息",这里主要就是状态码的操作,如果是比较正式的写法,应该使用HttpServletResponse接口中所定义的状态码,如: setStatus(404) setStatus(HttpServletResponse. SC_NOT_F

JavaWeb学习之什么是Servlet、如何使用servlet、为什么这样使用、servlet的虚拟路径(2)

1.什么是Servlet? * 服务器端Java程序,servlet需要交给服务器来运行. * 与javax.servlet.Servlet接口有关的java程序 2.如何使用servlet?[必须] * 创建web项目 * 创建一个类,并实现Servlet接口 * 交给服务器运行 /WEB-INF/web.xml <!-- 注册servlet <servlet>标签:进行servlet注册 <servlet-class>标签:确定servlet类所在位置 * 内容:需要注册

对于SpringMVC请求路径的方式

初次接触SpringMVC的时候 对于请求路径是使用基于注解的配置 @RequestMapping("/self") 这种方式配置方便 更适合RESTful风格一起使用 @RequestMapping(value="/self/{name}",method.RequestMethod=GET) 然后又由于需要接触到基于XML配置的请求路径 如下: <prop key="/login.do">usersController</pr