简单的springmvc配置

1.配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
	id="WebApp_ID" version="3.0">
	<display-name>springmvc_receive</display-name>
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
	<!--配置前端控制器DispatcherServlet-->
	
	<!-- SpringMVC的前端控制器 --> 
    <!-- 当DispatcherServlet载入后,它将从一个XML文件中载入Spring的应用上下文,该XML文件的名字取决于<servlet-name> --> 
    <!-- 这里DispatcherServlet将试图从一个叫做springmvc-servlet.xml的文件中载入应用上下文,其默认位于WEB-INF目录下 --> 
	 <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>/</url-pattern>
	</servlet-mapping>
	 
	 <!-- 配置字符集 -->
	<filter>
		<filter-name>encodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
		<init-param>
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>encodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	
	
	<!-- 处理静态文件 -->
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.jpg</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.js</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>default</servlet-name>
		<url-pattern>*.css</url-pattern>
	</servlet-mapping>
</web-app>

 1.1 补充:如果配置前端控制器DispatcherServlet使用如下配置,Spring Web MVC框架将加载                         classpath:spring-mvc.xml 来进行初始化上下文,而不是“/WEB-INF/[servlet名字]-servlet.xml”。

<!--配置前端控制器DispatcherServlet-->
<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:spring-mvc.xml</param-value>
      </init-param>   
      <load-on-startup>1</load-on-startup>    
</servlet>
<servlet-mapping>
		<servlet-name>spring</servlet-name>
		<url-pattern>/</url-pattern>
</servlet-mapping>
<!-- load-on-startup:表示启动容器时初始化该Servlet; -->
<!-- url-pattern:表示哪些请求交给Spring Web MVC处理, “/” 是用来定义默认servlet映射的。
     也可以如“*.html”表示拦截所有以html为扩展名的请求。 -->

1.2 补充 :添加集成Web环境的通用配置:

<!-- 加载所有的配置文件 -->
<context-param>
   <param-name>contextConfigLocation</param-name><!-- contextConfigLocation:表示用于加载Bean的配置文件; -->
   <param-value>classpath:spring-mvc.xml,classpath:spring-hibernate.xml,classpath:spring-beans.xml</param-value>  
</context-param>
<!-- 配置Spring监听 -->
<listener> 
   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener>

代码明细(摘抄):

如上配置是Spring集成Web环境的通用配置;一般用于加载除Web层的Bean(如DAO、Service等),以便于与其他任何Web框架集成。

contextConfigLocation:表示用于加载Bean的配置文件;

contextClass:表示用于加载Bean的ApplicationContext实现类,默认WebApplicationContext。 

创建完毕后会将该上下文放在ServletContext:

servletContext.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE,this.context);

ContextLoaderListener初始化的上下文和DispatcherServlet初始化的上下文关系,如下图

简单的springmvc配置_第1张图片

从上图中可以看出(ContextLoaderListener和DispatcherServlet初始化的区别):

ContextLoaderListener初始化的上下文加载的Bean是对于整个应用程序共享的,不管是使用什么表现层技术,一般如DAO层、Service层Bean;

DispatcherServlet初始化的上下文加载的Bean是只对Spring Web MVC有效的Bean,如Controller、HandlerMapping、HandlerAdapter等等,该初始化上下文应该只加载Web相关组件。



2.配置springmvc-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p" 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.1.xsd 
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context-3.1.xsd 
http://www.springframework.org/schema/mvc 
http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd">

<!--通过注解、扫描Controller-->
<!-- springmvc 注解驱动 -->
<!--<mvc:annotation-driven/>-->
<!-- 扫描器 -->
<!--<context:component-scan base-package="com"/>-->


<!-- 配置HandlerMapping 根据beanname找到对应的controller -->
<!--  <bean class=" org.springframework.web.servlet.mvc.support.ControllerBeanNameHandlerMapping"></bean>  -->
<!-- 配置controller -->
<!-- <bean name="user" class="com.happy.controller.UserController"></bean> -->


<!-- 根据简单URL 来查找Controller -->
<!-- <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
	<property name="mappings">
		<props>
			<prop key="userInfo">userController</prop>
		</props>
	</property>
</bean> 
<bean id="userController" class="com.happy.controller.UserController"></bean>-->


<!-- 控制类的类名访问Controller ,访问时类名首字母需要小写-->
<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"></bean>
<bean  class="com.happy.controller.UserController"></bean>


<!-- 配置视图解析器 -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <!-- 配置前缀和后缀 -->
    <property name="prefix" value="/"></property>
    <property name="suffix" value=".jsp"></property>
</bean>


</beans>

3.Controller类

package com.happy.controller;

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

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
/*
 * 控制器
 */
public class UserController extends AbstractController {

	@Override
	protected ModelAndView handleRequestInternal(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		System.out.println("----访问到了----");
		ModelAndView mav=new ModelAndView("user");
		return mav;
	}

}

4.user.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
    <a href="user">根据BeanName访问Controller</a><br><br>
    <a href="userInfo">根据url访问Controller</a><br><br>
    <a href="userController">根据Controller类名访问Controller</a>
</body>
</html>




你可能感兴趣的:(简单的springmvc配置)