要想使用springMVC 先要导入相应的jar包 现在新建一个web project工程 把相应的包放在 WebRoot下的WEB-INF想的lib目录下:
在暂时不使用注解的情况下只要导入下面的jar包 (这是在spring3的jar包 如果是spring2.*的话 只要找相应的变一下就行):
当这些jar包放到lib目录下之后,现在要配置一下web.xml了:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> 3 <display-name></display-name> 4 <servlet> 5 <servlet-name>mvc-dispatcher</servlet-name> 6 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 7 <load-on-startup>1</load-on-startup> 8 </servlet> 9 <servlet-mapping> 10 <servlet-name>mvc-dispatcher</servlet-name> 11 <url-pattern>*.test</url-pattern> 12 </servlet-mapping> 13 </web-app>
org.springframework.web.servlet.DispatcherServlet是springMVC的负责接收和处理所有web请求的front controller 他将读取相应的配置文件 再把请求转发到相应的控制器:
现在来写一个简单的控制器:
1 package com.yixi.controller; 2 3 import javax.servlet.http.HttpServletRequest; 4 import javax.servlet.http.HttpServletResponse; 5 6 import org.springframework.web.servlet.ModelAndView; 7 import org.springframework.web.servlet.mvc.Controller; 8 9 public class HelloController implements Controller { 10 11 public ModelAndView handleRequest(HttpServletRequest request, 12 HttpServletResponse response) throws Exception { 13 request.setAttribute("msg","HelloController....运行了"); 14 return new ModelAndView("hello"); 15 } 16 17 }
控制器要实现Controller或者继承AbstractController 然后实现相应的方法即可。
在这里的return new ModelAndView("hello"); 是会返回到以hello为名称的相应的页面上 , 那它到底是转到哪里呢? 这个就是要看配置文件中的配置了;那配置文件是怎样配置的呢?
1.首先 我们在web.xml文件中配置的是<servlet-name>mvc-dispatcher</servlet-name> 那么配置文件的名称默认要为${servlet-name}-servlet.xml 即mvc-dispatcher-servlet.xml 配置内容如下:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" 4 xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx" 5 xmlns:context="http://www.springframework.org/schema/context" 6 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 7 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 8 http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 9 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd 10 http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"> 11 12 <!-- 映射解释器 --> 13 <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> 14 <property name="mappings"> 15 <props> 16 <prop key="hello.test">helloController</prop> 18 </props> 19 </property> 20 </bean> 21 <!-- 视图解释器 --> 22 <bean class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 23 <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property> 24 <property name="prefix" value="/WEB-INF/jsp/"></property> 25 <property name="suffix" value=".jsp"></property> 26 </bean> 27 <bean id="helloController" class="com.yixi.controller.HelloController"></bean> 28 </beans>
org.springframework.web.servlet.handler.SimpleUrlHandlerMapping这个映射解析器是根据提交的URL来找相应的Controller 例如在这就是老公url中是hello.test 那么将会去找helloController 而helloController将由<bean id="helloController" class="com.yixi.controller.HelloController"></bean>来配置。
org.springframework.web.servlet.view.UrlBasedViewResolver是视图解析器 它其中有几个属性:
a. viewClass :这是配置将要显示的视图是什么类型的 org.springframework.web.servlet.view.JstlView是jsp的View类型 , 其中还有ptf,execl,xml等类型的。
b. prefix: 这是配置要找的视图的路径前缀:在这就是/WEB-INF/jsp/目录下的
c. suffix:这是配置要找的视图的路径后缀:在这就是.jsp结尾的
所以要找的视图是:/WEB-INF/jsp/hello.jsp
在加载的时候默认会到/WEB-INF目录下去找这个配置文件 所以mvc-dispatcher-servlet.xml应该放在WEB-INF目录下面 当然还要把hello.jsp文件放到/WEB-INF/jsp/目录下。
现在访问http://localhost:8080/项目名/hello.test 即可访问到hello.jsp文件。
这样关于springMVC的一个helloworld的程序就写完了。