zoukankan      html  css  js  c++  java
  • 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

      

  • 相关阅读:
    【XShell】xshell 中“快速命令集”的使用
    【Ubuntu】Vritual Box 复制方式克隆
    【Linux】快速清空当前文件
    iOS---友盟推送遇到的坑
    iOS---stringByAddingPercentEscapesUsingEncoding:' is deprecated: first deprecated in iOS 9.0
    iOS---searchBar 搜索框 光标初始位置后移
    iOS---设置输入框的光标位置
    iOS tableviewcell 分割线 偏移和颜色
    iOS---去除url中的反斜扛
    iOS---UISearchBar限制输入字数
  • 原文地址:https://www.cnblogs.com/actionscr/p/4846891.html
Copyright © 2011-2022 走看看