SpringMVC入门(基于XML方式实现)
----------------------siwuxie095
SpringMVC 入门(基于 XML 方式实现)
(一)搭建 SpringMVC 环境
1、先下载相关库文件,下载链接:
(1)http://projects.spring.io/spring-framework/
(2)http://repo.spring.io/release/org/springframework/spring/
注意:下载以 -dist.zip 结尾的文件,这里选择下载 Spring 4.3 版本
将 spring-framework-4.3.7.RELEASE-dist.zip 解压一览:

2、导入 Spring 的核心 jar 包和日志相关的 jar 包(6 个)

Commons Logging 下载链接:
http://commons.apache.org/proper/commons-logging/download_logging.cgi
LOG4J 下载链接:
https://www.apache.org/dist/logging/log4j/
2、导入 Spring AOP 的 jar 包(1 个)

3、导入 SpringMVC 的 jar 包(1 个)

4、导入 Spring 整合 Web 项目的 jar 包(1 个)

5、综上,共需 9 个 jar 包

(二)创建部署描述文件
在部署描述文件中配置 SpringMVC 的核心分发器
1、创建 XML 格式的部署描述文件
部署描述文件的名称和位置是固定的
位置:必须在 WEB-INF 下
名称:必须是 web.xml
2、快捷创建部署描述文件 web.xml
选择工程名,右键->Java EE Tools->Generate Deployment Descriptor Stub
3、配置 SpringMVC 的核心分发器
在 web.xml 中添加如下代码:
|
<servlet> <!-- servlet-name 可任意命名 --> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 设置 SpringMVC 核心配置文件的名称和位置,均可任意。如果未设置,则默认 位于 WEB-INF 目录下,名称为 [servlet-name]-servlet.xml --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:dispatcher-servlet.xml</param-value> </init-param> <!-- 自动加载:随 Tomcat 容器启动,加载 DispatcherServlet,完成初始化 --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <!-- url-pattern 可以是 / 或 *.xxx 或 /xxx/*,不能是 /* --> <url-pattern>/</url-pattern> </servlet-mapping> |
4、最后
web.xml:
|
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <display-name>TestSpringMVC</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <!-- servlet-name 可任意命名 --> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 设置 SpringMVC 核心配置文件的名称和位置,均可任意。如果未设置,则默认 位于 WEB-INF 目录下,名称为 [servlet-name]-servlet.xml --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:dispatcher-servlet.xml</param-value> </init-param> <!-- 自动加载:随 Tomcat 容器启动,加载 DispatcherServlet,完成初始化 --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <!-- url-pattern 可以是 / 或 *.xxx 或 /xxx/*,不能是 /* --> <url-pattern>/</url-pattern> </servlet-mapping> </web-app> |
(三)创建 Controller 类
包名:com.siwuxie095.controller
类名:HelloController.java
HelloController.java:
|
package com.siwuxie095.controller; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.Controller; /** * 创建 HelloController,实现 Controller 接口 */ public class HelloController implements Controller { /** * 每次访问 Controller,默认都会执行 handleRequest() 方法, * 在核心配置文件 dispatcher-servlet.xml 中配置访问路径 */ @Override public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { // 创建 ModelAndView 对象 ModelAndView mv = new ModelAndView(); // 添加模型数据 mv.addObject("msg", "Hello SpringMVC"); // 设置视图名称 mv.setViewName("hello"); return mv; } } |
(四)创建 SpringMVC 的核心配置文件
在核心配置文件中配置 HandlerMapping、HandlerAdapter、Controller、ViewResolver
1、创建 XML 格式的配置文件
核心配置文件的名称和位置没有固定要求
位置:建议在 src 下
名称:建议为 dispatcher-servlet.xml
2、在配置文件中引入 XML 约束
spring-beans-4.3.xsd、spring-context-4.3.xsd、spring-mvc-4.3.xsd
「XML约束有 DTD 和 Schema 两种,在 SpringMVC 的配置文件
中引入的是 Schema 约束(目前),注意:要引入和 Spring 版本
对应的约束」
这些文件在 schema 文件夹下:

在 dispatcher-servlet.xml 中添加如下约束:
|
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd |
3、配置 HandlerMapping、HandlerAdapter、Controller、ViewResolver
dispatcher-servlet.xml:
|
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!-- 配置 HandlerMapping(可选,即可以省略不配置) --> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> <!-- 配置 HandlerAdapter(可选,即可以省略不配置) --> <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/> <!-- 配置 Controller,通过 BeanNameUrl 来映射、查找(必须,即必须进行配置) name 为访问路径(请求路径也即 BeanNameUrl),class 为自定义 Controller 的完全限定名 --> <bean name="/hello.do" class="com.siwuxie095.controller.HelloController"/> <!-- 配置 ViewResolver(必须,即必须进行配置) --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 配置视图解析的前缀 prefix 和后缀 suffix: )前缀:如果在 WebContent 目录下,则为 /,如果在 WEB-INF 目录下,则为 /WEB-INF/ )后缀:一般为 JSP 文件,所以为 .jsp 例如:prefix="/",suffix=".jsp",viewname="test",则:"/test.jsp" --> <property name="prefix" value="/"/> <property name="suffix" value=".jsp"/> </bean> </beans> |
注:HandlerMapping 和 HandlerAdapter 之所以可以省略不配置,是
因为 SpringMVC 对于这两者有默认配置,详见 spring-webmvc 的 jar
包中第一个包 org.springframework.web.servlet 中最后一个配置文件
DispatcherServlet.properties


