美文网首页
Servlet-06(路径问题)

Servlet-06(路径问题)

作者: 西谷haul | 来源:发表于2020-05-14 16:51 被阅读0次

1.路径问题

(1)什么是路径问题?

<a href="addUser.jsp"> 
<form action="add"> 
response.sendRedirect("login.jsp")
request.getRequestDispatcher("listUsers.jsp")

(2)什么是相对路径?

不以"/"开头的路径

(3)什么是绝对路径?

以"/"开头的路径

(4)如何写绝对路径?

链接、表单提交、重定向从应用名开始写,转发从应用名之后开始写。

注:不要将应用名直接写在路径里面,而应该使用下面的方法
来获得实际部署时的应用名。
String request.getContextPath();

2.容器如何处理请求资源路径?

比如,在浏览器地址栏输入http://ip:port/day08-2/abc.html

step1.容器默认认为访问的是一个servlet。

容器将请求资源路径("/day08-2/abc.html")中的应用名除掉,
得到"/abc.html",然后查找web.xml配置文件,看<url-pattern>
有没有与之匹配的servlet。

匹配方式有三种:
    第一种: 精确匹配 
    第二种: 通配符匹配,即使用"*"配置任意的零个或者多个字符,比如
         <url-pattern>/*</url-pattern>
         <url-pattern>/demo/*</url-pattern>
    第三种:后缀匹配,使用"*."开头,后接任意的一个后缀,比如
         <url-pattern>*.do</url-pattern>
         以上配置,会匹配所有以".do"结尾的请求。
         <url-pattern>*.action</url-pattern>

step2.如果找不到对应的servlet,容器会查找对应位置的文件。

    找到了,就返回该文件的内容,找不到,返回404。

3.如何让一个servlet处理多种请求?

step1. 使用后缀匹配,比如

<servlet-mapping>
    <servlet-name>someServlet</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>

step2. 分析请求资源路径,调用对应的分支来处理。

4.Servlet上下文

(1)什么是Servlet上下文?

容器启动之后,会为每一个web应用创建唯一的一个符合ServletContext 接口要求的对象,该对象一般称之为Servlet上下文。

特点:
    唯一性:一个web应用对应一个Servlet上下文。
    持久性: 只要容器没有关闭,应用没有被卸载,Servlet上下文就会一直存在。
image.png

(2)如何获得Servlet上下文?

HttpSession,GenericServlet提供了getServletContext方法来获得 上下文。

注:
    GenericServlet是HttpServlet的父类

(3)作用1: 绑订数据

request,session,Servlet上下文都提供了绑订数据相关的方法, 区别如下:

a.生存时间不一样,在满足使用条件的情况下,优先使用生命周期
短的(节省内存)。
  request < session < servlet上下文
image.png
b.可访问的范围不一样。
image.png

5.利用Servlet上下文读取全局的初始化参数

step1.配置全局的初始化参数

<!--配置全局的初始化参数 -->
<context-param>
    <param-name>company</param-name>
    <param-value>北京达内科技有限公司</param-value>
</context-param> 

step2.读取

/*
 * 通过ServletContext提供的方法来
 * 读取全局的初始化参数
 */
String company = 
        sctx.getInitParameter("company");

相关文章

  • Servlet-06(路径问题)

    1.路径问题 (1)什么是路径问题? (2)什么是相对路径? 不以"/"开头的路径 (3)什么是绝对路径? 以"/...

  • 路径问题

    1. 给一棵BST, 找到从根节点到叶子节点的最小路径和 样例 Output:10 代码 第一版本 第二版本 o(...

  • 路径问题

    1. 服务器发出的请求 : "/"相对于应用的根目录来说 服务器发出的请求 "/"相对于webapps根目录来说...

  • 路径问题

    在java中获取文件路径的时候,有时候会获取到空格,但是在中文编码环境下,空格会变成“%20”从而使得路径错误,解...

  • 路径问题

    用python命令执行py脚本时,py脚本所在的路径会被加入到sys.path当中(而不是执行python命令的那...

  • 路径问题

    剑指 Offer II 098. 路径的数目[https://leetcode-cn.com/problems/2...

  • 算法与数据结构(九) 图论:最短路径问题

    最路径问题 Shortest Path 一个节点到另一个节点最短的路径。路径规划问题。 路径规划 工作任务规划 对...

  • HttpServletRequest路径问题

    假定你的web application 项目名称为news,你在浏览器中输入请求路径:http://localho...

  • 最长路径问题

    题目描述现有A、B、C、D、E五个字符,以及M个字符串,每个字符串由这五个字符和1-9的整数间隔组成,如:A2B3...

  • iOS路径问题

    import DE7B304...

网友评论

      本文标题:Servlet-06(路径问题)

      本文链接:https://www.haomeiwen.com/subject/dtxxohtx.html