1-Servlet的路径配置

课程介绍:

通过对 Servlet 的调用流程学习,我们知道 web.xml 文件的配置是为了保护servlet。其实服务器应该调用哪个 servlet 进行请求的处理, 在浏览器的请求地址中写的很清楚。

一、注解配置:

1、精确匹配(路径要一样),一般作用于站点独特的几个路径,首页、登录、注册等等

@WebServlet("/hello")

2、路径匹配,一般用于产品页,新闻页面,百科页面一般用于大量相类似的页面

@WebServlet("/product/*")

3、扩展名匹配

@WebServlet("*.json")

匹配多个路径:

@WebServlet(urlPatterns= {"/morepath","*.do","/more/*"})

二、Servlet的web.xml 配置:

Web.xml 配置的作用:保护Servlet。

配置方式一:精确匹配

Web.xml 配置的作用:保护Servlet。

配置方式一:精确匹配

<!-- 配置方式一 -->
<servlet><servlet-name>my3</servlet-name>
<servlet- class>com.bjsxt.servlet.MyServlet3</servlet-class></servlet><servlet-mapping><servlet-name>my3</servlet-name>
<url-pattern>/my3</url-pattern></servlet-mapping>

配置方式二:路径匹配

<!-- 配置方式一 -->
<servlet><servlet-name>my3</servlet-name>
<servlet- class>com.bjsxt.servlet.MyServlet3</servlet-class></servlet><servlet-mapping><servlet-name>my3</servlet-name>
<url-pattern>/my3</url-pattern></servlet-mapping>

配置方式三:扩展名匹配

<servlet><servlet-name>my3</servlet-name>
<servlet- class>com.bjsxt.servlet.MyServlet3</servlet-class></servlet><servlet-mapping><servlet-name>my3</servlet-name>
<url-pattern>*.do</url-pattern></servlet-mapping>

加载时机:

服务器启动的时候会将 webapps 中部署好的项目统一进行加载,并完成对每个项目的 web.xml 文件的加载。

注意:

一个 Servlet 可有拥有多个 url-pattern 配置,但是一个url-pattern 配置只能对应一个Servlet

路径和扩展名匹配无法同时设置,比如下面的三个<url-pattern>都是非法的,如果设置,启动tomcat服务器会报错。

<url-pattern>/kata/*.jsp</url-pattern>

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

<url-pattern>he*.jsp</url-pattern>

另外注意:<url-pattern>/aa/*/bb</url-pattern>

