javaweb servlet中映射路径配置问题

一、/* 和*.do的匹配问题

我web.xml中的配置如下

 <servlet>
        <servlet-name>TwoServlet</servlet-name>
        <servlet-class>com.fh.TwoServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>TwoServlet</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>


    <servlet>
        <servlet-name>FourServlet</servlet-name>
        <servlet-class>com.fh.FourServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>FourServlet</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>

然后做测试时发现,若访问路径为

 http://localhost/test/a.do 

http://localhost/test/xxx/yyy/a.do 

个人理解的*.do就是匹配末尾是.do结尾的路径,而/*则是全部范围任意匹配

按照我的理解,结果应该以上两个路径应该都是访问FourServlet这个类,但是实际结果却全是TwoServlet类,所以希望有经验的朋友能帮忙解答,谢谢

0

13个回答

匹配的优先级,最精确匹配>最长路径匹配>扩展名匹配

0
ai_bao_zi
咕噜是个大胖子 谢谢,根据您的答案做了搜索,然后看到了更详细的解析,有点理解了,谢谢
大约一年之前 回复

我讲一下原理吧、下面是一个简单的servlet、
this is a servlet test--描述信息、可有可无 HelloServlet --servlet的内部名称 包名****.类名***--映射的类
HelloServlet --通过servlet的内部名称把URL与CLASS绑定 /HelloServlet --用户访问serlvet的URL
可能上面看的不太懂、我简单的说下、首先、从*.jsp页面提交、这个时候form里的为:

、然后通过HelloServlet这个访问路径得到servlet的名称、也就是我们定义的HelloServlet、当然action里面的名称可以随便改、但注意配置这个节点时也要保证一致、得到servlet内部名称后、就会根据这个名称找到相应的节点、然后就找到了我们映射的类了、就这么简单了、最终执行映射类的内容、我是这样理解的、谢谢、
4

/*拦截所有请求,也有先后顺序,/*在上面自然是第一个进入

3
ai_bao_zi
咕噜是个大胖子 然后根据5楼的提到的原则做了一个关键词搜索,看到了文章https://www.cnblogs.com/51kata/p/5152400.html这个解释比较合理。
大约一年之前 回复
ai_bao_zi
咕噜是个大胖子 另外按照5楼的所提到的优先级匹配原则:最精确匹配>最长路径匹配>扩展名匹配。这个我也做个测试,差不多是这个样子,但是对于*.do和/*这样的通配来说,不管谁先谁后。/*的优先级要高于了*.do
大约一年之前 回复
ai_bao_zi
咕噜是个大胖子 您好,按照顺序之说的话,我把*.do的servle放在了/*的前面。但是最后测试结果依然是只会进入到/*。而不是进入到*.do里面。
大约一年之前 回复
ikangkang99
ikangkang99 优秀,给你点个赞
大约一年之前 回复

你上面的servlet已经匹配了所有请求方法,所以就不会根据后缀来判断是不是走下面的servlet

0

楼主是说的是的,所有的请求都被/* 拦截啦 ,,所以就不会走下面一个servlet

0

TwoServlet可以匹配,没走下面的servlet

0

检查下加载的顺序,后面的应该是没有执行。

0

对于xml一直处于蒙蔽状态

0

我也认为TwoServlet是可以匹配的,没走下面的servle

0

/* 拦截所有请求,顺序在前所以都走的这个

0
共13条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Servlet的映射路径
&amp;lt;servlet-mapping&amp;gt; &amp;lt;!-- servlet的内部名称,一定要和上面的内部名称保持一致!! --&amp;gt; &amp;lt;servlet-name&amp;gt;FirstServlet&amp;lt;/servlet-name&amp;gt; &amp;lt;!-- servlet的映射路径(访问servlet的名称) --&amp;gt; &amp;lt;url-pattern&amp;gt...
JSP中servlet中的路径配置问题
在每个javaWeb应用中,都有一个web.xml配置文件,该文件中配置了该web应用中的servlet的映射关系。
JavaWeb:Servlet的映射细节
Servlet的映射细节:      1):一个Servlet程序(Web组件),可以配置多个&amp;lt;url-pattern&amp;gt;,表示一个Servlet有多个资源名称。 &amp;lt;servlet-mapping&amp;gt; &amp;lt;servlet-name&amp;gt;MappingServlet&amp;lt;/servlet-name&amp;gt; &amp;lt;url-pattern&amp;gt;/m1&amp;lt;/u...
两种配置Servlet的IP地址映射:1注解、2配置文件
1.创建项目 创建 servlet_test 动态web项目。 创建时点击 next, 勾选如下: 2.创建 test.java类 test.java 内容: 第一种:注解 – 设置IP地址映射 package pack01; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.annot...
Servlet的路径映射
先看代码块:  &amp;lt;servlet&amp;gt; &amp;lt;servlet-name&amp;gt;Controller&amp;lt;/servlet-name&amp;gt; &amp;lt;servlet-class&amp;gt;com.ricardo.login.demo.web.controller.UserController&amp;lt;/servlet-class&amp;gt;//包名+类名 &amp;lt;/se...
关于JavaWeb中Servlet里基本路径获取的总结
我们常常要为重定向、请求收发器指定一个路径。一般来说我们指定一个相对路径。随着学习的深入,我们会需要更加精确地获取文件的路径,文件父级目录。下面我们来说一下可能会用到的几个方法。 首先是获取全路径的request.getRequestURL()。这个函数蛮重要的,直接获取到当前文件的目录,并且携带协议、域名、端口号前缀,也就是说,我们可以使用这个函数返回当前文件的绝对路径。同时,这个函数的名称也十
Servlet映射路径中的通配符
映射路径中的通配符 有时候,希望某个目录下的所有路径,都可以访问同一个Servlet 此时,可以在Servlet映射的路径中使用通配符* 通配符的格式有两种 格式为*.扩展名 比如 *.do,匹配以.do结尾的所有URL地址 格式为/* 比如 /abc/*,匹配以/abc开始的所有的URL地址 注意 这两种通配符的格式,不能混合使用 比如 /abc/*.do,...
如何在web.xml文件中,配置jsp的映射路径
若要访问放在WEB-INF文件夹下的内容(如文件为hello.jsp)则要进行映射,使用一个名字来映射WEB-INF/hello.jsp,在web.xml文件的&amp;lt;/description&amp;gt;和&amp;lt;/web-app之间添加如下代码: ----------------------------------------------------------------------------...
Servlet的映射路径、Servlet缺省路径
一、铺垫: 1、问题:访问URL:http://localhost:8080/servlet_test/FirstServlet 2、前提: tomcat服务器启动时,首先加载webapps中的每个web应用的web.xml配置文件。(补充webapps中存放的就是web项目中的WebRoot下的所有资源) 3、详解: 1)http://: http协议 2)localhost: 到本地
servlet 映射路径的方式
servlet 的映射路径方式有3个:  1. 完全路径匹配 2. 目录匹配 3. 扩展名匹配 (一)映射路径方式 1.完全路径匹配 以 / 开头,如 /aaa ,/aaa/bbb 当有 /httpservlet,则表明其servlet本地访问的url 为:http://localhost:8080/项目名/httpservlet 2.目录匹配 以 / 开头,如
Servlet路径匹配以及静态资源路径访问
问题由来,为什么SpringMvc中的DispatcherServlet中可以用/,也可以用/*, 这两个有什么区别。先说结论:“/*”的优先级比扩展名匹配(如.jsp)高,而“/” 的优先级比扩展名匹配(如.jsp)低。我们知道一个路径(url-pattern)只能匹配一个servlet,不像filter,只要能匹配的路径都可以过滤。 **那就说下URL匹配的优先级,从高到低: 1.精确匹配:
使用通配符在servlet映射到URL中及在匹配的时候要参考的标准
有两种格式: 第一种格式 .扩展名 比如 .do .ss 第二种格式 以 / 开头 同时以 / 结尾 比如 / /news/ 在匹配的时候,要参考的标准: (1) 看谁的匹配度高,谁就被选择 (2) *.do 的优先级最低 ...
映射的方式实现一个servlet类处理多个请求
封装一个继承类,该类继承于HttpServlet并实现service方法,请求来了后首先执行该service方法,方法内写入两种处理中文乱码的方式,一个是处理客户端发送的请求乱码问题,一个是处理服务器响应后中文乱码的问题,代码如下:package com.yinhe.web.servlet; import java.io.IOException; import java.lang.reflect
eclipse项目web.xml文件配置servlet映射
对于很多初学者在使用eclipse编写servlet小程序的时候,往往需要配置web.xml文件中的servlet项目。关于这个地方的配置说明网上的解释多如牛毛,但是对于初学者可能太过于高深,不能够很好的理解,这里笔者做一个简单的说明,帮助大家配置以及理解!             CheckAccount        com.ht.servlet.CheckAccount
Servlet 访问路径的三种配置方式
Servlet路径配置 在web.xml里面标签下的标签中配置。 配置路径的三种方式: 1.完全路径匹配: 以 / 开始 例如: /ServletDemo4 , /aaa/ServletDemo5 , /aaa/bbb/ServletDemo6 2.目录匹配: 以 / 开始 需要以 * 结束 例如: /*      (所有)  , /aaa/*    (aaa目录下的所有)  ,
Servlet虚拟路径映射
Servlet虚拟路径映射 在web.xml文件中,一个元素用于映射一个Servlet的对外访问路径,该路径也称为虚拟路径。例如/TestServlet,其中“/TestServlet”就是一个虚拟路径。 (1)Servlet的多重映射 Servlet的多重映射是指同一个Servlet可以被映射成多个虚拟路径,即客户端可以通过多个路径访问同一个Servlet,可以在标签中配置多个标签。示例如
关于javaWeb项目下(jsp/html)页面和Servlet之间的互相访问的路径问题详解
思考 在使用动态工程时,经常会遇到以下四个问题 1.从WebContent下的一个页面(或者WebContent下的一个文件夹的页面访问Servlet) 2.从Servlet转发或者重定向到WebContent下的一个页面(或者WebContent下的一个文件夹的页面) 3.WebContent下的两个页面之间的相互跳转(或者WebContent下的一个文件夹里面的两个页面之间的相互他跳转) 4....
Servlet URL映射中/和/*的区别
代码如下所示:<servlet-mapping> <servlet-name>main</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping><servlet-mapping> <servlet-name>main</servlet-name> <url-pattern>/</url-patter
Servlet的映射
Servlet的映射可以使用 注解 或 配置文件来实现,下面我用注解来写示例 并且,我给每个Servlet配置了不同的URL映射,如下所示: testServlet_1: testServlet_2:   testServlet_3:   testServlet_4:   为了区别这些Servlet,我给每个Servlet的Get方法里加了一行代码,如下: ...
java web中的各种servlet路径
一直搞不懂web中各种复杂的路径,直到现在还是觉得很杂乱,此文稍微列举一些方法得到的路径。 request.getServletContext()得到的是ServletContext对象,getRealPath(“/”) 获取实际路径,“/”指代项目根目录,所以代码返回的是项目在容器中的实际发布运行的根路径。 例如:我的tmall项目是在E:\project\tmall。 我在tomca...
java web项目ajax与servlet交互的路径问题
java web路径问题  在编写java web项目时,经常涉及前台与后台交互数据的问题,而在前端文件(html or jsp files)的文件位置不同,所使用的ajax上传的servlet路径也就需要相应的更改,而不是一成不变的。  在web.xml文件中配置的servlet如下:  这里的servlet路径设置的路径“ImportQuesServelt”相当于
javaweb配置jsp路径映射
访问放在WEB-INF文件夹下的jsp内容需要映射,例如:WEB-INF/views/GoToCloudstore4Bridge.jsp,在web.xml文件的 --------------------------------------------------------------------------------------------------------------------
eclipse 两种方式配置url到servlet的映射
方式一:web.xml配置url到servlet的映射 &amp;lt;web-app&amp;gt; &amp;lt;servlet&amp;gt; &amp;lt;servlet-name&amp;gt;firstservlet&amp;lt;/servlet-name&amp;gt; &amp;lt;!--就是给字节码取了个名字,随边取--&amp;gt; &amp;lt;servlet-class&amp;gt;com.oracle.WelcomeServlet&amp;lt;/s...
java web目录映射
在eclipse工程中,找到servers文件夹下的server.xml文件,修改内容如下:  &amp;lt;Host appBase=&quot;webapps&quot; autoDeploy=&quot;true&quot; name=&quot;localhost&quot; unpackWARs=&quot;true&quot;&amp;gt;         &amp;lt;!-- SingleSignOn valve, share authentication between we...
05 配置Servlet的映射路径
配置Servlet的映射路径 1.一个完整的Servlet包括Servlet类、&amp;lt;Servlet&amp;gt;配置、&amp;lt;Servlet-mapping&amp;gt;配置,缺一不可。 在&amp;lt;Servlet&amp;gt;&amp;lt;/Servlet&amp;gt;中配置Servlet名称与类名: &amp;lt;servlet&amp;gt; &amp;lt;servlet-name&amp;gt;&amp;lt;/servlet-name&amp;gt;
web.xml中servlet配置及其含义
这里其实最想说的是配置中各节点的含义: ServletDemo lm.practice.ServletDemo ServletDemo /servlet 可以看到,在配置Servlet时,有两个地方需要配置,一个是servlet>,另一个是servlet-Mapping>,这两个一个是配置Serv
IntelliJ IDEA 创建Servlet,通过urlPatterns配置路径(当然也可以在web.xml中设置)
新建一个servlet 文件  配置urlPatterns参数
在web.xml中配置servlet的URL映射后,浏览器访问出错
在一些servlet教程中,给出的servlet的URL映射配置方式是,在web.xml中添加servlet元素和servlet-mapping元素: &amp;lt;servlet&amp;gt; &amp;lt;servlet-name&amp;gt;ServletDemo01&amp;lt;/servlet-name&amp;gt; &amp;lt;servlet-class&amp;gt;yangjie.servlet.study.Serv...
Servlet3.0及以上如何重写@WebServlet映射
@WebServlet简介@WebServlet标注允许servlet映射声明在servlet代码,作用同通过映射部署描述符(web.xml)文件的servlet.简单示例:package com.test.z;import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException;
Servlet的多重映射
虚拟路径在web.xml文件中,一个<Servlet-mapping>元素 用于映射一个Servlet的对外访问路径,该路径称为虚拟路径 比如HelloWorldServlet,映射的虚拟路径为 /HelloWorldServlet 创建好Servlet的虚拟路径,客户端才能对其进行访问Servlet的多重映射是指同一个Servlet,可以被映射成多个虚拟路径 客户端可以通过多个路径,实现
servlet的缺省路径
1.缺省路径的写法: / 或者是 /* 2.在配置url路径的时候千万不要配置缺省路径,一旦配置缺省路径,那么会导致整个工程的所有静态资源都无法使用。 3.不能配置缺省路径的原因: 因为静态的web资源是需要通过DefaultServlet程序去读取的,而这个DefaultServlet的映射路径就是写缺省路径,     如果你的工程一旦配上缺省路径,那么就到DefaultServl...
Springmvc项目web.xml中servlet-mapping的路径映射配置注意事项
今天准备在IDEA编辑器下创建个通过maven管理的springMVC工程来测试一些功能,按照记忆中的方式以及配合百度完成了工程的创建,但在访问web.xml中配置的首页时,无论如何都无法访问,试了很多方式,但都不是很理想,无意间仔细看了下下的映射规则,再结合自己的尝试,算是解决了心中的疑惑,也总结下自己的心得: 其他的配置暂且略去,主要关注属性的配置; 最初的配置: &amp;amp;amp;amp;amp;amp;amp;lt;servlet-...
Servlet映射路径
关于url-pattern的配置: 完全路径匹配  以/开头   例如   /aaa     /aaa/bbb 目录匹配         以/开头   例如   /aaa/*      /* 扩展名匹配     不能以/开头    例如    *.do     *.action    ... 优先级:完全路径匹配&amp;gt;目录匹配&amp;gt;扩展名匹配 经典错误:/*.do  ...
jsp中的表单form action指向servlet类
1.文件    2.页面联系 addStudent.jsp是学生信息添加页面,当信息填写完毕点击提交按钮时,AddStudentServlet处理用户请求,处理完毕后跳转到message1.jsp页面。 AddStudentServlet.java中代码为: package ch01; import java.io.IOException; import javax.servlet.Se
SpringMVC学习-DispatcherServlet中的映射路径和编码过滤器
一.DispatcherServlet中的映射路径 SpringMVC org.springframework.web.servlet.DispatcherServlet 1 SpringMVC / 1)拦截所有请求 此处需要特别强调的是 /使用的是/,而不是/*,如果使用/*,那么请求时可以通过DispatcherServlet转发到相应的Controller中
用注解来实现servlet和url的映射
1.修改web.xml 文件web-app属性 metadata-complete="false"   该属性默认为true Servlet 3.0 的部署描述文件 web.xml 的顶层标签 有一个 metadata-complete 属性,该属性指定当前的部署描述文件是否是完全的。如果设置为 true,则容器在部署时将只依赖部署描述文件,忽略所有的注解(同时也会跳过 web-fragmen
Servlet中web.xml映射问题之访问路径报错-404
1.web.xml中       AdminServlet     /AdminServlet   2.jsp 中 ................ 问题:/AdminServlet中/AdminServlet一定要和${pageContext.request.contextPath}/AdminServlet中的/AdminServlet 一一对应,否则报404
Servlet的两种映射方式
第一种: 在web.xml中配置&amp;lt;servlet-name&amp;gt;、&amp;lt;servlet-class&amp;gt;、&amp;lt;servlet-name&amp;gt;、&amp;lt;url-pattern&amp;gt;等信息 第二种: 使用@WebServlet注解 举例: 第一种: &amp;lt;servlet&amp;gt;     &amp;lt;servlet-name&amp;gt;TestServlet&amp;lt;/servl...
【总结】servlet mapping url 配置中的 / 和 /* 的区别
web.xml的配置中,关于的配置,/和/*到底什么区别之 (总结篇)。 [code=&quot;java&quot;] spring /* spring / [/code] [b]/* 的意思是“所有的请求” / 的意思是“所有的末被其它servlets接收并处理的请求”。[/b] 比如在String的DispatcherServlet中,如果用...
javaWeb基础之Servlet的三种实现方式以及两种配置方式
一、Servlet的三种实现方式 Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。 1、Servlet的第一种创建方式:继承HttpServlet(最优)       重写doGet(HttpServletRequest request, HttpS...