SpringMVC权限和资源的安全访问(一)

一、静态资源的访问, css、js、static页面

我们知道SpringMVC的核心配置是DispatcherServlet,我们所有的请求都要经过Servlet

<servlet>

   <servlet-name>springMVC</servlet-name>

  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

 <init-param>

    <param-name>contextConfigLocation</param-name>

    <param-value>classpath*:/spring-mvc.xml</param-value>

</init-param>

</servlet>


<servlet-mapping>

     <servlet-name>springMVC</servlet-name>

    <url-patten> / </url-patten>   // 这里是 / , 也就是spring会拦截所有请求,如果是.do,.action则不用看下面的静态资源处理了

</servlet-mapping>


由于这里我配置的是 / ,会拦截所有,所以会拦截css、js、 static页面当然你也可以配置.action或.do;但不要配 /*

1、激活容器如tomcat、Jetty的defaultServlet来处理静态页面,这里的<servlet-mapping>要在SpringMVC的Servlet上面

<servlet-mapping>

    <servlet-name>default</servlet-name>

   <url-patten>*.css</url-patten>

</servlet-mapping>

<servlet-mapping>

    <servlet-name>default</servlet-name>

   <url-patten>*.js</url-patten>

</servlet-mapping>

<servlet-mapping>

    <servlet-name>default</servlet-name>

   <url-patten>*.png</url-patten>

</servlet-mapping>

如果图片还有其他格式的,再添加改配置


简便的方式配置是

<servlet-mapping>

    <servlet-name>default</servlet-name>

   <url-patten>*.css</url-patten>

  <url-patten>*.js</url-patten>

  <url-patten>*.png</url-patten>

  <url-patten>images/*</url-patten>

   <url-patten>static/*</url-patten>

</servlet-mapping>


不同服务容器的servlet-name不一样

Tomcat, Jetty, JBoss, GlassFish 默认Servlet名字:default

Google App Engine 默认Servlet名字: _ah_default

Resin 默认Servlet名字:resin-file

WebLogic 默认名字:FileServlet

WebSphere 默认Servlet名字: SimpleFileServlet


2、spring3.0.4之后使用<mvc:resources mapping=""   location="" />

在spring-mvc.xml配置中增加

<mvc:resources mapping="/images/**"  location="/images/"  />

<mvc:resources mapping="/js/**"  location="/js/"   />

location表示资源文件所在路径,默认是在webapp下面;如果要放在WEB-INF下面,则location="/WEB-INF/images/"

3、 <mvc:default-servlet-handler />
这种方式的访问性能比较差,这种相当于在把"/**" 注册到SimpleUrlHandlerMapping的urlMap中,把对静态资源的访问由HandlerMapping转到org.springframework.servlet.resource.DefaultServletHttpRequestHandlet处理并返回
DefaultServletHttpRequestHandler就是各个Servlet容器自己默认的Servlet

多个HandlerMapping执行顺序:

DefaultAnnotationHandlerMapping的order属性值:0
<mvc:resources />自动注册的SimpleUrlHandlerMapping的order属性值是: 2147483646

<mvc:default-servlet-handler />自动注册的SimpleUrlHandlerMapping的 order属性值是:2147483647


下一篇主要说下SpringMVC拦截器对权限的验证,后面再通过apache的shrio权限验证框架说下认证和授权






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值