urlpattern?配置servlet时<url-pattern>的作用是
你是否对于urlpattern和配置servlet时<url-pattern>的作用是感到困惑?别担心,今天小编将为您揭开这个谜团,让我们一同探索吧!
配置servlet时<url-pattern>的作用是
首先要知道url-pattern是什么,为什么要设置,不设置有什么影响,如果要设置应该怎样设置
1、什么是url-pattern
简单说 servlet-mapping是用于servlet的路径映射配置,其中url-pattern为指定的映射拦截路径。在SpringMVC中,url-pattern指定了spring需要拦截派发的路径。
实际中,用户发送一个请求,该请求只要满足web.xml文件中的【url-pattern】的规则,这个请求就会交给这个前端控制器(DispatcherServlet),然而前端控制器在收到请求后自己不进行任何处理,根据相应的【URL的映射规则】委托给其他的页面控制器进行处理请求。前端控制器只作为一个统一的访问点,进行全局的流程控制,可以理解为调度(Dispatcher)。
也就是说如果不符合规则,就会被拦截。这有点像寄信,前端控制器类似邮局,寄信人寄一封信(请求),如果收件人地址(请求路径)符合规则且正确,那么这封信就会被准确投递(访问成功),否则只能退回。至于信件里面有什么内容,要不要回信,由收件人自己去处理。
2、如何设置
url-pattern有5种配置模式:
(1)/xxx:完全匹配/xxx的路径
(2)/xxx/*:匹配以/xxx开头的路径,请求中必须包含xxx。
(3)/*:匹配/下的所有路径,请求可以进入到action或controller,但是转发jsp时再次被拦截,不能访问jsp界面。
(4).xx:匹配以xx结尾的路径,所有请求必须以.xx结尾。比如拦截*.do、*.htm结尾的,例如:/user/add.do,但不会影响访问静态文件。
(5)/:默认模式,未被匹配的路径都将映射到此servlet,对jpg,js,css等静态文件也将被拦截,不能访问。
在web.xml的配置文件中url-pattern具体表示什么意思
首先要知道 web.xml中url-pattern的作用,他是给外部提供的一个访问DoGetDemo类的接口
你可以自己随意定义,然后在IE里面写入这个配置内容。
可以看我给你写的一个例子图片,应该一下就看懂的
用 SimpleHello.java为例
看图片,访问的时候,可以输入下面的网址
http:// 192.168.0.67:8888/book/hello
这样,服务器就可以通过
<url-pattern>/hello</url-pattern>
找到ch06.SimpleHello类
因此你的<url-pattern></url-pattern>里面的内容可以自己定义。然后在应用目录下访问这个servlet
图片如果看不清,可以在点查看大图后,在图片上单击别放开,鼠标略微移出图片的内容,就会在IE里面显示原始大小的图。
servlet在web.xml中怎么配置url-pattern
首先要知道web.xml中url-pattern的作用,他是给外部提供的一个访问DoGetDemo类的接口
你可以自己随意定义,然后在IE里面写入这个配置内容。
可以看我给你写的一个例子图片,应该一下就看懂的
用SimpleHello.java为例
看图片,访问的时候,可以输入下面的网址
http://192.168.0.67:8888/book/hello
这样,服务器就可以通过
<url-pattern>/hello</url-pattern>
找到ch06.SimpleHello类
因此你的<url-pattern></url-pattern>里面的内容可以自己定义。然后在应用目录下访问这个servlet
图片如果看不清,可以在点查看大图后,在图片上单击别放开,鼠标略微移出图片的内容,就会在IE里面显示原始大小的图。
filter过滤器url-pattern如何设定
filter的url-pattern的设置、多个url-pattern
当前报表采用如下filter处理ec的excel导出,并且这个filter被封装好了的<filter><filter-name>eXtremeExport</filter-name><filter-class>org.extremecomponents.table.filter.ExportFilter</filter-class></filter><filter-mapping><filter-name>eXtremeExport</filter-name><url-pattern>*.report</url-pattern></filter-mapping>
有其它页面也用到了ec,也需要导出excel,但是后缀以action结尾,且只有2个特别的url("action1.action"、"action2.action")需要导出excel,尝试这么写不行<filter-mapping><filter-name>eXtremeExport</filter-name><url-pattern>action1.action</url-pattern></filter-mapping>这么写可以
<filter><filter-name>drpEcExportFilter</filter-name><filter-class>com.common.filter.DrpEcExportFilter</filter-class></filter><filter-mapping><filter-name>drpEcExportFilter</filter-name><url-pattern>*.action</url-pattern></filter-mapping><filter-mapping><filter-name>drpEcExportFilter</filter-name><url-pattern>*.multidimensionalreport</url-pattern></filter-mapping>但是不够精确
于是采用继承的方式共享.DrpEcExportFilter,而url的处理由自己控制<filter-name>drpEcExportFilter</filter-name><filter-class>com.common.filter.DrpEcExportFilter</filter-class></filter><filter-mapping><filter-name>drpEcExportFilter</filter-name><url-pattern>*.action</url-pattern></filter-mapping>
其中DrpEcExportFilter.java的代码-------------------------------------------------------------------------------------------------------package com.common.filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils;import org.extremecomponents.table.filter.ExportFilter;
public class DrpEcExportFilter extends ExportFilter implements Filter{
public void destroy(){ super.destroy();}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException{ HttpServletRequest hrequest=(HttpServletRequest)request; String requestURI= hrequest.getRequestURI(); if(StringUtils.isNotEmpty(requestURI)&&(requestURI.indexOf("action1.action")!=-1|| requestURI.indexOf("action2.action")!=-1)){ super.doFilter(request, response, chain);} else{ chain.doFilter(request, response);}}
public void init(FilterConfig config) throws ServletException{ super.init(config);}
}
以上是本人福沃德滤器回答,有需要请搜索福沃德滤器。
好了,关于urlpattern和配置servlet时<url-pattern>的作用是的问题到这里结束啦,希望可以解决您的问题哈!