• Servlet原理及Mapping问题的体现


    1.1Servlet原理

    Servlet是由Web服务器调用,web服务器在收到浏览器请求之后,会:

     1.2Mapping问题

    我们点击web.xml,如下所示:

     1.一个Servlet可以指定一个映射路径

    1. hello
    2. /hello

     2.一个Servlet可以指定多个映射路径

    1. hello
    2. /hello
    3. hello
    4. /hello2
    5. hello
    6. /hello3
    7. hello
    8. /hello4
    9. hello
    10. /hello5

    我们运行之后进行查看:

     我们发现,我们选择不同的路径,都是可以进入到这个页面的。

    3.一个Servlet可以指定通用映射路径。

    我们将通配符*运用到路径里面来进行查看效果:

    1. hello
    2. /hello/*

    之后我们重新运行之后,出现无论hello后面的路径是什么,都可以进入该界面:

    只写一个hello也可以进入该界面。

    4.默认请求路径

    1. <--默认请求路径-->
    2. hello
    3. /*

    之后我们选择进行重启,如下所示:

    我们通过网址可以看到,我们再进index.jsp了,我们没有进入首页。所以尽量不要这样子去写。

    5.指定一些后缀或者前缀等等.....

    1. hello
    2. *.rgf

    我们重新启动,进入如下所示:

     6.优先级问题(自定义404)

    我们创建一个ErrorServlet:

     之后我们进行编辑该类:

    1. package com.rgf.servlet;
    2. import javax.servlet.ServletException;
    3. import javax.servlet.http.HttpServlet;
    4. import javax.servlet.http.HttpServletRequest;
    5. import javax.servlet.http.HttpServletResponse;
    6. import java.io.IOException;
    7. import java.io.PrintWriter;
    8. public class ErrorServlet extends HttpServlet {
    9. @Override
    10. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    11. resp.setContentType("text/html");
    12. resp.setCharacterEncoding("utf-8");
    13. PrintWriter writer = resp.getWriter();
    14. writer.print("

      404

      "
      );
    15. }
    16. @Override
    17. protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    18. doGet(req, resp);
    19. }
    20. }

    里面的setContentType在开发者工具里面找到:

    之后,我们编辑web,xml里面的文件:(将该文件添加进去)

    1. error
    2. com.rgf.servlet.ErrorServlet
    3. error
    4. /*

    我们运行之后如下所示:

     我们判断看后面加hello最后进入哪个页面:

    我们发现hello也属于/*,但是我们进入hello的界面。

    指定了固有的映射路径优先级最高,如果找不到就会走默认的处理请求;

  • 相关阅读:
    鲜花线上销售管理系统的设计与实现
    基于ABP实现DDD--领域服务、应用服务和DTO实践
    公路曲线及匝道多线路正、反算综合程序四(4.3修改版)1
    01创建型设计模式——单例模式
    [源码系列:手写spring] AOP第一节:切点表达式
    c++超详细引用篇【c++】
    cookie
    配置Hive使用Spark执行引擎
    SANSAN每周新鲜事|OPC UA 数据采集,你真的了解吗?
    IDEA创建Mybatis项目
  • 原文地址:https://blog.csdn.net/weixin_59448049/article/details/126316726