码迷,mamicode.com
首页 > 其他好文 > 详细

容器对路径的处理

时间:2015-06-14 08:11:53      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:

1、什么是重定向

  服务器向浏览器发送一个302状态码及一个Location消息头(该消息头的值是一个地址,称之为重定向地址),浏览器收到后会立即向重定向地址发出请求

2、重定向原理

  1>访问AddEmp

  2>执行数据库插入操作

  3>执行结束后使用重定向代码发回一个数据包,里面包含302状态码和一个消息头Location

  4>浏览器收到后会立即向服务器的ListEmp发出请求

  注:3、4这个过程即重定向

3、如何重定向

  使用响应对象的API方法即可实现重定向的过程

    response.sendRedirect(String url)

4、重定向特点

  重定向的地址可以是任意的地址

  重定向之后,浏览器地址栏的地址会发生改变

  重定向的过中涉及到的Web组件并不会共享一个request和response对象

5、什么是请求资源路径

  在浏览器地址栏中输入的地址格式如下:

    http://ip:port/appName/xxx.html

    请求资源路径:appName/xxx.html

6、Web服务器对请求地址的处理

  在浏览器地址栏输入http://ip:port/appName/xx.html

    1>浏览器依据ip,port建立与Servlet容器之间的连接,然后将请求资源路径appName/xx.html发送过去给容器

    2>容器依据应用名"/appName"找到应用所在的文件夹,容器会默认请求的是一个Servlet,查找web.xml文件中所有的Servlet配置"<url-pattern>",看是否有匹配的Servlet

7、匹配Servlet规则—精确匹配

  通过将请求资源路径中的具体资源名称与web.xml文件中的"url-pattern"进行对比,严格匹配相等后找到对应资源并执行

    如:<url-pattern>abc.html</url-pattern>

  尽管应用中有abc.html这个具体的页面,也会去指定该url-pattern对应的Servlet,而不是返回具体的abc.html页面

8、匹配Servlet规则—通配符匹配

  使用"*"来匹配0个或多个字符

  如:<url-pattern>/*</url-pattern>

  代表输入任何不同的URL地址都将匹配成功

9、匹配Servlet规则—后缀匹配

  不能使用斜杠开头,使用"*."开头的任意多个字符

  如:<url-pattern>*.do</url-pattern>会匹配以".do"结尾的所有请求

10、无匹配的Servlet的处理

  如果精确匹配、通配符匹配、后缀匹配都没有匹配成功时,容器会查找相应的文件

  查找到相应文件则返回

  找不到文件则返回404

  注:优先级最高的是 精确匹配

11、为什么要将多Servlet合并

  一般情况下,Servlet的只要作用为充当控制器的角色,即接受请求并分发给不同的资源,这时只要有一个Servlet就可以完成分发的过程,所以需要将Servlet合并

  实现合并的步骤:

    使用后缀匹配模式修改web.xml文件

    获取请求资源路径,分析具体请求资源路径后,依据分析结果调用不同分支处理代码。

12、使用后缀匹配模式修改web.xml

  将配置的多个Servlet节点删除

  保留一对儿servlet、servlet-mapping

  修改url-pattern节点的内容为:".do"

13、分析请求资源后分发

  通过调用request、getRequestURI()方法获取请求资源路径

  分析对应资源后分发

容器对路径的处理

标签:

原文地址:http://www.cnblogs.com/Crow00/p/4574501.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!