springmvc入门基础之配置方式

1、Spring下载地址

http://repo.spring.io/release/org/springframework/spring/

2、SpringMVC核心类和接口

 1.DispatcherServlet:分发控制器,它自动将请求给转发到具体的控制类
 2.HandlerMapping(接口):映射处理器,负责映射分发控制器转发给controller时的映射策略

     HandlerMapping(实现类):

     SimpleUrlHandlerMapping  通过配置文件,把一个URL映射到Controller

     DefaultAnnotationHandlerMapping  通过注解,把一个URL映射到Controller类上

3.Controller:具体处理请求的控制器,由于注解中使用了@Controller,添加了@Controller注解注解的类就可以担任控制器的职责,所以我们并不需要直接实现这个接口。

4.HandlerInterceptor(接口):拦截器,负责拦截我们定义的请求然后做处理工作。

5.ModelAndView:服务层返回的数据和视图层的封装类
6.ViewResolver(接口):视图解析器,解析具体的视图
ViewResolver的实现类

UrlBasedViewResolver类 通过配置文件,把一个视图名交给到一个View来处理

InternalResourceViewResolver类,比上面的类,加入了JSTL的支持

7.HandlerExceptionResolver(接口):异常处理

SimpleMappingExceptionResolver实现类

2、SpringMVC的第一个例子

1. 创建一个web工程

2. 导入依赖包

3.创建springmvc的配置文件

配置DispatcherServlet:

使用Spring MVC,配置DispatcherServlet是第一步。
DispatcherServlet是一个Servlet,所以可以配置多个DispatcherServlet。
DispatcherServlet是前置控制器,配置在web.xml文件中的。拦截匹配的请求,Servlet拦截匹配规则要自已定义,把拦截下来的请求,依据自定义规则分发到目标Controller来处理。 

<servlet>
	<servlet-name>springmvc</servlet-name>
	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
	<servlet-name>springmvc</servlet-name>
	<url-pattern>*.do</url-pattern>
</servlet-mapping>

  <load-on-startup>1</load-on-startup>是启动顺序,让这个Servlet随Servletp容器一起启动。

    <url-pattern>*.do</url-pattern> 会拦截*.do结尾的请求。

4.创建Controller,需要实现或者继承Controller接口或者子类

public class TestController extends AbstractController {
	@Override
	protected ModelAndView handleRequestInternal(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		System.out.println(new Date() + ": hello SpringMVC!");
		//转到index.jsp页面
		return new ModelAndView("index");
	}
}
5.创建springmvc的核心配置文件

文件的命名规则:servlet的名称+“-servlet.xml”,如 springmvc-servlet.xml

默认位置:WEB-INF下 

配置:Controller和视图解析器

<!-- 使用默认的映射处理器来映射controller -->
<bean id="testController" name="/hello.do"
	class="org.study1.mvc.controller.TestController"></bean>

<!-- 前缀+ viewName +后缀 -->
<bean
	class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	<!-- WebContent(WebRoot)到某一指定的文件夹的路径 ,如下表示/WEB-INF/view/*.jsp -->
	<property name="prefix" value="/WEB-INF/view/"></property>
	<property name="suffix" value=".jsp"></property>
</bean>

常见三种handlerMapping: 

<!-- 映射处理器之间是独立的,不相互影响 -->
<!-- 1、默认的映射处理器 -->
<bean
	class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>

<!-- 2、简单url的映射处理器 -->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
	<property name="mappings">
		<props>
			<prop key="/hello1.do">testController</prop>
		</props>
	</property>
</bean>

<!-- 3、控制器的类名映射处理器,访问的时候类名首字母小写,且不要忘记+自己定义的后缀,此处为.do -->
<bean
	class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping">
</bean>

相关推荐