Spring mvc配置
spring mvc是基于DispatcerServlet的mvc架构,
请求先访问 DispatcherServlet,然后DispatcherServlet再转发请求到要应的handler,
httpservlet是在web.xml中配置的
Web.xml的配置
如果没有定义 servlet.xml 则根据架构定义 ,默认的servlet是在web-inf目录 下。名称为*-servlet.xml
<!-- Spring MVC配置 -->
<!-- ====================================== -->
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 可以自定义servlet.xml配置文件的位置和名称,默认为WEB-INF目录下,名称为[<servlet-name>]-servlet.xml,如spring-servlet.xml
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-servlet.xml</param-value> 默认
</init-param>
-->
<load-on-startup>1</load-on-startup>
</servlet>
Spring-servlet.xml配置
<!-- 启用spring mvc 注解 -->
<context:annotation-config />
<!-- 设置使用注解的类所在的jar包 -->
<context:component-scan base-package="controller"></context:component-scan>
<!-- 完成请求和注解POJO的映射 -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
<!-- 对转向页面的路径解析。prefix:前缀, suffix:后缀 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/jsp/" p:suffix=".jsp" />
Controller
@Controller //类似Struts的Action
public class TestController {
@RequestMapping("test/login.do") // 请求url地址映射,类似Struts的action-mapping
public String testLogin(@RequestParam(value="username")String username, String password, HttpServletRequest request) {
// @RequestParam是指请求url地址映射中必须含有的参数(除非属性required=false)
// @RequestParam可简写为:@RequestParam("username")
if (!"admin".equals(username) || !"admin".equals(password)) {
return "loginError"; // 跳转页面路径(默认为转发),该路径不需要包含spring-servlet配置文件中配置的前缀和后缀
}
return "loginSuccess";
}}
核心组件:
DispatcherServlet (前端控制器, 处理请求的入口,spring mvc的核心,一般在服务器启动时初始化)
HandlerMapping (映射器对象, 用于管理url与对应controller的映射关系)
Interceptors(拦截器,实现请求响应的共性处理)
Controller (后端控制器, 负责处理请求的控制逻辑)
ViewResolver(视图解析器,解析对应的视图关系:前缀+view+后缀)
参考:
还不快抢沙发