当前位置: 首页 > news >正文

u盘搭建网站开发环境方法热门seo推广排名稳定

u盘搭建网站开发环境方法,热门seo推广排名稳定,国外做游戏评测的视频网站有哪些,云服务器和虚拟主机有什么区别文章目录 JavaWeb 中的静态资源访问1. Tomcat 中的两个默认 ServletJSPServletDefaultServlet配置引起的 bug情况一情况二情况三 2. 总结3. 如何允许静态资源访问 JavaWeb 中的静态资源访问 1. Tomcat 中的两个默认 Servlet Tomcat 有两个默认的 Servlet,你的 Web…

文章目录

  • JavaWeb 中的静态资源访问
    • 1. Tomcat 中的两个默认 Servlet
      • JSPServlet
      • DefaultServlet
      • 配置引起的 bug
        • 情况一
        • 情况二
        • 情况三
    • 2. 总结
    • 3. 如何允许静态资源访问

JavaWeb 中的静态资源访问

1. Tomcat 中的两个默认 Servlet

Tomcat 有两个默认的 Servlet,你的 Web 项目会『无意中』用到它们。JSPServlet 和 DefaultServlet 。

JSPServlet 用于响应 .jsp 请求;DefaultServlet 则是默认的『兜底』的 Servlet 。

JSPServlet

其实 JSPServlet 并非一个,应该是整个项目有多少个 JSP 页面,就会有对应的多少个 JSPServlet 。

JSPServlet 的工作大家都很清楚了,它涉及到 .jsp 文件的工作原理。

当你第一次访问一个 .jsp 页面时,Tomcat 会根据你的 jsp 页面『帮』你写一个 Servlet,即此处的 JSPServlet 。

访问 jsp 页面最终触发的是这个 Servlet 的执行。在这个 Servlet 中会生成一个页面的内容(html格式字符串),并发回给客户端浏览器。

DefaultServlet

DefaultServlet 是 Tomcat 提供的默认的『兜底』的 Servlet,相当于它的 <urlpattern> 配置的是 /

DefaultServlet 中的 doPost 方法交由 doGet 方法进行处理。而 doGet 方法兜兜转转最后执行了一个 copy 方法,在 copy 方法中把找到静态资源文件,将其内容读出并写入 Response 对象的输出流,这样你的浏览器就看到静态数据了。

配置引起的 bug

结合我们自定义的 Servlet,和 JSPServlet、DefaultServlet,会让初学者造成一些不知所以的 bug :

情况一

将 HelloServlet 的 urlpattern 配置为 *.do,此时项目中的各个 Servlet 的分工如下:

  1. Tomcat 默认的 JSPServlet 负责响应 .jsp 请求。

  2. 我们自己的 HelloServlet 负责响应 .do 请求。

  3. 凡是没有 Servlet 响应的请求,都被『漏给』DefaultServlet 处理。

情况二

将 HelloServlet 的 urlpattern 配置为 /,此时项目中的各个 Servlet 的分工如下:

  1. Tomcat 默认 JSPServlet 负责响应 .jsp 请求。

  2. HelloServlet 负责响应所有的其它请求。

注意,你的 HelloServlet 就替代了 Tomcat 默认的 DefaultServlet 在做「兜底」的工作。

此时,你就无法访问静态资源!

除非你的 HelloServlet 实现了 Tomcat 的 DefaultServlet 同样的功能。

情况三

