可运行的附件地址:http://files.cnblogs.com/files/douJiangYouTiao888/springWithXML.zip

项目说明:

作者环境:maven3+jdk1.8+spring4

项目结构:

父pom:主要是进行一系列版本定义

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3. <!-- 基础组件模块,定义各种公用的组件 -->
  4. <modelVersion>4.0.0</modelVersion>
  5. <groupId>com.wang</groupId>
  6. <artifactId>basicmodule</artifactId>
  7. <version>0.0.1-SNAPSHOT</version>
  8. <packaging>pom</packaging>
  9. <name>basicmodule</name>
  10. <url>http://maven.apache.org</url>
  11. <!-- 常量属性 -->
  12. <properties>
  13. <!-- 编码集 -->
  14. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  15. <!-- spring版本 -->
  16. <springframework.version>4.3.7.RELEASE</springframework.version>
  17. </properties>
  18. <!-- 模块定义 -->
  19. <dependencyManagement>
  20. <dependencies>
  21. <!-- spring模块 -->
  22. <dependency>
  23. <groupId>org.springframework</groupId>
  24. <artifactId>spring-core</artifactId>
  25. <version>${springframework.version}</version>
  26. </dependency>
  27. <dependency>
  28. <groupId>org.springframework</groupId>
  29. <artifactId>spring-beans</artifactId>
  30. <version>${springframework.version}</version>
  31. </dependency>
  32. <dependency>
  33. <groupId>org.springframework</groupId>
  34. <artifactId>spring-context</artifactId>
  35. <version>${springframework.version}</version>
  36. </dependency>
  37. <dependency>
  38. <groupId>org.springframework</groupId>
  39. <artifactId>spring-webmvc</artifactId>
  40. <version>${springframework.version}</version>
  41. </dependency>
  42. <!-- servlet-api -->
  43. <dependency>
  44. <groupId>javax.servlet</groupId>
  45. <artifactId>javax.servlet-api</artifactId>
  46. <version>3.1.0</version>
  47. <!-- <scope>provide</scope> -->
  48. </dependency>
  49. <!-- jstl,需要引入jstl.jar和standard.jar -->
  50. <dependency>
  51. <groupId>javax.servlet</groupId>
  52. <artifactId>jstl</artifactId>
  53. <version>1.2</version>
  54. </dependency>
  55. <!-- <dependency>
  56. <groupId>javax.servlet</groupId>
  57. <artifactId>javax.servlet-api</artifactId>
  58. <version>3.1.0</version>
  59. <scope>provide</scope>
  60. </dependency> -->
  61. </dependencies>
  62. </dependencyManagement>
  63.  
  64. </project>

当前pom:

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>com.wang</groupId>
  5. <artifactId>springWithXML</artifactId>
  6. <packaging>war</packaging>
  7. <version>0.0.1-SNAPSHOT</version>
  8. <name>springWithXML Maven Webapp</name>
  9. <url>http://maven.apache.org</url>
  10. <!-- 父模块,基础模块 -->
  11. <parent>
  12. <groupId>com.wang</groupId>
  13. <artifactId>basicmodule</artifactId>
  14. <version>0.0.1-SNAPSHOT</version>
  15. </parent>
  16. <dependencies>
  17. <!-- springMVC -->
  18. <dependency>
  19. <groupId>org.springframework</groupId>
  20. <artifactId>spring-webmvc</artifactId>
  21. </dependency>
  22. <!-- servlet-api -->
  23. <dependency>
  24. <groupId>javax.servlet</groupId>
  25. <artifactId>javax.servlet-api</artifactId>
  26. <scope>provided</scope>
  27. </dependency>
  28. <!-- jstl -->
  29. <dependency>
  30. <groupId>javax.servlet</groupId>
  31. <artifactId>jstl</artifactId>
  32. </dependency>
  33. </dependencies>
  34. <build>
  35. <finalName>sprintWithXML</finalName>
  36. </build>
  37. </project>

