该篇笔记参考了网上部分文章,仅仅作为学习之后的笔记
1、默认欢迎页的设置
设置某路径的下的jsp文件(根目录是webapp)
<welcome-file-list> <welcome-file>/jsp/login.jsp</welcome-file> </welcome-file-list>
此处如果jsp页面上需要有后台查询的参数,需要转向servlet,这时候直接像下面这么写,欢迎页是出不来的,还需要在webapp下建一个文件夹,然后建一个文件名为userList.do文件。然后加上我们的springMVC拦截器。Tomcat知道这个静态文件的存在,去请求的时候,被拦截器拦截了,转向了动态请求
<welcome-file-list> <welcome-file>user/userList.do</welcome-file> </welcome-file-list>
附上springMVC的配置
<!-- Spring MVC 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>/WEB-INF/spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> <async-supported>true</async-supported> </servlet>
还有一个办法就是在 ‘<welcome-file>’里写上jsp,然后在jsp里面进行重定向
<jsp:forward page='/user/userList'></jsp:forward>
<welcome-file-list>里可以写多个<welcome-file>越上面的优先级越高,当不存在的时候,才会去尝试请求下一个。
2、命名与定制URL
<servlet> <servlet-name>SpringMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> <async-supported>true</async-supported> </servlet> <servlet-mapping> <servlet-name>SpringMVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
servlet名为SpringMVC,所有/文件都会经过DispatcherServlet的处理,<init-param>的是用于定制初始化参数的,getServletCofig.getInitParameter('')可以获取参数名对应的值
load-on-startup:是指改servlet是否在启动时就加载(实例并初始化),里面的值必须为整数,小于0或没有指定的时候表示,只有在被选择的时候才去加载。大于0表示,在启动的时候就初始化并加载该servlet,且正数越小优先级越高,当值相等的时候,就自己选择顺序来加载。
async-supported:异步支持,true为启用异步支持。
--------
上下文参数
<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param>
在servlet里可以通过 getServletContext.getInitParamter("")得到初始化参数
3、错误页面设置
可以通过异常类型或者错误码来指定错误处理页面
<error-page> <error-code>404</error-code> <location>/error.jsp</location> </error-page> -------------------------------------------------------------------- <error-page> <exception-type>java.lang.NullException</exception-type> <location>/error.jsp</location> </error-page>
4、设置过滤器
过滤器可以拦截请求,对请求/响应进行设置编码、业务逻辑判断、拦截等操作,当用户访问一个页面的时候,请求会先经过过滤器的处理,最后才到达servlet
<filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <async-supported>true</async-supported> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
过滤器名:filter-name --- 过滤器的实现类 filter-class ----初始化参数:init-param ----初始化参数名---初始化参数值
filter-mapping这一块是为了将过滤器映射到servlet或者url中,跟web资源关联起来。所以里面就是设置 上面声明的过滤器的名字,然后url-pattern中写入过滤器映射的url,这里的/*是指全部URL
5、设置监听器(捕捉服务器的启动和停止,在启动/停止触发方法做相应的操作)
applictaion,session,,request三个对象创建、销毁或往其中添加修改删除属性时自动执行代码的功能组件,可以监听客户端的请求,服务端的操作等
监听器可以分为三类
servletContext监听(用于对servlet整个上下文进行监听(创建、销毁))
servletContextAttributeListener(对Servlet上下文属性进行监听)
session监听(对session创建、销毁、增删改属性等等状态的监听)
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
listener-class是监听器类的完整路径
6、设置会话(Session)过期时间,以分钟为单位
<session-config> <session-timeout>60</session-timeout> </session-config>
7、与*的区别
<url-pattern>/*</url-pattern>
所有请求都会被捕捉过滤
<url-pattern>/</url-pattern>
不会拦截*.jsp
8、<url-pattern>与<servlet-class>
<url-pattern>:表明什么格式的url进入这个servlet
<servlet-class>:表明哪个java类来处理这个请求。
当客户端发出请求的时候,先到servlet-mapping中,根据请求的url所对应的url-pattern,来进行过滤,在到servlet-class中,找到处理的java类来处理这个请求