"Spring3_MVC_基础实践之路"
在学习Spring3 MVC的基础实践时,我们需要了解以下几个关键知识点:
1. **web.xml配置**: 想要启用Spring MVC,需要在`web.xml`中配置`DispatcherServlet`。这包括定义servlet的名称、类以及初始化参数。初始化参数`contextConfigLocation`指定了Spring MVC的配置文件位置,可以有多种写法,如不写(默认值)、指定具体路径或使用classpath。示例中指定了`/WEB-INF/classes/springMVC.xml`。
2. **Spring MVC配置文件**: `springMVC-mvc.xml`是Spring MVC的配置文件,它通常包含视图解析器、处理器映射器、拦截器、数据绑定和其他组件的配置。内容可能包括`<bean>`标签定义的控制器、拦截器、视图解析器等元素。
3. **Servlet拦截URL**: `servlet-mapping`元素配置了`springMVC` servlet拦截的URL模式,`<url-pattern>/</url-pattern>`表示拦截所有以斜杠开头的请求。
4. **访问静态资源**: Spring MVC通过配置可以允许访问静态资源,如图片(jpg)、JavaScript(js)、CSS文件。默认情况下,Spring MVC不会处理这些请求,但可以通过配置`ResourceHandlerRegistry`来添加映射规则,让它们不受拦截器影响。
5. **请求映射**: 请求映射是将HTTP请求与控制器方法关联的过程。这通常通过在控制器类的方法上使用`@RequestMapping`注解完成,可以指定URL模板、HTTP方法等。
6. **Spring MVC拦截器**: 拦截器可以用于执行通用的任务,如登录检查、日志记录等。通过在`springMVC-mvc.xml`中配置`<mvc:interceptors>`,并定义`<bean>`来创建拦截器类实例。
7. **权限控制**: 拦截器可以用来控制权限,例如在用户尝试访问受保护的页面之前检查其登录状态。在拦截器中实现逻辑,如果用户未登录则重定向到登录页面。
8. **全局异常处理**: 为了统一处理应用程序中的异常,可以创建一个专门的异常处理器类,并在`springMVC-mvc.xml`中配置。这样,任何未被捕获的异常都会被这个处理器捕获并进行相应处理。
9. **日志记录**: 异常处理中,可以记录异常信息到日志文件,通常使用如Log4j、Logback这样的日志框架。在异常处理器中,使用日志API将异常信息记录下来。
10. **JUnit单元测试**: 对Spring MVC控制器进行单元测试,可以使用MockMVC和JUnit结合。MockMVC模拟了请求和响应,使得在没有服务器环境的情况下也能测试控制器的行为。
11. **转发与重定向**: 转发(`RequestDispatcher.forward()`)是在服务器端内部将请求传递给另一个资源,而重定向(`Response.sendRedirect()`)会发送一个新的HTTP响应,让客户端重新发起请求。在Spring MVC中,可以通过`ModelAndView`或`RedirectView`来实现。
12. **处理AJAX请求**: Spring MVC支持处理AJAX请求,通常通过在控制器方法中返回JSON数据或更新特定的视图片段。使用`@ResponseBody`注解可以让方法直接返回JSON,而`@ExceptionHandler`可以捕获并处理AJAX请求中的异常。
以上就是Spring3 MVC基础实践中的关键点,掌握了这些,就能搭建起基本的Spring MVC应用,并进行更高级的功能开发。