web.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2.  
  3. <web-app version="3.0" 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 http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  6. <!--
  7. 源码:spring-web.jar
  8. 功能:字符集过滤器,设置编码集为UTF-8,解决POST的中文乱码问题。
  9. 参数说明:
  10. encoding:request的编码集(request.setCharacterEncoding("UTF-8"))
  11. forceEncoding:默认为false设置为true,response的编码集也强制转变成UTF-8(response.setCharacterEncoding("UTF-8"))
  12. -->
  13. <filter>
  14. <filter-name>encodingFilter</filter-name>
  15. <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
  16. <init-param>
  17. <param-name>encoding</param-name>
  18. <param-value>UTF-8</param-value>
  19. </init-param>
  20. <init-param>
  21. <param-name>forceEncoding</param-name>
  22. <param-value>true</param-value>
  23. </init-param>
  24. </filter>
  25. <filter-mapping>
  26. <filter-name>encodingFilter</filter-name>
  27. <url-pattern>/*</url-pattern>
  28. </filter-mapping>
  29. <!--
  30. 源码:spring-web.jar
  31. 默认配置:/WEB-INF/${servlet-name}-servlet.xml,即/WEB-INF/wly-servlet.xml
  32. 覆盖默认配置:初始化参数:contextConfigLocation,参数多个值使用逗号隔开,如:a.xml,b.xml
  33. -->
  34. <servlet>
  35. <servlet-name>wly</servlet-name>
  36. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  37. <init-param>
  38. <param-name>contextConfigLocation</param-name>
  39. <param-value>classpath*:wly-servlet.xml</param-value>
  40. </init-param>
  41. <!-- 容器初始化加载此servlet -->
  42. <load-on-startup>1</load-on-startup>
  43. </servlet>
  44. <servlet-mapping>
  45. <servlet-name>wly</servlet-name>
  46. <!--
  47. 一般有以下写法:
  48. *.do 拦截固定格式的请求
  49. / rest风格的写法:拦截所有资源,需要针对静态资源做单独处理
  50. /* 错误写法:会在处理完请求后拦截jsp导致404错误
  51. -->
  52. <url-pattern>/</url-pattern>
  53. </servlet-mapping>
  54. <!-- 测试使用的servlet -->
  55. <servlet>
  56. <servlet-name>testServlet</servlet-name>
  57. <servlet-class>com.wang.servlet.TestServlet</servlet-class>
  58. </servlet>
  59. </web-app>

springmvc核心配置文件:wly-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:context="http://www.springframework.org/schema/context"
  5. xmlns:mvc="http://www.springframework.org/schema/mvc"
  6. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  7. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
  8. http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd">
  9. <!-- 公共配置,默认配置在org.springframework.web.servlet.Dispatcher类同包DispatcherServlet.properties下 -->
  10. <!-- HandlerMapping,映射器,配置的bean.name对应请求的url,将请求的url映射为一个HandlerExecutionChain对象(包含一个Handler和多个HandlerInterceptor) -->
  11. <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
  12. <!-- HandlerAdapter,将handler包装为适配器,满足各种不同适配器的使用,Controller、SimpleFormController等 -->
  13. <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
  14. <!-- ViewResovler,将拼接视图逻辑名称转为物理视图 -->
  15. <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  16. <!-- 需要引入jstl的相关jar包,jstl1.2以下需要引入jstl.jar、standard.jar -->
  17. <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
  18. <property name="prefix" value="/WEB-INF/jsp/"/>
  19. <property name="suffix" value=".jsp"/>
  20. </bean>
  21. <!-- 静态资源处理,不拦截静态资源 -->
  22. <mvc:resources location="/" mapping="/**/*.js"></mvc:resources>
  23.  
  24. <!-- handler,处理器,需要开发实现 -->
  25. <bean name="/wang" class="com.wang.controller.WangController"/>
  26. <!-- 接口return null的情况代表已经把输出通过流的形式返回,无需进行视图的解析 -->
  27. <bean name="/testNull" class="com.wang.controller.NullController"/>
  28. <!-- GET、POST请求方式的限定,supportedMethods需要配合AbstractController使用 -->
  29. <bean name="/helloPost" class="com.wang.controller.HelloController">
  30. <property name="supportedMethods" value="POST"></property>
  31. </bean>
  32. <!-- 缓存响应信息 -->
  33. <bean name="/helloCache" class="com.wang.controller.HelloController">
  34. <!-- 默认为-1,>0的值代表缓存时间 -->
  35. <property name="cacheSeconds" value="8"></property>
  36. </bean>
  37. <!-- 请求转发给servlet来处理 -->
  38. <bean name="/helloServlet" class="org.springframework.web.servlet.mvc.ServletForwardingController">
  39. <!--value对应web.xml的<servlet-name>-->
  40. <property name="servletName" value="testServlet"></property>
  41. </bean>
  42. </beans>

