Spring搭建MVC WEB项目[转]

原文链接:http://blog.csdn.net/initphp/article/details/8208349

  • 1.创建一个web项目

  • 2.假设,我们已经安装完毕Spring所需要的依赖包,以及一些其它的扩展包,以及Jetty容器,ps:Jetty容器安装看上一节文章。


  • 3.运行web项目,必须有web.xml配置文件,web.xml放置在WebContent/WEB-INF/目录下面。
    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    
    3.     xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"    
    4.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"    
    5.     id="WebApp_ID" version="2.5">    
    6.       
    7.      <!-- 配置文件位置,默认为/WEB-INF/applicationContext.xml -->    
    8.     <context-param>    
    9.         <param-name>contextConfigLocation</param-name>    
    10.         <param-value>/WEB-INF/applicationContext.xml</param-value>    
    11.     </context-param>   
    12.       
    13.     <!-- 上下文Spring监听器 -->   
    14.     <listener>    
    15.         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>    
    16.     </listener>    
    17.       
    18.     <!-- servlet控制跳转,这边默认回去走spring-servlet.xml的xml文件 -->   
    19.     <servlet>  
    20.         <servlet-name>spring</servlet-name>  
    21.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
    22.         <init-param>    
    23.             <param-name>contextConfigLocation</param-name>    
    24.             <param-value>/WEB-INF/spring-servlet.xml</param-value>    
    25.         </init-param>   
    26.     </servlet>  
    27.     <!-- url-pattern 是Spring监听路由过来的方式,然后去寻找匹配的Controller  
    28.     例如:  
    29.     <url-pattern>/</url-pattern>  一般是  /hello/say/ 这样的URL方式  
    30.     <url-pattern>*.htm</url-pattern> 一般是 /hello/say.htm 这样的URL方式  
    31.      -->   
    32.     <servlet-mapping>    
    33.         <servlet-name>spring</servlet-name>    
    34.         <url-pattern>/</url-pattern>    
    35.     </servlet-mapping>   
    36.      
    37. </web-app>  
     
  • 4.运行Spring需要有applicationContext.xml这个配置文件,我们也将applicationContext.xml放置在WEB-INF/目录下。
    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <beans    
    3.     xmlns="http://www.springframework.org/schema/beans"    
    4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    
    5.     xmlns:context="http://www.springframework.org/schema/context"  
    6.     xmlns:aop="http://www.springframework.org/schema/aop"  
    7.     xsi:schemaLocation="http://www.springframework.org/schema/beans   
    8.     http://www.springframework.org/schema/beans/spring-beans-2.0.xsd  
    9.     http://www.springframework.org/schema/context  
    10.     http://www.springframework.org/schema/context/spring-context-2.5.xsd  
    11.     http://www.springframework.org/schema/aop  
    12.     http://www.springframework.org/schema/aop/spring-aop-2.5.xsd  
    13.     ">    
    14.     <context:annotation-config/>  
    15.     <aop:aspectj-autoproxy/>   
    16. </beans>  
  • 5.spring-servlet.xml 配置了具体的Spring需要访问的Controller文件夹目录以及模板的目录和模板的后缀名称。
    1. <beans xmlns="http://www.springframework.org/schema/beans"  
    2.  xmlns:context="http://www.springframework.org/schema/context"  
    3.  xmlns:p="http://www.springframework.org/schema/p"  
    4.  xmlns:mvc="http://www.springframework.org/schema/mvc"  
    5.  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    6.  xsi:schemaLocation="http://www.springframework.org/schema/beans  
    7.       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
    8.       http://www.springframework.org/schema/context  
    9.       http://www.springframework.org/schema/context/spring-context.xsd  
    10.       http://www.springframework.org/schema/mvc  
    11.       http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">  
    12.        
    13.      <!-- 访问com.mvc.rest包下有@Controller注解的Controller文件 -->    
    14.      <context:component-scan base-package="com.mvc.rest" />    
    15.      <!-- 通过注解,把URL映射到Controller上,该标签默认注册DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter -->    
    16.      <mvc:annotation-driven />  
    17.      <!-- 视图配置,配置试图的目录,后缀名等 -->   
    18.     <bean id="viewResolver"    
    19.         class="org.springframework.web.servlet.view.InternalResourceViewResolver">    
    20.         <property name="viewClass"    
    21.             value="org.springframework.web.servlet.view.JstlView" />    
    22.         <property name="prefix" value="/WEB-INF/views/" />    
    23.         <property name="suffix" value=".jsp"></property>    
    24.     </bean>    
    25. </beans>  
     
  • 6.我们需要创建一个com.mvc.rest包,在包下面创建一个名为:HelloController.java的文件。这个文件就是MVC的控制器。那么,我们有两个方法,分别为say和yes。url中访问分别是:/hello/say/和/hello/yes/
    1. package com.mvc.rest;  
    2.   
    3. import org.springframework.stereotype.Controller;  
    4. import org.springframework.web.bind.annotation.RequestMapping;  
    5.   
    6. //@Controller 是一个标识这个是控制器类的注解标签,如果是控制器类 都需要有这个注解。  
    7. @Controller  
    8. //@RequestMapping(value="/hello") 会映射到url /hello/则访问HelloController中的Action  
    9. @RequestMapping(value="/hello")  
    10. public class HelloController {  
    11.       
    12.     //@RequestMapping(value="/say") 会映射到url /hello/say则访问HelloController中的Action  
    13.     @RequestMapping(value="/say")  
    14.     public void say() {  
    15.         System.out.print("this is HelloController And say Action  ");  
    16.           
    17.     }  
    18.       
    19.     @RequestMapping(value="/yes")  
    20.     public void yes() {}  
    21.   
    22. }  
     
  • 7.我们需要在/WEB-INF/目录下创建一个views的目录,然后再创建一个/views/hello/的目录,里面分别是say.jsp和yes.jsp,是模板文件。
  • 8.然后运行配置,通过Jetty容器,运行web程序。
  • 9.运行完毕后,控制台会出现以下信息:
  • 10.最后在URL中分别访问:http://127.0.0.1:8090/hello/say/ 和 http://127.0.0.1:8090/hello/yes/ 成功!
  • 11.详细Spring Controller部分的注解,请阅读:http://zachary-guo.iteye.com/blog/1318597
原文地址:https://www.cnblogs.com/vvonline/p/4167005.html