您的位置:首页 > 编程语言 > Java开发

【spring配置】——springMVC配置

2016-01-10 15:30 483 查看
Spring所有的配置都可以分为XML和Annotation两种。

首先需要导入Spring的jar包,然后在项目的web.xml中配置dispatchServlet。

<!-- SpringMVC拦截器 -->
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:/application-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>


xml配置方式:

1.使用BeanNameUrlHandlerMapping/SimpleControllerHandlerAdapter

使用SimpleControllerHandlerAdapter需要Controller实现Controller接口:

package com.xy.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

/**
* SpringMVC xml配置方式Controller
* 必须实现Controller接口
* @author javaw
*
*/
public class TestController implements Controller {

public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception {
return new ModelAndView("test").addObject("id", "123");
}

}
xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<!--
****************
SpringMVC配置文件
1.xml配置方式
****************
-->
<!--
Xml配置方式
映射器:org.springframework.web.servlet.hadler包下
BeanNameUrlHandlerMapping
SimpleUrlHandlerMapping
适配器:org.springframework.web.servlet.mvc包下
SimpleControllerHandlerAdapter(Controller实现Controller接口)
HttpRequestHandlerAdapter(Controller实现HttpRequestHandler接口)
视图解析器:org.springframework.web.servlet.view.InternalResourceViewResolver
-->
<!-- 定义Controller访问的路径 -->
<bean name="/toTestPage.do" class="com.xy.controller.TestController"/>

<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>

<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>

<!-- jsp页面 prefix:前缀, suffix:后缀 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/"/>
<property name="suffix" value=".jsp"/>
</bean>

</beans>
访问链接:



2.使用SimpleUrlHandlerMapping/HttpRequestHandlerAdapter

使用HttpRequestHandlerAdapter需要实现HttpRequestHandler接口,且request.getRequestDispatcher("")的地址需要指定全路径;

package com.xy.controller;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.HttpRequestHandler;

public class TestController1 implements HttpRequestHandler{

public void handleRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.getRequestDispatcher("/WEB-INF/test.jsp").forward(request, response);
}
}
xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<!--
****************
SpringMVC配置文件
1.xml配置方式
****************
-->
<!--
Xml配置方式
映射器:org.springframework.web.servlet.hadler包下
BeanNameUrlHandlerMapping
SimpleUrlHandlerMapping
适配器:org.springframework.web.servlet.mvc包下
SimpleControllerHandlerAdapter(Controller实现Controller接口)
HttpRequestHandlerAdapter(Controller实现HttpRequestHandler接口)
视图解析器:org.springframework.web.servlet.view.InternalResourceViewResolver
-->
<!-- 定义Controller访问的路径 -->
<bean id="toTestPage" class="com.xy.controller.TestController1"/>

<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/toTestPage1.do">toTestPage</prop>
</props>
</property>
</bean>

<bean class="org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter"></bean>
</beans>
访问链接:



Annotation配置方式

配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<!--
****************
SpringMVCannotation配置文件
****************
-->

<!--
Annotation配置方式
spring3.1之前:org.springframework.web.servlet.mvc.annotation
适配器:AnnotationMethodHandlerAdapter
映射器:DefaultAnnotationHandlerMapping
spring3.1之后; org.springframework.web.servlet.mvc.method.annotation
适配器:RequestMappingHandlerAdapter
映射器:RequestMappingHandlerMapping
视图解析器:org.springframework.web.servlet.view.InternalResourceViewResolver
-->
<!-- 开启自动扫描 -->
<context:annotation-config/>

<!-- SpringMVC只扫描@Controller -->
<context:component-scan base-package="com.xy.controller">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<!-- <context:include-filter type="regex" expression="com.xy.controller.*Controller"/> -->
</context:component-scan>

<!-- 静态资源拦截访问 -->
<mvc:resources mapping="/resources/**" location="/resources/"/>

<!-- 完成请求和注解POJO的映射 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
<property name="messageConverters">
<list>
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<!-- 需要jar包jackson -->
<property name="supportedMediaTypes" value="application/xml"/>
</bean>
</list>
</property>
</bean>

<!-- 映射器注册 -->
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
<property name="interceptors">
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"/>
</property>
</bean>

<!-- jsp页面 prefix:前缀, suffix:后缀 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/"/>
<property name="suffix" value=".jsp"/>
</bean>

<bean id="localResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
<property name="defaultLocale" value="zh_CN"/>
</bean>

<!-- 配置文件上传 -->
<!-- 需要jar包 commons-fileupload包 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!--  默认编码 -->
<property name="defaultEncoding" value="utf-8" />
<!-- 文件大小最大值 -->
<property name="maxUploadSize" value="10485760000" />
<!-- 内存中的最大值 -->
<property name="maxInMemorySize" value="40960" />
</bean>
</beans>
Controller:

package com.xy.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping(value="/test")
public class TestController {

@RequestMapping(value="/toTestPage.do")
public ModelAndView toTestPage(HttpServletRequest request,HttpServletResponse response){
return new ModelAndView("test").addObject("id", "abc");
}
}
访问链接:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息