java类:

  1. package com.wang.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.AbstractController;
  8.  
  9. public class HelloController extends AbstractController{
  10. @Override
  11. protected ModelAndView handleRequestInternal(HttpServletRequest request,
  12. HttpServletResponse response) throws Exception {
  13. System.err.println("deal request");
  14. ModelAndView mv =new ModelAndView();
  15. //模型
  16. mv.addObject("message","test");
  17. //视图
  18. mv.setViewName("index");
  19. return mv;
  20. }
  21. }
  1. package com.wang.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 NullController implements Controller{
  10.  
  11. public ModelAndView handleRequest(HttpServletRequest request,
  12. HttpServletResponse response) throws Exception {
  13. response.getWriter().write("<a href=''>this</a>");
  14. //return null给DispatcherServlet,即告知servlet无需进行视图解析。
  15. return null;
  16. }
  17. }
  1. package com.wang.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 WangController implements Controller {
  10.  
  11. public ModelAndView handleRequest(HttpServletRequest request,
  12. HttpServletResponse response) throws Exception {
  13. System.err.println("deal request!");
  14. ModelAndView mv =new ModelAndView();
  15. //模型
  16. mv.addObject("message","test");
  17. //视图
  18. mv.setViewName("index");
  19. return mv;
  20. }
  21. }
  1. package com.wang.servlet;
  2.  
  3. import java.io.IOException;
  4.  
  5. import javax.servlet.ServletException;
  6. import javax.servlet.http.HttpServlet;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9.  
  10. public class TestServlet extends HttpServlet{
  11. @Override
  12. protected void doGet(HttpServletRequest req, HttpServletResponse resp)
  13. throws ServletException, IOException {
  14. doPost(req, resp);
  15. }
  16.  
  17. @Override
  18. protected void doPost(HttpServletRequest req, HttpServletResponse resp)
  19. throws ServletException, IOException {
  20. System.err.println("servlet处理");
  21. resp.sendRedirect("index.jsp");
  22. }
  23. }

测试URL:

  http://ip:port/具体URL

  1.Controller返回ModeAndView:/wang

  2.Controller返回null:/testNull

  3.只接受POST请求:/helloPost

  4.缓存响应信息:/helloCache

  5.请求转发给servlet来处理:/helloServlet

  例:http://localhost:8088/wang

OK,大功告成~