(五)创建 JSP 页面
1、在 WebContent 目录下创建 hello.jsp
hello.jsp:
|
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>hello</title> </head> <body> <h1>${msg}</h1> </body> </html> |
2、在浏览器中进行访问,访问路径
http://localhost:8080/TestSpringMVC/hello.do
工程结构目录一览:


【made by siwuxie095】
SpringMVC入门(基于XML方式实现)的更多相关文章
- Spring声明式事务管理(基于XML方式实现)
--------------------siwuxie095 Spring 声明式事务管理(基于 XML 方式实现) 以转账为例 ...
- Spring-注入方式(基于xml方式)
1.基于xml方式创建对象 <!--配置User类对象的创建 --> <bean id="user" class="com.at.spring5.Use ...
- Spring基于XML方式的使用
一.IoC配置 IoC的配置是通过Spring的xml文件的bean标签进行的. 1.bean标签介绍 bean标签一般是在xml文件进行配置的,xml文件一般样式如下: <?xml versi ...
- Spring3.0 入门进阶(三):基于XML方式的AOP使用
AOP是一个比较通用的概念,主要关注的内容用一句话来说就是"如何使用一个对象代理另外一个对象",不同的框架会有不同的实现,Aspectj 是在编译期就绑定了代理对象与被代理对象的关 ...
- spring的基于XML方式的属性注入
1.掌握spring的属性注入的方法: 1.1构造方法注入普通值---------<constructor-arg>标签的使用 首先新建一个类 package spring.day1.de ...
- Spring的事务控制-基于xml方式
介绍:该程序模拟了转账操作,即Jone减少500元,tom增加500元 1.导入坐标 <dependency> <groupId>junit</groupId> & ...
- Spring基于XML方式加载Bean定义信息(又名:Spring IOC源码时序图)-图解
- Spring 基于xml配置方式的事务
参考前面的声明式事务的例子:http://www.cnblogs.com/caoyc/p/5632198.html 我们做了相应的修改.在dao中和service中的各个类中,去掉所有注解标签.然后为 ...
- Spring 基于xml配置方式的事务(14)
参考前面的声明式事务的例子:http://www.cnblogs.com/caoyc/p/5632198.html 我们做了相应的修改.在dao中和service中的各个类中,去掉所有注解标签.然后为 ...
随机推荐
- [转]NSIS:使用SectionSetFlags根据不同环境自动勾选特定区段
转自: http://www.flighty.cn/html/bushu/20140526_232.html 在微软SQL2000+SP4集成安装版安装包中可以根据目标操作系统自动勾选对应的版本, ...
- ios ideviceintaller安装
1.安装brew 打开终端输入: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/inst ...
- eclipse如何调试jar包源码
转载至:http://blog.csdn.net/niclascage/article/details/47451967 引子 深入学习开源代码很多时候都需要去调试别人的jar包.当然如果你能拿别人的 ...
- Unreal Engine 4 笔记
1.UE4的调试输出 //*1 调试输出*// /*case a.快速使用 不设置log类别 默认为LogTemp*/ UE_LOG(LogTemp,Log,TEXT("Your messa ...
- numpy的where函数
numpy.where(condition[,x,y]) condition是条件,x,y是可选参数,这三个输入参数都是array_like的形式且三者的维度相同 当conditon的某个位置为tru ...
- 库、教程、论文实现,这是一份超全的PyTorch资源列表(Github 2.2K星)
项目地址:https://github.com/bharathgs/Awesome-pytorch-list 列表结构: NLP 与语音处理 计算机视觉 概率/生成库 其他库 教程与示例 论文实现 P ...
- 如何对hashmap按value值排序
http://bbs.csdn.net/topics/90321713 这个帖子中没有我想要的答案,treemap是根据key排序的,想以value排序,那么可以key,value互换一下,不过这样的 ...
- js倒计时发送验证码按钮
var wait=60; function time(o) { if (wait == 0) { o.removeAttribute("disabled"); o.value=&q ...
- 前端-CSS-6-盒子模型
上面的布局宽度div{ width: 200px; height: 200px; border: 10px solid red; padding: 20px; } ------------------ ...
- zookeeper介绍以及安装配置
Zookeeper启动时默认将Zookeeper.out输出到当前目录,不友好.改变位置有两种方法: 1:在当前用户下~/.bash_profile或在/etc/profile,添加ZOO_LOG_D ...