springmvc 配置

要使用springmvc,先要引入所需要的包。springmvc是spring的子集,所以如果不考虑工程的大小,直接把spring的lib引入就ok了。

像通常的servlet开发一样,我们要在web.xml中配置spring的核心servlet--》DispatcherServlet,从字面就可以理解DispatcherServlet的用途,dispatcher是调度的意思,而DispatcherServlet的作用就是拦截请求,并将请求分发给各Controller.

下面配置web.xml

<?xml version="1.0" encoding="utf-8"?>
<web-app 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
id="WebApp_ID" version="3.1">
<!-- 这是应用的名字 -->
<display-name>learn_springmvc_from_book</display-name>
<servlet>
		<!-- 这是 DispatcherServlet的名字 你也可以改成别的名字-->
		<servlet-name>DispatcherServlet</servlet-name>
		<!-- DispatcherServlet所在的路径 -->
		 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		 <!-- 初始化设置(告诉spring DispatcherServlet配置的位置)
		  如没有该项 spring就会去WEB-INF下寻找默认的DispatcherServlet配置文件  -->
	        <init-param>
	            <param-name>contextConfigLocation</param-name>
	            <!-- 该项即指DispatcherServlet的配置路径 classpath对应的是java Resource下的src -->
	            <param-value>classpath:springmvc.xml</param-value>
	        </init-param>
		 <load-on-startup>1</load-on-startup> 
</servlet>
 <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
<servlet-mapping>
<!-- 与上面的servlet-name对应 -->
	<servlet-name>DispatcherServlet</servlet-name>
	<!-- 当值为/时 代表拦截所有的请求 当然也可以不设置为/ 比如可以设置为*.do 那么DispatcherServlet就会拦截所有后缀为.do的请求 -->
	<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
配置完web.xml自然要配置DispatcherServlet的配置文件,其实DispatcherServlet的配置文件就是springmvc的配置文件

那么我们就在src下建立一个springmvc.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:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
     <!-- 这项代表哪里存放了spring组件 如controller service 另外如果你的组件没有在下面申明 spring是找不到的 -->   
	<context:component-scan base-package="com.xperdit.springmvc.controller"/>
	<context:component-scan base-package="com.xperdit.springmvc.service"/>
	<!-- 字面意思是注释驱动 需要注意的是如果没有这一项 那么下面的mvc:resources是不起作用的 并且也会让spring也瘫掉 需要注意的是 注释驱动只能有一项
		有多项时springmvc也只认最开始的一项 这意味着 我们在配置converter的时候 直接在这个annotation-driven后面添加属性即可 -->
    <mvc:annotation-driven/>   
    <!-- 这里指定了静态资源的位置  -->
	<mvc:resources mapping="/css/**" location="/WEB-INF/css/" /> 
	<!-- 视图解析器 可以将view指向对应的资源位置  -->
	<bean id="viewResovler" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<!-- 前项 -->
		<property name="prefix" value="/WEB-INF/jsp/"/>
		<!-- 后项 -->
		<property name="suffix" value=".jsp"/>
	</bean>
	
</beans>   
这里需要注意的是viewResovler功能。举个例子Controller中有一个函数

@RequestMapping("/index")
	public String hello() {
		return "index";
	}
其中hello返回的string就是一个view ,view就相当于对应资源的名字,当DispatcherServlet得到这个view=index时,它会在index前加上prefix的值在后面加上suffix的值

所以最终指向的就是/WEB_INF/jsp/index.jsp


同样你可能会疑惑mvc:Resource的作用是什么。前面已经提到mvc:DispatcherServlet是拦截请求的,在实际工程中有一些请求时不能拦截的,比如.css,.js那么我们就使用这个Resource将这些静态资源重新定向。

mapping指的是需要重新定向的请求的特征,这里是/css/**  使用了正则表达式表示含有/css/的所有请求都要重新定向。

location指的是重新定向的位置在哪 比如请求时/css/index.css 那么他就会被重定向到/WEB_INF/css/index.css

同理你还可以为js定向 练习一下吧

end





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值