新手在学习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>
- <context-param>
- <param-name>context/param</param-name>
- <param-value>avalible during application</param-value>
- </context-param>
- <servlet>
- <servlet-name>MainServlet</servlet-name>
- <servlet-class>com.wes.controller.MainServlet</servlet-class>
- <init-param>
- <param-name>param1</param-name>
- <param-value>avalible in servlet init()</param-value>
- </init-param>
- <load-on-startup>0</load-on-startup>
- </servlet>
第二种参数只能在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(加盐值)加密后与数据库里的密文进行匹配。