Spring MVC 框架pom.xml, web.xml, spring-mvc-servlet.xml, security.xml相关知识学习

新手在学习Spring框架时, 对了上面提到的xml文件里很多语法都不太理解.

本文的目的, 是记录在学习SPRING MVC的过程中, 遇到的疑问, 后续不断更新.

所有知识都是网上百度而来, 不一一列举来源.


一.  context-param & init-param 

参考: http://blog.csdn.net/fupengyao/article/details/50605954


作用: 
1. 启动一个WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml.读两个节点: <listener></listener> 和 <context-param></context-param>
2.紧接着,容器创建一个ServletContext(上下文),这个WEB项目所有部分都将共享这个上下文.
3.容器将<context-param></context-param>转化为键值对,并交给ServletContext.
4.容器创建<listener></listener>中的类实例,即创建监听.
5.在监听中会有contextInitialized(ServletContextEvent args)初始化方法,在这个方法中获得ServletContext = ServletContextEvent.getServletContext();
区别:
(1)application范围内的参数,存放在servletcontext中,在web.xml中配置如下:
  1. <context-param>  
  2.            <param-name>context/param</param-name>  
  3.            <param-value>avalible during application</param-value>  
  4. </context-param>  
(2)servlet范围内的参数,只能在servlet的init()方法中取得, 在web.xml中配置如下:
  1. <servlet>  
  2.     <servlet-name>MainServlet</servlet-name>  
  3.     <servlet-class>com.wes.controller.MainServlet</servlet-class>  
  4.     <init-param>  
  5.        <param-name>param1</param-name>  
  6.        <param-value>avalible in servlet init()</param-value>  
  7.     </init-param>  
  8.     <load-on-startup>0</load-on-startup>  
  9. </servlet> 

第一种参数在servlet里面可以通过getServletContext().getInitParameter("context/param")得到

第二种参数只能在servlet的init()方法中通过this.getInitParameter("param1")取得.


二, filter, filter-class, filter-mapping

如下: 

filter-class 为过滤器Filter类,init-prama为注入的set参数

Filter-mapping中的url-pattern为过滤的url类型

<!-- 编码处理过滤器 -->

   <filter>
      <filter-name>encodingFilter</filter-name>
      <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
      <init-param>
         <param-name>encoding</param-name>
         <param-value>utf-8</param-value>
      </init-param>
      <init-param>
         <param-name>forceEncoding</param-name>
         <param-value>true</param-value>
      </init-param>
    </filter>
   <filter-mapping>
       <filter-name>encodingFilter</filter-name>
       <url-pattern>*.do</url-pattern>
    </filter-mapping>


三.  Spring-mvc-security.xml相关知识

以下知识参考: http://blog.csdn.net/column/details/15776.html


Ø  Web/Http 安全:这是最复杂的部分。通过建立filter和相关的service bean来实现框架的认证机制。当访问受保护的URL时会将用户引入登录界面或者是错误提示界面。

Ø  业务对象或者方法的安全:控制方法访问权限的。

Ø  AuthenticationManager:处理来自于框架其他部分的认证请求。

Ø  AccessDecisionManager:为Web或方法的安全提供访问决策。会注册一个默认的,但是我们也可以通过普通bean注册的方式使用自定义的AccessDecisionManager。

Ø  AuthenticationProvider:AuthenticationManager是通过它来认证用户的。

Ø  UserDetailsService:跟AuthenticationProvider关系密切,用来获取用户信息的。

3.1  auto-config

 当指定http元素的auto-config=”true”时,就相当于如下内容的简写。

   <security:http>

      <security:form-login/>

      <security:http-basic/>

      <security:logout/>

   </security:http>

3.2 <password-encoder hash="md5" >  直接配置 hash = 'md5' 等效于单独配置
<bean id="encoder" class="org.springframework.security.authentication.encoding.Md5PasswordEncoder" />
这样,登录时输入的用户密码将会使用md5(加盐值)加密后与数据库里的密文进行匹配。

猜你喜欢

转载自blog.csdn.net/hui85206/article/details/79387162
今日推荐