这个是精确匹配,url必须是 /aa/*/bb,这里的*不是通配的含义

优先顺序

当一个url与多个servlet的匹配规则可以匹配时,则按照 “ 精确路径 > 最长路径>扩展名”这样的优先级匹配到对应的servlet。举例如下:

例1:
servletA 的url-pattern为 /test,
servletB的url-pattern为 /* ,这个时候,如果我访问的url为http://localhost/test ,这个时候容器就会先进行精确路径匹配,发现/test正好被servletA精确匹配,那么就去调用servletA,不会去管servletB。例2:
servletA的url-pattern为/test/*,
servletB的url-pattern为/test/a/*,此时访问http://localhost/test/a时,容器会选择路径最长的servlet来匹配,也就是这里的servletB。 例3: 比如
servletA的url-pattern:*.action ,
servletB的url-pattern为 /* ,这个时候,如果我访问的url为http://localhost/test.action,这个时候容器就会优先进行路径匹配,而不是去匹配扩展名,这样就去调用servletB。

页面乱码:解决方法

request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UFT-8");

转载于:https://www.cnblogs.com/qq308015824/p/11009766.html

Servlet的路径配置相关推荐

  1. 使用WebServlet注解和web.xml配置servlet映射路径的区别及注意事项

    配置servlet映射路径 一.使用web.xml配置url 二.使用servlet注解设置url 三.有关使用web.xml重写WebServlet注解 一.使用web.xml配置url 格式: & ...

  2. Filter_细节_过滤器拦截路径配置

    过滤器配置详解     * 拦截路径配置:         1. 具体资源路径: /index.jsp   只有访问index.jsp资源时,过滤器才会被执行         2. 拦截目录: /us ...

  3. Filter过滤器拦截路径配置

    在Filter中拦截路径配置有四种形式 具体资源路径拦截:@WebFilter("/index.jsp") //这是指访问index.jsp的时候会经过过滤器 具体目录拦截:@We ...

  4. java过滤器 配置路径_Filter过滤器拦截路径配置

    在Filter中拦截路径配置有四种形式 具体资源路径拦截:@WebFilter("/index.jsp") //这是指访问index.jsp的时候会经过过滤器 具体目录拦截:@We ...

  5. Filter过滤器的拦截路径配置

    Filter的介绍 拦截路径配置 拦截所有资源:/* 具体资源路径:/myServlet/demo1 拦截目录:/myServlet/* 后缀名被拦截:*.jsp Filter的介绍 拦截路径配置 过 ...

  6. nodejs安装及npm模块插件安装路径配置

    在学习完js后,我们就要进入nodejs的学习,因此就必须配置nodejs和npm的属性了. 我相信,个别人在安装时会遇到这样那样的问题,看着同学都已装好,难免会焦虑起来.于是就开始上网查找解决方案, ...

  7. 024:模版查找路径配置

    模版查找路径配置: 在项目的 settings.py 文件中.有一个 TEMPLATES 配置,这个配置包含了模板引擎的配置,模板查找路径的配置,模板上下文的配置等.模板路径可以在两个地方配置. 1. ...

  8. java 取上下文路径_取Servlet上下文路径,取WebContent的路径

    ---------------------取Servlet上下文路径,取WebContent的路径 -------------------------------- 1.String path = r ...

  9. 【Android NDK 开发】Android Studio 使用 CMake 导入动态库 ( 构建脚本路径配置 | 指定动态库查找路径 | 链接动态库 )

    文章目录 I . CMake 引入动态库与静态库区别 II . Android Studio 中 CMake 引入动态库流程 III . 指定动态库查找路径 IV . 链接函数库 V . 完整代码示例 ...

最新文章

  1. 今天,向 6 女性程序员先驱致敬
  2. 架构漫谈(1):什么是架构
  3. python表达式3and not5的值_表达式 3 and 5 的值为_学小易找答案
  4. android html 换行_Android-富文本处理-html字符串去掉内部样式,统一添加body、style,统一支持换行等...
  5. java+2e10_CoreJavaE10V1P3.10 第3章 Java的基本编程结构-3.10 数组(Arrays)
  6. Yapi 部署及遇到的坑
  7. php访问c#接口,介绍C#中的接口
  8. unity IOS 微信踩坑记录
  9. 天宝营养冲刺深交所:年营收12.5亿 拟募资7亿
  10. php如何实现众筹,PHP众筹系统这三点一定要注意
  11. 管道-过滤器体系结构风格
  12. Databinding+LiveData轻松实现无重启换肤
  13. 我的项目经理培训论文
  14. android9的手机,Android9.0全面适配18:9刘海屏,全面屏安卓手机即将大规模上市
  15. 测试opencl软件,OpenCL应用测试
  16. 【元胞自动机】基于元胞自动机模拟晶体生长附matlab代码
  17. PS CS6打开一直卡在正在检查内存
  18. 安卓爱笑话5.0全面升级
  19. 永冻土层matlab图片,最新科学研究发现:降雨量增加正在加速解冻北极永久冻土...
  20. 让人吃惊的泡MMQQ记录

热门文章

  1. There were errors checking the update sites: SSLHandshakeException: sun.secu 202007亲测有用
  2. java数据回填_快逸数据回填的实现方法
  3. 微信小程序——开发介绍
  4. PPT制作三大技巧:图标 、图片背景透明和自动函数
  5. 一. 卡尔曼滤波器开发实践之一: 五大公式详解
  6. java程序员自我简介及简历
  7. ubuntu批量解压分卷文件
  8. SOHO办公遭IBM叫停,为什么说它是创业大忌?
  9. 标准的视觉ECC200二维码解析(值得一看哦,比很多二维码解析都要强力的:-})
  10. 【2018虚拟现实设备VR眼镜排行榜】VR眼镜哪个好?9款市面上值得推荐的VR眼镜