eclipse下maven插件搭建springmvc之helloworld

这几天学习了怎样使用maven,最终还是要回归web项目嘛,所以主要还是使用eclipse插件。

1 下载eclipse maven插件。

其实新版的eclipse已经集成了maven:lunar、mars,不知为什么我的没有,于是我又下载了一个最新版eclipse mars。在windows->preferences下可以找到maven说明eclipse已经有了maven插件。

当然还可以修改eclipse的maven安装路径,指向本地,这样就可以配置你的maven仓库路径了,在这里为了方便不修改。

2 在eclipse中新建web项目

先回顾一下maven的目录结构。

框出的就是web项目必须的文件。

2.1 新建maven web项目 

2.1.1 在项目中new一个项目 叫做maven project

2.1.2 在向导中点下一步就行了 选项中一定要新建一个maven-archetype-webapp 

2.1.3 在输入项目名称之后新建完成

2.2 手动修改maven目录结构

2.2.1 新建之后的目录结构是这样子的,可能maven版本不同结构不同,可见这个文件结构不完整,至少少了src-main-java和src-test-java(不清楚为什么工具不把这两个建上去呢)我们加上去。

    

于是,新建后目录结构终于完整了。

2.2.2 还要修改源文件maven目录的java源文件编译路径,项目邮件在java buildpath 里面设置。eclipse已经自动帮我们加上去了。我感觉只要把源文件目录加进去就行了,不一定要完全按照目录设置,当然编译后要放在target文件夹里面。

2.2.3 设置项目部署路径,因为部署到tomcat的时候都是把源文件资、源文件和项目用到的jar包扔到一个webapp文件里面然后再扔到tomcat的,项目右键属性,然后在deployment assembly里面设置,文件夹就是最后的打包的结构,少加多减,另外test目录是不用加进去的。

准备工作完成。

 2.3 构建maven spring mvc项目

完成后项目的目录结构是这样的

2.3.1 maven通过pom.xml添加依赖,就不用手动导入jar包了,十分方便。我们分别在pom.xml中添加java ee的依赖和spring的依赖,添加之后,我们在项目中就看到maven自动为我们下载jar包到项目中。

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.hao</groupId>
  <artifactId>mavenweb</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>mavenweb Maven Webapp</name>
  <url>http://maven.apache.org</url>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <!-- jsp、servlet 的依赖 -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        </dependency>
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.2</version>
        </dependency>
        
        <!-- spring mvc的依赖 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.2.1.RELEASE</version>
        </dependency>
    </dependencies>
    
  <build>
    <finalName>mavenweb</finalName>
  </build>
</project>

 2.3.2 导入了spring jar包之后,我们就可以新建一个helloworld项目了。我用比较旧的配置文件方式吧。

 web.xml

<?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>mavenweb</display-name>

    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

 springmvc-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:p="http://www.springframework.org/schema/p"
    xmlns:context="http://www.springframework.org/schema/context"
    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">

    <context:component-scan base-package="com.hao" />

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/" />
        <property name="suffix" value=".jsp" />
    </bean>
 
     <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean> 
        <bean name="/hello.do" class="com.hao.Hellomvc"></bean> 
    
        
</beans>

 Hellomvc.java

package com.hao;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

public class Hellomvc implements Controller {

    public ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
        // TODO Auto-generated method stub
        ModelAndView mv=new ModelAndView("index");
        mv.addObject("mvstr", "Hello World!");
        return mv;
    }

}

index.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<body>
<h2><c:out value="${mvstr}"> </c:out></h2>
</body>
</html>

代码就是在Hellomvc返回一个“helloworld”到index.jsp里面,应该还算是springmvc的最简单的例子吧。接下来把它放到tomcat里面运行就好了,用eclipse的tomcat插件应该可以,但是我想用maven的tomcat插件。

3  使用maven tomcat插件运行web项目

3.1 编辑tomcat的tomcat-users.xml

maven 的tomcat插件帮助我们打包然后将整个文件扔到tomcat的webapp里面,并通知tomcat重启运行。

maven调用tomcat的方式好像是通过tomcat的manager-script和manager-gui,但我们把几个角色都开起来吧。在本机的tomcat的conf文件夹找到tomcat-users.xml,增加几个权限给maven用。

<tomcat-users>
<!--
  NOTE:  By default, no user is included in the "manager-gui" role required
  to operate the "/manager/html" web application.  If you wish to use this app,
  you must define such a user - the username and password are arbitrary.
-->
<!--
  NOTE:  The sample user and role entries below are wrapped in a comment
  and thus are ignored when reading this file. Do not forget to remove
  <!.. ..> that surrounds them.
-->

<role rolename="manager-gui"/>
<role rolename="manager"/>
<role rolename="manager-script"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
<user username="admin" password="123456" roles="manager,manager-gui,manager-script"/>

</tomcat-users>

3.2 在pom.xml增加tomcat插件依赖  (用户名密码要与tomcat-users.xml里面的对应)

......
......
 <build>
    <finalName>mavenweb</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <url>http://localhost:8080/manager/text</url>
                    <path>/mavenweb</path>
                    <server>tomcat</server>
                    <username>admin</username>
                    <password>123456</password>
                </configuration>
            </plugin>
        </plugins>
  </build>
......
......

3.3 准备完毕,右键点击pom.xml,再输入maven运行命令就行了。

run as->maven build

tomcat6/7:redeploy

控制台输出成功信息,部署成功

输入:http://localhost:8080/mavenweb/hello.do 出现helloworld!

大功告成!

附上maven tomcat插件命令

新增一条修改maven仓库配置的

  11:29:04 2015-09-30

  

原文地址:https://www.cnblogs.com/actionscr/p/4846891.html