----------------------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

http://www.springframework.org/schema/mvc

http://www.springframework.org/schema/mvc/spring-mvc.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方式实现)的更多相关文章

  1. Spring声明式事务管理(基于XML方式实现)

    --------------------siwuxie095                             Spring 声明式事务管理(基于 XML 方式实现)         以转账为例 ...

  2. Spring-注入方式(基于xml方式)

    1.基于xml方式创建对象 <!--配置User类对象的创建 --> <bean id="user" class="com.at.spring5.Use ...

  3. Spring基于XML方式的使用

    一.IoC配置 IoC的配置是通过Spring的xml文件的bean标签进行的. 1.bean标签介绍 bean标签一般是在xml文件进行配置的,xml文件一般样式如下: <?xml versi ...

  4. Spring3.0 入门进阶(三):基于XML方式的AOP使用

    AOP是一个比较通用的概念,主要关注的内容用一句话来说就是"如何使用一个对象代理另外一个对象",不同的框架会有不同的实现,Aspectj 是在编译期就绑定了代理对象与被代理对象的关 ...

  5. spring的基于XML方式的属性注入

    1.掌握spring的属性注入的方法: 1.1构造方法注入普通值---------<constructor-arg>标签的使用 首先新建一个类 package spring.day1.de ...

  6. Spring的事务控制-基于xml方式

    介绍:该程序模拟了转账操作,即Jone减少500元,tom增加500元 1.导入坐标 <dependency> <groupId>junit</groupId> & ...

  7. Spring基于XML方式加载Bean定义信息(又名:Spring IOC源码时序图)-图解

  8. Spring 基于xml配置方式的事务

    参考前面的声明式事务的例子:http://www.cnblogs.com/caoyc/p/5632198.html 我们做了相应的修改.在dao中和service中的各个类中,去掉所有注解标签.然后为 ...

  9. Spring 基于xml配置方式的事务(14)

    参考前面的声明式事务的例子:http://www.cnblogs.com/caoyc/p/5632198.html 我们做了相应的修改.在dao中和service中的各个类中,去掉所有注解标签.然后为 ...

随机推荐

  1. selenium page object模式

    页面对象模式将测试代码和被测试页面的元素及操作进行分离,以降低页面元素的变化对测试代码的影响.每个被测试的页面都会被定义一个类,类中会定位元素和操作. 如果不使用page object模式,则相同的操 ...

  2. html5 progress样式修改

    CSS代码: .deal progress { -webkit-appearance: none; } .deal ::-webkit-progress-inner-element { } .deal ...

  3. oracle 年龄计算 岁 月 天

    select trunc(months/12) || '岁' || trunc(mod(months, 12)) || '月' ||       trunc(sysdate - add_months( ...

  4. Spring Security编程模型

    1.采用spring进行权限控制 url权限控制 method权限控制 实现:aop或者拦截器(本质就是之前之后进行控制)--------------------proxy就是 2.权限模型: 本质理 ...

  5. 小朋友学Java(1):Mac系统安装JDK

    1 打开终端 方法可以参考http://blog.csdn.net/haishu_zheng/article/details/73410594 2 在终端输入 java -version,提示没有Ja ...

  6. lambda,sorted(),filter(),map(),递归,二分法

    1. lambda 匿名函数 语法: lambda 参数:返回值 不能完成复杂的操作例 # li=['21','asdd','weqeqw','wqf']# # it=iter(li)# # prin ...

  7. 并发基础(八) java线程的中断机制

    文章转载自 详细分析Java中断机制 1. 引言 当我们点击某个杀毒软件的取消按钮来停止查杀病毒时,当我们在控制台敲入quit命令以结束某个后台服务时--都需要通过一个线程去取消另一个线程正在执行的任 ...

  8. rsync同步web数据

    rsync远程同步web服务器的数据 实验拓扑                                            服务器A(rsync服务器)--------------服务器B( ...

  9. 13.从url 输入网址到最终页面渲染完成

    从url 输入网址到最终页面渲染完成,发生了什么? 1.DNS解析:将域名地址解析为IP地址 先读取: -浏览器DNS缓存 -系统DNS缓存 -路由器DNS缓存 -网络运营商DNS缓存 -递归搜索:b ...

  10. OpenACC 书上的范例代码(Jacobi 迭代),part 3

    ▶ 使用Jacobi 迭代求泊松方程的数值解 ● 使用 data 构件,强行要求 u0 仅拷入和拷出 GPU 各一次,u1 仅拷入GPU 一次 #include <stdio.h> #in ...