将 HelloServlet 的 urlpattern 配置为 /*,此时项目中的各个 Servlet 的分工如下:

所有的请求都由你的 HelloServlet 处理

/* 是路径匹配,它的优先级高于 .jsp。所以当用户输入 xxx.jsp 时,是 HelloServlet『先』响应了这个请求,轮不到 Tomcat 的 JSPServlet 来响应这个 .jsp 请求。

此时,在静态资源无法访问的基础上,jsp 也无法访问了。

2. 总结

逻辑上,用户所访问的资源分为 3 种:

  • Servlet

  • JSP

  • 静态资源(例如:html、css、js、png 等)

Tomcat 判断请求的资源的类型,也是按照上述顺序在判断:先判断是否是请求 Servlet(.do 请求),再判断是否是 JSP(.jsp 请求)。要是都不是,那么就是静态资源(.png 等请求)。

通过配置,进行合理安排,我们应该/预期达到如下效果:

  • 对于 Servlet 的请求的处理,由我们自定义的 Servlet 进行处理。

  • 对于 JSP 的请求的处理,由 Tomcat 中的 JspServlet 自动处理。

  • 对于 静态资源 的处理,由 Tomcat 中的 DefaultServlet 自动处理。

[!attention] 注意
从本质上来讲,DefaultServlet 并不是『专门』处理静态资源的工具。而是说,既不是由我们自定义的 Servlet 处理的资源,又不是由 JspServlet 处理的资源,最后统统都交由 DefaultServlet 处理。

DefaultServlet 作为『兜底』的 Servlet ,它的 url-pattern 是 / ,注意,并非 /*

毫无疑问,web.xml不需要 显示地配置 DefaultServlet(否则,它也就不会叫 Default Servlet 了)。

同样的道理,其实我们也从未在(也不需要在) web.xml 中显示地配置过 JspServlet 。

3. 如何允许静态资源访问

当要访问静态资源时,可以在 web.xml 中明确指定什么样的请求(即对静态资源的请求)交由 DefaultServlet 进行处理(逻辑上,以下配置也可以省略不写,默认既是如此):

<servlet-mapping><servlet-name>default</servlet-name> <!-- 在默认的配置中,DefaultSevlet 的 servelt-name 就是叫 default --><url-pattern>*.html</url-pattern><url-pattern>*.css</url-pattern><url-pattern>*.js</url-pattern><url-pattern>*.jpg</url-pattern><url-pattern>*.png</url-pattern>
</servlet-mapping>

注意

  • WEB-INF 目录下内容不允许直接公共访问,所以静态资源通常是放到与 WEB-INF 同级的目录下面。
  • 如果是 SpringMVC 项目,对于静态资源的访问有其他的操作。
http://www.hkea.cn/news/203551/

相关文章:

  • 做设计一般用的素材网站是什么意思刷网站排名软件
  • 帮人做兼职的网站吗青岛seo服务哪家好
  • 贷款类网站怎样做网络营销的推广
  • 乐清做网站哪家好税收大数据
  • 校园网站建设需求天津放心站内优化seo
  • 哈尔滨微网站建设热搜在哪里可以看
  • 网站用oracle做数据库福州seo推广服务
  • 康保县城乡建设委员会网站营销型网站重要特点是
  • 手机做网站的步骤跨境电商有哪些平台
  • 请人做网站要多少网络事件营销
  • 网站页脚有什么作用厦门seo哪家强
  • 东莞百度提升优化优化推广网站推荐
  • 查企业网站有哪些站长统计app软件
  • 做a高清视频在线观看网站济源新站seo关键词排名推广
  • 刚做的网站怎么搜索不出来百度seo收录软件
  • 视频拍摄app站长工具seo综合查询广告
  • 新闻单位建设网站的意义武汉seo推广优化
  • 低价网站公司软文怎么写
  • 东莞市建设公共交易中心网站百度官网首页
  • 如何建立的网站能争钱优化营商环境 助推高质量发展
  • 做百度网站营销型网站建设排名
  • 网站域名被黑国际新闻最新消息战争
  • 苏州网站开发公司济南兴田德润厉害吗网络自动推广软件
  • 广药网站建设试卷株洲最新今日头条
  • 网站建设管理考核办法微信推广平台怎么做
  • 网站新闻模块代码网络推广有哪些常见的推广方法
  • 合肥大型网站如何推广普通话
  • 高端网站制作软件怎么样推广自己的店铺和产品
  • 无障碍浏览网站怎么做关键词seo排名优化推荐
  • wordpress 247seo推广系统