解决servlet在web.xml中的路径跳转问题

复制代码
复制代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <servlet>
        <description>This is the description of my J2EE component</description>
        <display-name>This is the display name of my J2EE component</display-name>
        <servlet-name>FromServlet</servlet-name>
        <servlet-class>from.servlet.FromServlet</servlet-class>
    </servlet>
    <!-- 试着把这个也注掉,看是否能用? 经验证,的确如此,能够使用,直接跳到servlet中 还存在一个问题是,
    假如不这么做,他是否有着一个默认字符编码功能 把servlet中的字符编码弄掉,看是否能返回正确的结果 
    ***经验证,原来什么几把都没有了,我终于入门了,感谢成哥让我注重的基础,回补最基础的jsp和servlet,
    实力就在于精通基础
    -->
    <servlet>
        <description>This is the description of my J2EE component</description>
        <display-name>This is the display name of my J2EE component</display-name>
        <servlet-name>AddServlet</servlet-name>
        <servlet-class>filter.AddServlet</servlet-class>
    </servlet>
    <servlet>
        <description>This is the description of my LoginSystem</description>
        <display-name>LoginSystem</display-name>
        <servlet-name>CheckAccount</servlet-name>
        <servlet-class>from.servlet.CheckAcount</servlet-class>
    </servlet>
    <servlet>
        <description>This is the description of my J2EE component</description>
        <display-name>This is the display name of my J2EE component</display-name>
        <servlet-name>TestCharset</servlet-name>
        <servlet-class>from.servlet.TestCharset</servlet-class>
    </servlet>


    <servlet-mapping>
        <servlet-name>FromServlet</servlet-name>
        
        <url-pattern>/FromServlet</url-pattern>
        <!--问题: 可以设想一下,为什么这个路径没有配置后缀, 那它肯定会有一个默认的后缀页面(不是这个问题,仅仅是声明一个路径名,并无特殊) -->
    </servlet-mapping>
    <!-- 原来是这样,上下两个命名一致,就会产生冲突,验证是这样 肯定要差异化 (这点就说明研究的还不够深入) 实则不然,只要servlet类中没有写入注解@WebServlet("/AddServlet"),则这两个可以写成一样。 
        重点是它的默认查找方式,不能设重复,注解就如同Controller,与<servlet-name></..>这没有半毛钱关系 查找方式首先看注解的,若没有则按web.xml中配置的。可以只配置注解,不配web.xml也是一样的,跟spring的作用 
        一样的道理。试下 事实已经验证,愉悦了 -->
    <servlet-mapping>
        <servlet-name>AddServlet</servlet-name>
        <url-pattern>/AddServlet</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>CheckAccount</servlet-name>
        <url-pattern>/check</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>TestCharset</servlet-name>
        <url-pattern>/TestCharset</url-pattern>
    </servlet-mapping>
</web-app>
复制代码

 

复制代码

   总结,servlet的URL配置有两种方法:

    1,利用@WebServlet("/.....")简单方便,就无需再配web.xml中的servlet啦

    2,只用配置web.xml中的东西,路径就是<url-pattern>........</url-pattern>中的东西,

    3,同时使用上面两种方法也行,但是名字不能重复,一旦一致,就会报内部服务器错误 例如(@WebServlet("/addServlet"),<url-pattern>/addServlet</url-pattern>)

      这个就是典型的找报错的通道,500等着你

       因为痛苦过,所以希望众生不要再痛苦,大道明矣

posted @   吖水的程序路  阅读(1839)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示