Spring mvc web 配置 简单例子 (创建Spring mvc web项目)

本文介绍如何使用Spring 4.2.6版本搭建Web项目,包括所需JAR包、web.xml配置、servlet.xml设置及简单Controller示例。

一、jar包
spring 4.2.6中,release.jar包有20个,还需要添加commons-loggin.jar  这21 个jar包。新建web项目(注意选中自动生成web.xml),然后把这21个包放在WEB-INF下的lib 文件夹中。

二、web.xml 配置

在web.xml 中定义派发器,派发器的 <url-pattern>属性,指明这个派发器会对什么样的url路径进行拦截 。拦截后,在controller中按照  @RequestMapping找到相应的函数运行,运行后返回String类型结果(假设为 “index")。然后,根据这个派发器servlet.xml文件的中的viewResolver,在返回结果上加上前缀prefix(如 /WEB-INF/jsp)和后缀suffix(如 .html)组成一个页面的物理地址(如 /WEB-INF/jsp/index.html),最后按照这个地址访问页面。这是我个人初学阶段理解的流程。

因为一个派发器只能写一个加前缀后缀的规则,也就是只能访问一个文件夹下的界面,所以,如果我们把页面没放在一个文件夹下,就得写多个派发器,这时候需要保证派发器的名字 <servlet-name>要唯一,每一个派发器都有自己的WebApplicationContext上下文对象。派发器多个时候,可以通过设定派发器的优先级<load-on-startup>来指定url匹配顺序。


<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>SpringTest1</display-name>
 
  <servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <description>加载/WEB-INF/spring-mvc/目录下的所有XML作为Spring MVC的配置文件</description>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring-mvc/*.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

</web-app>

<url-pattern>/</url-pattern>  这样,所有的请求,都会被DispatcherServlet处理;

前面提到过,派发器会找到自己的servlet.xml文件,在默认的情况下,这个配置文件的命名是servlet名-servlet.xml(如上,  <servlet-name>dispatcher, 所以就是 dispatcher-sevlet.xml),放在web 应用程序WEB-INF 目录下。这时候就不用写

<init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring-mvc/*.xml</param-value>
    </init-param>

框架会按照默认情况自动找到它的,如果我们不这样命名和放位置的话,就需要在  <servlet>中的<init-param>中注明, <param-name>contextConfigLocation</param-name> 和<param-value>具体地址</param-value>

 

三、servlet名-servlet.xml

<?xml version= "1.0" encoding= "UTF-8" ?>
        xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
        xmlns:mvc= "http://www.springframework.org/schema/mvc"
        xmlns:p= "http://www.springframework.org/schema/p"
        xmlns:context= "http://www.springframework.org/schema/context"
        xmlns:aop= "http://www.springframework.org/schema/aop"
        xmlns:tx= "http://www.springframework.org/schema/tx"
        xsi:schemaLocation="http: //www.springframework.org/schema/beans
             http: //www.springframework.org/schema/beans/spring-beans-3.0.xsd
             http: //www.springframework.org/schema/context
             http: //www.springframework.org/schema/context/spring-context-3.0.xsd
             http: //www.springframework.org/schema/aop
             http: //www.springframework.org/schema/aop/spring-aop-3.0.xsd
             http: //www.springframework.org/schema/tx
             http: //www.springframework.org/schema/tx/spring-tx-3.0.xsd
             http: //www.springframework.org/schema/mvc
             http: //www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
             http: //www.springframework.org/schema/context
             http: //www.springframework.org/schema/context/spring-context-3.0.xsd">
     <!--
         使Spring支持自动检测组件,如注解的Controller
     -->
     <context:component-scan base-package= "com.minx.crm.web.controller" />
    
    <!--
        注册一个ViewResolver,返回的String结果,按照ViewResolver的前缀后缀规则,拼出页面的地址
     -->
     <bean id= "viewResolver"
           class = "org.springframework.web.servlet.view.InternalResourceViewResolver"
           p:prefix= "/WEB-INF/jsp/"
           p:suffix= ".jsp" />
</beans>


四.controller

package com.minx.crm.web.controller;
 
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class IndexController {
    @RequestMapping("/")
    public String index() {
        return "index";
    }
}


这是一个超级简单的controller,index函数前面的 @RequestMapping("/")是url匹配,一启动项目,就是web项目的根目录,就会执行index函数,返回“index”,在viewResolver 执行后,最终访问/WEB-INF/jsp/index.jsp界面,url显示为 http://192.168.4.125:8080/SpringTest1/

 
1.0.5 从web项目迁移成maven项目 1.0.6 增加菜单框架ext实现,类路径调整 1.0.7 增加http工具类,demo例子 1.0.8 socket工具类,权限组件,菜单组件,jdbc分页支持多种数据库,ant路径工具类,增加jquery easyUI 1.0.9 版本管理,服务根路径工具类,文件上传工具类 1.0.10 集成ueditor在线编辑器 1.0.11 地址联动 1.0.12 Excel工具类 Word工具类 Java NIO实现socket工具类 分布式session jdk升级到1.7 嵌入式redis服务(只支持linux) 1.0.13 修改默认的beanName生成策略,controller参数扩展 1.0.14 分布式session使用zookeeper 1.0.15 zookeeper工具类优化 增加工具类 1.0.16 页面html标志修改 httpclient中文支持 工具类增强(zip,reflect,thread) 1.0.17 ftp服务端客户端工具类,配置文件mavenweb项目路径统一 1.1.0 soapui工具类(web版本) properties等工具类 1.1.1 工具类数据校验 jsp自定义标签 Spring自定义注解 默认requestMapping 1.1.2 代码生成器 1.1.3 首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串文件 1.1.5 redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级jdk1.8 jetty9.2.4 web升级jdk1.7 tomcat7 1.1.7(maven only) 包名修改 从此不再支持web版本,只支持maven版本 1.1.8 jquery 图片预览插件 图片滚动显示插件 1.1.9 jquery实现鼠标在按钮上显示窗口,离开窗口按钮时消失 1.1.10 rabbitMQ集成 视频截图 图片缩略图旋转 集成Mybatis 使用数据库连接池druid dubbo使用
# demoWeb 一个基于SpringMVCweb框架 1.0.5 从web项目迁移成maven项目 1.0.6 增加菜单框架ext实现,类路径调整 1.0.7 增加http工具类,demo例子 1.0.8 socket工具类,权限组件,菜单组件,jdbc分页支持多种数据库,ant路径工具类,增加jquery easyUI 1.0.9 版本管理,服务根路径工具类,文件上传工具类 1.0.10 集成ueditor在线编辑器 1.0.11 地址联动 1.0.12 Excel工具类 Word工具类 Java NIO实现socket工具类 分布式session jdk升级到1.7 嵌入式redis服务(只支持linux) 1.0.13 修改默认的beanName生成策略,controller参数扩展 1.0.14 分布式session使用zookeeper 1.0.15 zookeeper工具类优化 增加工具类 1.0.16 页面html标志修改 httpclient中文支持 工具类增强(zip,reflect,thread) 1.0.17 ftp服务端客户端工具类,配置文件mavenweb项目路径统一 1.1.0 soapui工具类(web版本) properties等工具类 1.1.1 工具类数据校验 jsp自定义标签 Spring自定义注解 默认requestMapping 1.1.2 代码生成器 1.1.3 首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串文件 1.1.5 redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级jdk1.8 jetty9.2.4 web升级jdk1.7 tomcat7 1.1.7(maven only) 包名修改 从此不再支持web版本,只支持maven版本 1.1.8 jquery 图片预览插件 图片滚动显示插件 1.1.9 jquery实现鼠标在按钮上显示窗口,离开窗口按钮时消失 1.1.10 rabbitMQ集成 视频截图 图片缩略图旋转 集成Mybatis 使用数据库连接池druid dubbo使用 1.1.11 集成Spring Cache,FastJson Spring Cache增加redis缓存实现 Mybatis使用二级缓存,增加redis实现 增加reactJs 增加Mybatis插件pageHelper,Mapper 1.1.12 使用draft富文本编辑器 增加ant design 代码生成器功能增强
# demoWeb 一个基于SpringMVCweb框架 1.0.5 从web项目迁移成maven项目 1.0.6 增加菜单框架ext实现,类路径调整 1.0.7 增加http工具类,demo例子 1.0.8 socket工具类,权限组件,菜单组件,jdbc分页支持多种数据库,ant路径工具类,增加jquery easyUI 1.0.9 版本管理,服务根路径工具类,文件上传工具类 1.0.10 集成ueditor在线编辑器 1.0.11 地址联动 1.0.12 Excel工具类 Word工具类 Java NIO实现socket工具类 分布式session jdk升级到1.7 嵌入式redis服务(只支持linux) 1.0.13 修改默认的beanName生成策略,controller参数扩展 1.0.14 分布式session使用zookeeper 1.0.15 zookeeper工具类优化 增加工具类 1.0.16 页面html标志修改 httpclient中文支持 工具类增强(zip,reflect,thread) 1.0.17 ftp服务端客户端工具类,配置文件mavenweb项目路径统一 1.1.0 soapui工具类(web版本) properties等工具类 1.1.1 工具类数据校验 jsp自定义标签 Spring自定义注解 默认requestMapping 1.1.2 代码生成器 1.1.3 首页修改 dateformat.js 时间参数转换 SpringMVC配置文件集中 快递参数接口 1.1.4 des加解密字符串文件 1.1.5 redis 加锁,redis升级成2.8.2 freemarker工具类 1.1.6 spring websocket 实现在线聊天 maven升级jdk1.8 jetty9.2.4 web升级jdk1.7 tomcat7 1.1.7(maven only) 包名修改 从此不再支持web版本,只支持maven版本 1.1.8 jquery 图片预览插件 图片滚动显示插件 1.1.9 jquery实现鼠标在按钮上显示窗口,离开窗口按钮时消失 1.1.10 rabbitMQ集成 视频截图 图片缩略图旋转 集成Mybatis 使用数据库连接池druid dubbo使用 1.1.11 集成Spring Cache,FastJson Spring Cache增加redis缓存实现 Mybatis使用二级缓存,增加redis实现 增加reactJs 增加Mybatis插件pageHelper,Mapper 1.1.12 使用draft富文本编辑器 增加ant design 代码生成器功能增强
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值