Maven3路程(六)用Maven创建Spring3 MVC项目

一、      环境

spring-framework-3.2.4.RELEASE

jdk1.7.0_11

Maven3.0.5

eclipse-jee-juno-SR2-win32

二、      创建Web项目

Eclipse中创建Web项目,见前边日志《Maven3路程(三)用Maven创建第一个web项目(1)》

三、      项目依赖,配置pom.xml文件

pom.xml文件如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.lei.demo</groupId><artifactId>spring3-mvc-demo</artifactId><packaging>war</packaging><version>0.0.1-SNAPSHOT</version><name>spring3-mvc-demo Maven Webapp</name><url>http://maven.apache.org</url><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>3.2.4.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>3.2.4.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>3.2.4.RELEASE</version></dependency></dependencies><build><finalName>spring3-mvc-demo</finalName></build>
</project>

四、      Controller & Mapping

在Spring3中,annotation的应用无处不在,以下创建一个Controller,命名为HelloController,请注意@RequestMapping的配置。

HelloController.java

package com.lei.demo.controller;import java.text.SimpleDateFormat;import javax.print.attribute.standard.DateTimeAtCompleted;
import javax.xml.crypto.Data;import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;@Controller
@RequestMapping("/welcome")
public class HelloController {@RequestMapping(method = RequestMethod.GET)public String printWelcome(ModelMap model) {model.addAttribute("message", "Spring3 MVC 例子");SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日");model.addAttribute("date", dateFormat.format(new java.util.Date()));return "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>Message : ${message}</h1><h2>当前时间:${date}</h2>
</body>
</html>

六、      Spring 的配置文件

在WEB-INF下,创建配置文件mvc-dispatcher-servlet.xml如下

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans     http://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"><context:component-scan base-package="com.lei.demo.controller" /><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix"><value>/WEB-INF/pages/</value></property><property name="suffix"><value>.jsp</value></property></bean>    </beans>

以上配置视图解析中,属性“prefix”和属性“suffix”负责组装呈现视图的前缀和后缀,再配合自己写的controller,此例是“HelloController.java”中的return ”hello“,那么对应关系就是如下:

[prefix]+[controller return]+[stuffix]="/WEB-INF/pages/"+"hello"+".jsp"=/WEB-INF/pages/hello.jsp

七、      Web配置文件和Spring配置文件的集成

web.xml文件配置如下

<web-app id="WebApp_ID" version="2.4"xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><display-name>Archetype Created Web Application</display-name><servlet><servlet-name>mvc-dispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>mvc-dispatcher</servlet-name><url-pattern>/</url-pattern></servlet-mapping><context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>
</web-app>

配置说明:

使用Spring MVC,配置DispatcherServlet是第一步。DispatcherServlet是一个Servlet(这个Servlet从HttpServlet继承而来),所以可以配置多个DispatcherServlet。DispatcherServlet是前置控制器,配置在web.xml文件中的。负责拦截匹配的请求,Servlet拦截匹配规则要自已定义,把拦截下来的请求,依据“某某规则”分发到目标Controller(我们写的Action)来处理。“某某规则”:是根据你使用了哪个HandlerMapping接口的实现类的不同而不同。

<servlet-name> mvc-dispatcher</servlet-name>这个Servlet的名字是mvc-dispatcher,可以有多个DispatcherServlet,是通过名字来区分的。每一个DispatcherServlet有自己的WebApplicationContext上下文对象。同时保存的ServletContext中和Request对象中。

上边的web.xml为例

1.<servlet>定义了一个名字为mvc-dispatcher的servlet,其中<load-on-startup>1</load-on-startup>是启动顺序,让这个Servlet随Servlet容器一起启动。

2.<servlet-mapping>定义了哪个servlet应该处理什么样的url匹配,上例中定义mvc-dispatcher这个servlet来处理所有匹配“/”的url,

<url-pattern>/</url-pattern>,会匹配到类似“/welcome”这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url”。

3.<context-param>元素含有一对参数名和参数值,用作应用的ServletContext上下文初始化参数。参数名在整个Web应用中必须是惟一的。

这里contextConfigLocation这个参数名,是被spring定义好的,会去加载spring的配置文件

在DispatcherServlet的初始化过程中,框架会在web应用的 WEB-INF文件夹下寻找名为[servlet-name]-servlet.xml 的配置文件,生成文件中定义的bean,此处就会寻找mvc-dispatcher-servlet.xml文件来加载spring的配置。

八、      演示

先看下目录结构:

效果:

转载于:https://www.cnblogs.com/leiOOlei/p/3414612.html

Maven3路程(六)用Maven创建Spring3 MVC项目相关推荐