SpringMVC学习(二)——基于xml配置的springMVC项目(maven+spring4)的更多相关文章

  1. SpringMVC快速使用——基于XML配置和Servlet3.0

    SpringMVC快速使用--基于XML配置和Servlet3.0 1.官方文档 https://docs.spring.io/spring-framework/docs/5.2.8.RELEASE/ ...

  2. mybatis 学习二 conf xml 配置信息

    xml映射配置文件      这个xml文件主要包括一下节点信息      * properties 属性      * settings 设置      * typeAliases 类型命名     ...

  3. SpringMVC入门(基于XML方式实现)

    ----------------------siwuxie095 SpringMVC 入门(基于 XML 方式实现) (一)搭建 SpringMVC 环境 1.先下载相关库文件,下载链接: (1)ht ...

  4. 【Spring Framework】Spring入门教程(二)基于xml配置对象容器

    基于xml配置对象容器--xml 标签说明 alias标签 作用:为已配置的bean设置别名 --applicationContext.xml配置文件 <?xml version="1 ...

  5. Spring学习之旅(七)基于XML配置与基于AspectJ注解配置的AOP编程比较

    本篇博文用一个稍复杂点的案例来对比一下基于XML配置与基于AspectJ注解配置的AOP编程的不同. 相关引入包等Spring  AOP编程准备,请参考小编的其他博文,这里不再赘述. 案例要求: 写一 ...

  6. struts2视频学习笔记 22-23(基于XML配置方式实现对action的所有方法及部分方法进行校验)

    课时22 基于XML配置方式实现对action的所有方法进行校验   使用基于XML配置方式实现输入校验时,Action也需要继承ActionSupport,并且提供校验文件,校验文件和action类 ...

  7. Sping MVC不使用任何注解处理(jQuery)Ajax请求(基于XML配置)

    1. Spring Spring框架是一个轻量级的解决方案,是一个潜在的一站式商店,用于构建企业就绪的应用程序.Spring框架是一个Java平台,为开发Java应用程序提供全面的基础架构支持.Spr ...

  8. ssm整合(基于xml配置方式)

    本文是基于xml配置的方式来整合SpringMVC.Spring和Mybatis(基于注解的方式会再写一篇文章),步骤如下: (1)首先自然是依赖包的配置文件 pom.xml <project ...

  9. Unit03: Spring Web MVC简介 、 基于XML配置的MVC应用 、 基于注解配置的MVC应用

    Unit03: Spring Web MVC简介 . 基于XML配置的MVC应用 . 基于注解配置的MVC应用 springmvc (1)springmvc是什么? 是一个mvc框架,用来简化基于mv ...

随机推荐

  1. C运算符和表达式

    C语言入门(5)——运算符与表达式   版权声明:本文为博主尹成联系QQ77025077,微信18510341407原创文章,欢迎转载侵权不究. https://blog.csdn.net/yinch ...

  2. centsos 查看系统版本信息

    [root@hostuser gitlab]# lsb_release -a LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cx ...

  3. 文献综述二十:基于UML技术的客户关系管理系统实现

    一.基本信息 标题:基于UML技术的客户关系管理系统实现 时间:2015 出版源:电子设计工程 文件分类:uml技术的研究 二.研究背景 设计出可应用与银行和储户之间沟通的客户关系管理系统,从而实现对 ...

  4. Java常见的错误种类

    数组中的错误: 越界: java.lang.ArrayIndexOutOfBoundsException 数组越界,如果声明 了5个元素的数组,但是在取值的时候用到了索引5,那就越界了 空指针:jav ...

  5. c++ 网络编程(六)LINUX下 socket编程 多播与广播 实现一次发送所有组客户端都能接收到

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/9614288.html 一.多播 锲子:有这么一种情况,网络电台可能需要同时向成千上万的用户传输 ...

  6. 【ExtJS】关于标准模块化封装组件

    在此之前,自己封装自定义控件用的是这样的方式: Ext.define('My.XXX',{ extend: 'Ext.YYY', xtype: 'ZZZ', . . . items:[ ... ] } ...

  7. .netCore2.0 程序集DI依赖注入

    传统的依赖注入确实简单,但是随着项目的扩展随之而来的问题又来了,因为传统的注入是单个类和接口注入的,加入项目的接口和类增加到了上百个的话,就需要在Startup.cs中复制注入上百次,虽然能解决问题, ...

  8. Netezza External Tables --How to use local files in external table

    FROM: http://tennysusantobi.blogspot.com/2012/08/netezza-external-tables.html Netezza External Table ...

  9. 07.重写ToSting()方法

    namespace _08.重写ToString方法 { class Program { static void Main(string[] args) { Person p = new Person ...

  10. Java生成验证码(二)

    前一篇博客已经介绍了如何用Java servlet产生验证码,本篇继续介绍如何使用一些开源组件生成验证码 ————————————————————————————————————————————   ...