文档章节

SpringMVC入门之普通配置篇——01

DavidBao
 DavidBao
发布于 2014/12/15 22:27
字数 1403
阅读 106
收藏 1

直接上例子吧,这是一个WebProject

一、首先是Web.xml

 

  1. <?xml version="1.0" encoding="UTF-8"?>  

  2. <web-app version="2.5"  

  3.     xmlns="http://java.sun.com/xml/ns/javaee"  

  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  

  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   

  6.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  

  7.     <!-- 使用ContextLoaderListener配置时,需要告诉它Spring配置文件的位置 -->  

  8.     <!-- 如果没有指定,上下文载入器会在/WEB-INF/applicationContext.xml中找Spring配置文件 -->  

  9.     <!-- 我们可以通过在Servlet上下文中设置contextConfigLocation参数,来为上下文载入器指定一个或多个Spring配置文件 -->  

  10.     <!-- 注意:contextConfigLocation参数是一个用逗号分隔的路径列表,其路径是相对于Web系统的根路径的 -->  

  11.     <context-param>  

  12.         <param-name>contextConfigLocation</param-name>  

  13.         <param-value>/WEB-INF/springmvc-servlet.xml, classpath:applicationContext-*.xml</param-value>  

  14.     </context-param>  

  15.       

  16.     <!-- SpringMVC的前端控制器 -->  

  17.     <!-- 当DispatcherServlet载入后,它将从一个XML文件中载入Spring的应用上下文,该XML文件的名字取决于<servlet-name> -->  

  18.     <!-- 这里DispatcherServlet将试图从一个叫做springmvc-servlet.xml的文件中载入应用上下文,其默认位于WEB-INF目录下 -->  

  19.     <!-- 所以ContextLoaderListener参数值也可写成<param-value>classpath:applicationContext-*.xml</param-value> -->  

  20.     <servlet>  

  21.         <servlet-name>springmvc</servlet-name>  

  22.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  

  23.         <load-on-startup>1</load-on-startup>  

  24.     </servlet>  

  25.     <servlet-mapping>  

  26.         <servlet-name>springmvc</servlet-name>  

  27.         <url-pattern>*.htm</url-pattern>  

  28.     </servlet-mapping>  

  29.       

  30.     <!-- 配置上下文载入器 -->  

  31.     <!-- 上下文载入器载入除DispatcherServlet载入的配置文件之外的其它上下文配置文件 -->  

  32.     <!-- 最常用的上下文载入器是一个Servlet监听器,其名称为ContextLoaderListener -->  

  33.     <listener>  

  34.         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  

  35.     </listener>  

  36.       

  37.     <welcome-file-list>  

  38.         <welcome-file>index.jsp</welcome-file>  

  39.     </welcome-file-list>  

  40. </web-app>

 

 二、接下来是SpringMVC的配置文件springmvc-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"  

  4.     xmlns:tx="http://www.springframework.org/schema/tx"  

  5.     xsi:schemaLocation="http://www.springframework.org/schema/beans   

  6.     http://www.springframework.org/schema/beans/spring-beans-2.5.xsd   

  7.     http://www.springframework.org/schema/tx     

  8.     http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">  

  9.       

  10.     <!-- 【配置映射处理器】 -->  

  11.     <!-- SpringMVC自带的映射处理器均实现了Spring的Ordered接口,这意味着我们可以在应用系统中声明多个处理器映射 -->  

  12.     <!-- 并且可以设置它们的优先级,这主要体现在order属性上,其值越小,则对应的该映射处理器的优先级越高 -->  

  13.     <!-- 本例中,SimpleUrlHandlerMapping的order值比BeanNameUrlHandlerMapping的小 -->  

  14.     <!-- 这意味着DispatcherServlet在映射URL的时候,首先会咨询SimpleUrlHandlerMapping -->  

  15.     <!-- 只有在SimpleUrlHandlerMapping无法返回结果时,才咨询BeanNameUrlHandlerMapping -->  

  16.     <bean id="beanNameUrlMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">  

  17.         <property name="order" value="1"/>  

  18.     </bean>  

  19.     <bean id="simpleUrlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">  

  20.         <property name="order" value="0"/>  

  21.         <property name="mappings">  

  22.             <props>  

  23.                 <prop key="/userlist22.htm">userController</prop>  

  24.                 <prop key="/userlist33.htm">userController</prop>  

  25.             </props>  

  26.         </property>  

  27.     </bean>  

  28.   

  29.     <!-- 这里的id="userController"对应的是<bean id="simpleUrlMapping">中的<prop>里面的value -->  

  30.     <bean id="userController" class="com.jadyer.controller.UserController"/>  

  31.       

  32.     <!-- DispatcherServlet使用的默认处理器映射是BeanNameUrlHandlerMapping,它使用URL样式的名字 -->  

  33.     <bean name="/userlist11.htm" class="com.jadyer.controller.UserController"/>  

  34. </beans>

