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.xsd
        http://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的配置。

八、      演示

先看下目录结构:

效果:

时间: 2024-10-08 16:07:29

Maven3路程(六)用Maven创建Spring3 MVC项目的相关文章

Eclipse使用Maven创建Spring MVC项目(包含实例)以及部署到tomcat服务器

1.安装Maven并配置环境变量 2.eclipse中配置Maven 3.eclipse创建Maven项目 选择项目路径,next 选择maven项目类别[maven-archetype-webapp],next 输入Group Id(顶级包名),Artifact Id(项目名),Package根据两者自动生成,finish 生成的项目如上图所示. 报错原因是缺失Server Runtime Library,添加即可,同时jre替换为System Library. 替换后项目目录如下: src文

IDEA 通过Maven创建Spring MVC项目搭建

概述 本篇随笔主要记录内容如下: 1.通过Maven创建基于Spring Framework类库的MVC项目,免去了繁琐的XML配置: 2.在Idea里面配置Tomcat的测试启动项: Maven创建MVC项目 2.1.新建Maven项目:New Project-->Maven 2.2.修改配置 配置pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http

Maven 创建java Web项目,配置Spring,CXF

1.搭建Maven环境 参考文章 Maven3路程(一)环境搭建 http://www.cnblogs.com/leiOOlei/p/3359561.html Maven3路程(二)Eclipse集成Maven http://www.cnblogs.com/leiOOlei/p/3361379.html Maven3路程(三)用Maven创建第一个web项目(1) Maven3路程(三)用Maven创建第一个web项目(2)servlet演示 Maven 配置Spring 参考 http://b

使用IntelliJ IDEA 14和Maven创建java web项目

原文:使用IntelliJ IDEA 14和Maven创建java web项目 http://mark.leanote.com/post/%E4%BD%BF%E7%94%A8IntelliJ-IDEA-14%E5%92%8CMaven%E5%88%9B%E5%BB%BAjava-web%E9%A1%B9%E7%9B%AE 安装Maven 下载安装 去maven官网下载最新版. 解压到安装目录. 配置 右键桌面的计算机图标,属性–>高级系统设置–>环境变量,添加M2_HOME的环境变量,然后将该

IntelliJ IDEA 创建spring mvc项目(图)

本文主要介绍怎么在IntelliJ IDEA 创建spring mvc项目,导入jar文件,tomcat配置(编辑器). 一.创建spring mvc项目 1.打开IntelliJ IDEA点击 创建新项目(Create New Project),SDK选择,然后选择sping>spring mvc,下一步 2.填写项目名称与选择项目路径 二.导入jar文件 1.选中lib文件夹,右键打开资源管理器 2.把准备好的jar文件复制粘贴到lib文件夹里面 3.点击文件(file)在列表中选择proj

maven建spring mvc 项目访问不到uri 解决:

用maven 测试一下spring+springmvc+hibernate时,springmvc按以前本地jar建的web项目测试来配置,可怎么也访问不了uri,新建了几个项目,一直找不到,或报错! 搞了大半天,终于解决了!主要是mvc的配置如下: 其他配置照旧! <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/sche

eclipse 使用maven 创建web3.1项目

转自:http://www.cnblogs.com/azhw/p/6050857.html 最近刚刚开始学java, 在框架搭建的过程中, 遭遇了诸多的坑, 和各种各样的不解与困惑, 由于没有什么java的相关基础, 看到各种xml的配置文件, 当真是一个头两个大. 并且并不知道那个配置到底在哪一步需要添加, 具体的东西, 网上教程一堆, 目前最流行的就是SSM框架, 但是所有人都是给出了一堆文案, 你照着网上堆, 没有问题, 一般也可以弄得出来, 但是, 弄完了还是糊里糊涂的, 不知道那句话是

在Intellij Idea中使用Maven创建Spring&amp;SpringMVC项目

环境及版本 Jetbrains Intellij Idea 15.0.6 Spring 4.1.6 JDK 1.8.0_20 Tomcat 8 Windows 10 从 Maven archetype 创建 Java Web 项目 点击 File > New > Project > Maven,勾选 Create from archetype 并在列表中选择 maven-archetype-webapp . 随后的步骤自行设置: 随后Maven 会根据默认的 pom.xml 自动导入依赖

idea 中利用maven创建java web 项目

转自:http://www.linuxidc.com/Linux/2014-04/99687.htm 本文主要使用图解介绍了使用IntelliJ IDEA 12创建Maven管理的Java Web项目的过程. IntelliJ IDEA 的详细介绍:请点这里IntelliJ IDEA 的下载地址:请点这里 相关阅读: IntelliJ IDEA: 字体美化(anti-aliased)和字体添加 http://www.linuxidc.com/Linux/2013-11/92609.htm Int