  1. 用maven创建Spring MVC项目

    用maven创建Spring MVC项目 mvn archetype:generate -DgroupId=fry-arthur -DartifactId=spring-mvc-study -Darc ...

  2. idea maven创建java项目_新版本IntelliJ IDEA 构建maven,并用Maven创建一个web项目(图文教程)...

    之前都没试过用maven来管理过项目,但是手动找包导包确实不方便,于是今天用2016版的IDEA进行了maven的初尝试. 打开IDEA,创建新项目: 然后选择Maven,以及选择自己电脑的jdk: ...

  3. maven创建父子依赖项目—pom

    maven创建父子依赖项目 maven创建父子依赖项目: 参考思路: 思维图: 三种项目示例: jar:控制台项目: war:web项目: war:web项目:(待写) 案例:横向拆分(按照项目结构进 ...

  4. Java工作笔记-使用Maven创建多模块项目

    目录 前言 演示 前言 在某些项目中会用到多模块,一般情况下都使用Maven进行操作,然后手动写porn.xml,这样就算是spring boot也是手动写的,并没有使用官方的初始化项目工具. 演示 ...

  5. 【视频】利用IDEA 创建 spring mvc项目

    为什么80%的码农都做不了架构师?>>>    IntelliJ IDEA 专业交流群 185441009 视频下载地址:http://pan.baidu.com/s/1ntrBoV ...

  6. 使用IntelliJ IDEA 15和Maven创建Java Web项目(转)

    1. Maven简介 相对于传统的项目,Maven 下管理和构建的项目真的非常好用和简单,所以这里也强调下,尽量使用此类工具进行项目构建, 它可以管理项目的整个生命周期. 可以通过其命令做所有相关的工 ...

  7. 新版本IntelliJ IDEA 构建maven,并用Maven创建一个web项目

    之前都没试过用maven来管理过项目,但是手动找包导包确实不方便,于是今天用2016版的IDEA进行了maven的初尝试. 打开IDEA,创建新项目: 然后选择Maven,以及选择自己电脑的jdk: ...

  8. Maven创建的Web项目无法使用EL表达式

    之前在使用Maven时,创建一个We项目,有时候会用到EL表达式 ${message},会发现无法识别,显示如下效果: 一直没有明白为什么,今天,偶然间知道了原因. 如果你也遇到这样的情况,来看一下你 ...

  9. 在eclipse上使用Maven创建动态web项目

    在eclipse上使用Maven创建web工程和使用Maven创建普通Java工程一样,不过在Packaging一栏选择"war",这个过程具体就不多说了,详情见我上一篇文章. 我 ...

最新文章

  1. C/C++-标准输入/输出重定向为文件输入/输出
  2. mongodb - 前端form表单数据传输,在保存和清除的数据格式的处理程序的 - 非递归...
  3. 知乎嵌入式大杂烩:学习STM32的一点经验分享
  4. android 密码加密
  5. sublime text html乱码,Sublime Text 2中文显示乱码的解决方法
  6. 统计app用户在线时长_「云工作普及系列」2.如何实时统计工作时长,提高工作效率
  7. html文字竖直书写,css 文字竖直居中的写法和图片垂直居中代码(图文)
  8. 线程的状态和基本操作
  9. daocloud创建mysql_DaoCloud体验-使用node构建应用程序
  10. 达梦SQL格式化(美化器)
  11. [解决方案]word文档无法存放过长过大的visio图片
  12. 淘淘商城项目问题总览
  13. cfa equity
  14. windows创建bat文件进行截图
  15. 阿里云centos7系统下载
  16. Android打地鼠小游戏案例
  17. 2023新版php仿蓝奏云网盘合集下载页面系统源码 带后台版本 源码搭建
  18. Python绘图Turtle库画圈
  19. LicheePI (荔枝派)Zero 开发笔记(3):安装 GoAhead 5.2.0 并交叉编译在 LicheePI 上运行,增加自定义 Actions
  20. yolo.h5文件问题的解决 - 吴恩达深度学习:目标检测之YOLO算法

热门文章

  1. 排序数组中的两个数字之和
  2. fat32硬盘格式能在苹果系统里读写操作吗?
  3. FreeNAS 是什么
  4. 80后的你现在有多少资产?
  5. 苹果平板买哪款最好?
  6. 你觉得iPhone吸引你的是什么?
  7. 借条已经收回,他以没收据为由让我继续还款怎样办?
  8. 茅台少女踩曲玄机何在?
  9. 怎么提高wifi速度?
  10. 为什么移动硬盘不建议插在台式机前置USB接口上?