为了账号安全,请及时绑定邮箱和手机立即绑定

在/*上映射全局前端控制器servlet时如何访问静态资源

在/*上映射全局前端控制器servlet时如何访问静态资源

慕村9548890 2019-06-28 17:29:09
在/*上映射全局前端控制器servlet时如何访问静态资源我将SpringMVC调度器映射为全局前端控制器servlet/*.<servlet>          <servlet-name>home</servlet-name>            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>     </servlet>  <servlet-mapping>          <servlet-name>home</servlet-name>            <url-pattern>/*</url-pattern>     </servlet-mapping>但是,此映射将停止对CSS、JS、图像等静态文件的访问,这些文件都位于/res/文件夹。我怎么能访问他们呢?
查看完整描述

3 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

我也遇到过这个问题,但从来没有找到一个很好的解决方案。最后,我在URL层次结构中映射了一个级别的servlet:

<servlet-mapping>       
  <servlet-name>home</servlet-name>             
  <url-pattern>/app/*</url-pattern>     </servlet-mapping>

现在,基本上下文(和/res目录中的所有内容)都可以由容器提供。


查看完整回答
反对 回复 2019-06-28
?
白衣非少年

TA贡献1155条经验 获得超0个赞

将控制器servlet映射到更具体的url-pattern喜欢/pages/*,将静态内容放在特定的文件夹中,如/static并创建一个Filter倾听/*它透明地继续对任何静态内容的链,并向控制器servlet发送其他内容的请求。

简而言之:

<filter>
    <filter-name>filter</filter-name>
    <filter-class>com.example.Filter</filter-class></filter><filter-mapping>
    <filter-name>filter</filter-name>
    <url-pattern>/*</url-pattern></filter-mapping><servlet>
    <servlet-name>controller</servlet-name>
    <servlet-class>com.example.Controller</servlet-class></servlet><servlet-mapping>
    <servlet-name>controller</servlet-name>
    <url-pattern>/pages/*</url-pattern></servlet-mapping>

在过滤器中包含以下内容doFilter():

HttpServletRequest req = (HttpServletRequest) request;String path = req.getRequestURI().substring(req.getContextPath().length());if (path.startsWith("/static")) {
    chain.doFilter(request, response); // Goes to default servlet.} else {
    request.getRequestDispatcher("/pages" + path).forward(request, response);}

不,这不会以/pages在浏览器地址栏中。完全透明。如果必要的话你可以"/static"和/或"/pages"init-param过滤器的。


查看完整回答
反对 回复 2019-06-28
?
慕慕森

TA贡献1856条经验 获得超17个赞

带着春季3.0.4你可以用更高的

<mvc:resources mapping="/resources/**" location="/public-resources/"/>

如图所示弹簧参考.


查看完整回答
反对 回复 2019-06-28
  • 3 回答
  • 0 关注
  • 639 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信