Servlet从定向和路径匹配

来源:互联网 发布:php 微信群发接口 编辑:程序博客网 时间:2024/05/29 07:46

二.重定向



三.访问路径

1.部署及路径的关系


2.如何获取路径

  • 项目名: getContextPath()
  • 访问路径: getServletPath()
  • URI: getRequestURI()
  • URL: getRequestURL()

3.URI和URL的区别

1)狭义的理解

  • 单纯的在Java项目中理解
  • URI: 绝对路径
  • URL: 完整路径

URL包含了URI

2)广义的理解(*)

  • 在所有的WEB项目中理解
  • URI: 资源的名称(刘苍松/苍老师/二蛋/松/cang#null)
  • URL: 资源的真名(刘苍松)
  • URI包含了UR

4.如何配置Servlet访问路径

4.1精确匹配(/abc)

  • 只有"/abc"可以访问该Servlet
  • 该Servlet只能处理这一个请求

适合请求总数很少的小项目

4.2通配符(/*)

  • 所有的路径都可以访问该Servlet
  • 该Servlet能处理所有的请求
  • 适合使用一个组件处理所有的请求

4.3后缀(*.emp)

  • 所有以emp为后缀的请求都可以访问该Servlet
  • 该Servlet能处理很多请求

适合使用多个组件处理所有的请求


5.如何使用一个Servlet处理多个请求


获取路径的四种方式:
package web;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class AbcServlet extends HttpServlet {private static final long serialVersionUID = 1L;@Overrideprotected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {//通过不同的方法获取访问路径的不同部位//http://localhost:8080/servlet2/abcSystem.out.println(req.getContextPath());// /servlet2   项目名System.out.println(req.getServletPath());// /abc    网络访问路径System.out.println(req.getRequestURI());// /servlet2/abc   绝对路径System.out.println(req.getRequestURL());// http://localhost:8080/servlet2/abc  完整路径/*** * 如果没有写响应信息,服务器依然会自动向浏览器发送响应信息 * 只是响应的数据为空,浏览器会看到一片空白,并不会报错 *//** * 注意事项:若采用通配符的方式来匹配访问路径,则req.getServletPath()得到的是空字符串 * getContextPath():    /servlet2 * req.getServletPath(): * req.getRequestURI():/servlet2/abc * req.getRequestURL():     http://localhost:8080/servlet2/abc * 此时若需要得到网络访问路径,则可考虑采用其他路径加工处理 */}}


配置文件:
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">  <display-name>servlet2</display-name>  <welcome-file-list>    <welcome-file>index.html</welcome-file>    <welcome-file>index.htm</welcome-file>    <welcome-file>index.jsp</welcome-file>    <welcome-file>default.html</welcome-file>    <welcome-file>default.htm</welcome-file>    <welcome-file>default.jsp</welcome-file>  </welcome-file-list>    <servlet>    <servlet-name>abc</servlet-name>    <servlet-class>web.AbcServlet</servlet-class>  </servlet>  <servlet-mapping>    <servlet-name>abc</servlet-name>    <!-- 1.精确匹配 -->    <!-- <url-pattern>/abc</url-pattern> -->    <!-- 2.通配符 -->    <!-- <url-pattern>/*</url-pattern> -->    <!-- 3.后缀:不允许以斜线"/"开头,否则报错 -->    <url-pattern>*.duang</url-pattern>  </servlet-mapping>  </web-app>


0 0
原创粉丝点击