三、 然后是我们常见的Spring配置文件applicationContext-view.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"  

  4.     xmlns:tx="http://www.springframework.org/schema/tx"  

  5.     xsi:schemaLocation="http://www.springframework.org/schema/beans   

  6.     http://www.springframework.org/schema/beans/spring-beans-2.5.xsd   

  7.     http://www.springframework.org/schema/tx     

  8.     http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">  

  9.       

  10.     <!-- 【配置视图解析器】 -->  

  11.     <!-- InternalResourceViewResolver会在ModelAndView返回的视图名前加上prefix指定的前缀,再在最后加上suffix指定的后缀 -->  

  12.     <!-- 由于UserController返回的ModelAndView中的视图名是userlist,故该视图解析器将在/WEB-INF/jsp/userlist.jsp处查找视图 -->  

  13.     <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">  

  14.         <property name="prefix" value="/WEB-INF/jsp/"/>  

  15.         <property name="suffix" value=".jsp"/>  

  16.     </bean>  

  17. </beans>

四、 接下来是首页index.jsp

 

  1. <%@ page language="java" pageEncoding="UTF-8"%>  

  2. <a href="<%=request.getContextPath()%>/userlist11.htm">Visit "/userlist11.htm" to my SpringMVC demo page</a>  

  3. <br/>  

  4. <br/>  

  5. <a href="<%=request.getContextPath()%>/userlist22.htm">Visit "/userlist22.htm" to my SpringMVC demo page</a>  

  6. <br/>  

  7. <br/>  

  8. <a href="<%=request.getContextPath()%>/userlist33.htm">Visit "/userlist33.htm" to my SpringMVC demo page</a>

 五、下面是响应请求结果的userlist.jsp

 

  1. <%@ page language="java" pageEncoding="UTF-8"%>  

  2. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>  

  3. <h2>Welcome to my SpringMVC demo page</h2>  

  4. <c:forEach items="${users}" var="user">  

  5.     <c:out value="${user.username}"/><br/>  

  6.     <c:out value="${user.password}"/><br/>  

  7.     <c:out value="${user.address}"/><br/>  

  8.     <c:out value="${user.age}"/><br/>  

  9. </c:forEach>  

  10.   

  11. <!--  

  12. 以下是,处理对"/userlist.htm"的请求的整个工作步骤  

  13. 1、DispatcherServlet接受对"/userlist.htm"样式的URL请求  

  14. 2、DispatcherServlet询问BeanNameUrlHandlerMapping  

  15.   询问Bean的名字是"/userlist.htm"的控制器,并且找到了UserController的Bean  

  16. 3、DispatcherServlet分发给UserController来处理这个请求  

  17. 4、UserController返回一个ModelAndView对象,它带有一个逻辑视图名"userlist",以及保存在"users"属性中的值  

  18. 5、DispatcherServlet询问它的视图解析器(配置为InternalResourceViewResolver)  

  19.   查找逻辑名为userlist的视图,InternalResourceViewResolver返回/WEB-INF/jsp/userlist.jsp路径  

  20. 6、DispatcherServlet将请求导向/WEB-INF/jsp/userlist.jsp页面  

  21. -->

 六、这是用到的User.java

 

  1. package com.jadyer.model;  
  2.   
  3. /** 
  4.  * User 
  5.  * @author 宏宇 
  6.  * @editor Jan 27, 2012 11:41:15 AM 
  7.  */  
  8. public class User {  
  9.     private String username;  
  10.     private String password;  
  11.     private String address;  
  12.     private Integer age;  
  13.       
  14.     public String getUsername() {  
  15.         return username;  
  16.     }  
  17.     public void setUsername(String username) {  
  18.         this.username = username;  
  19.     }  
  20.     public String getPassword() {  
  21.         return password;  
  22.     }  
  23.     public void setPassword(String password) {  
  24.         this.password = password;  
  25.     }  
  26.     public String getAddress() {  
  27.         return address;  
  28.     }  
  29.     public void setAddress(String address) {  
  30.         this.address = address;  
  31.     }  
  32.     public Integer getAge() {  
  33.         return age;  
  34.     }  
  35.     public void setAge(Integer age) {  
  36.         this.age = age;  
  37.     }  
  38. }

 

 七、最后是SpringMVC的核心控制器UserController.java

 

  1. package com.jadyer.controller;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.List;  
  5.   
  6. import javax.servlet.http.HttpServletRequest;  
  7. import javax.servlet.http.HttpServletResponse;  
  8.   
  9. import org.springframework.web.servlet.ModelAndView;  
  10. import org.springframework.web.servlet.mvc.AbstractController;  
  11.   
  12. import com.jadyer.model.User;  
  13.   
  14. /** 
  15.  * UserController 
  16.  * @author 宏宇 
  17.  * @editor Jan 27, 2012 11:57:33 AM 
  18.  */  
  19. public class UserController extends AbstractController {  
  20.     @Override  
  21.     protected ModelAndView handleRequestInternal(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {  
  22.         List<User> userList = new ArrayList<User>();  
  23.         User user11 = new User();  
  24.         User user22 = new User();  
  25.         user11.setUsername("张起灵");  
  26.         user11.setPassword("02200059");  
  27.         user11.setAddress("阴山古楼");  
  28.         user11.setAge(27);  
  29.         user22.setUsername("吴三省");  
  30.         user22.setPassword("95000220");  
  31.         user22.setAddress("蛇沼鬼城");  
  32.         user22.setAge(37);  
  33.         userList.add(user11);  
  34.         userList.add(user22);  
  35.         //ModelAndView类在SpringMVC中是一个很重要的概念  
  36.         //控制器执行方法都必须返回一个ModelAndView,ModelAndView对象保存了视图以及视图显示的模型数据  
  37.         //第一个参数:视图组件的逻辑名称。这里视图的逻辑名称是userlist,视图解析器会使用该名称查找实际的View对象  
  38.         //第二个参数:传递给视图的,模型对象的名称  
  39.         //第三个参数:传递给视图的,模型对象的值  
  40.         return new ModelAndView("userlist""users", userList);  
  41.     }  
  42. }

© 著作权归作者所有

DavidBao
粉丝 114
博文 213
码字总数 126729
作品 0
昌平
私信 提问
加载中

评论(0)

【Java学习路线】新手该如何一步步的学习 Java

新手该如何一步步的学习 Java? 如果真的想学Java,最好要循序渐进,有章有法的学习它! 今天小慕就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容。 首先,给大家分享一张以 企业...

Eddie_yang
2018/11/15
3.2K
0
Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密...

小致Daddy
2018/08/03
2.9W
1
Elasticsearch实战篇——Spring Boot整合ElasticSearch

当前Spring Boot很是流行,包括我自己,也是在用Spring Boot集成其他框架进行项目开发,所以这一节,我们一起来探讨Spring Boot整合ElasticSearch的问题。 本文主要讲以下内容: 第一部分,通...

JAVA_冯文议
2019/03/23
180
1
springboot微服务系列教程

微服务系列教程 Spring Boot 2是微服务的基础,在2018年3月初,Spring Boot 正式宣布进入2.0时代。下面一起来步入Spring Boot 2时代,领略Spring Boot 2带来的开发乐趣吧! 本系统源代码地址...

鱼煎
2019/01/13
1.3K
0
Spring Cloud Alibaba系列教程-01-Nacos安装与启停

1月前后开始为Spring Cloud Alibaba系列博客攒稿,成果如下图所示,今天开始发布。 如图的排序可能还不是很合理,发布之前会再整理下,尽量降低学习曲线,给读者提供一个更佳舒适的学习体验。...

周立_ITMuch
2019/03/05
234
0

没有更多内容

加载失败,请刷新页面

加载更多

Java BigDecimal 如何去掉末尾多余的 0

Java BigDecimal 如何去掉末尾多余的 0 呢? /** * To StripTrailingZeros */ @Test public void bigDecimalStripTrailingZerosTest() { BigDecimal bi......

honeymoose
今天
43
0
齐齐哈尔哪里可以开发票-中国新闻网

齐齐哈尔哪里可以开发票【1.3.2 - 2.9.3.0 - 0.5.6.8.】李生,adb的全称为Android Debug Bridge,是Android手机通用的一个USB端口。百度CarLife的部分车机采用了该...

8315581
今天
79
0
衡水哪里可以开发票-中国新闻网

衡水哪里可以开发票【1.3.2 - 2.9.3.0 - 0.5.6.8.】李生,adb的全称为Android Debug Bridge,是Android手机通用的一个USB端口。百度CarLife的部分车机采用了该种连...

457192
今天
60
0
张家口哪里可以开发票-中国新闻网

张家口哪里可以开发票【1.3.2 - 2.9.3.0 - 0.5.6.8.】李生,adb的全称为Android Debug Bridge,是Android手机通用的一个USB端口。百度CarLife的部分车机采用了该种...

253878
今天
66
0
黑龙江哪里可以开发票-中国新闻网

黑龙江哪里可以开发票【1.3.2 - 2.9.3.0 - 0.5.6.8.】李生,adb的全称为Android Debug Bridge,是Android手机通用的一个USB端口。百度CarLife的部分车机采用了该种...

富大范
今天
39
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部