使用 Eclipse 构建 Maven3.0 + SpringMVC 项目(一.完成框架搭建)
准备工具: eclipse 3.6 + maven 3.0 + apache-tomcat-7.0.29
一.
- 建立一个项目 File -> New ->Projec -> Maven Project -> Use default Workspace location -> maven-archetype-webapp
- 然后设置 GroupID 和 ArtifactID , package name 有没有无所谓。 点击 Finish; 进入下一步;
二.
- 接下来需要添加src/main/java,src/test/java ,src/test/resources三个文件夹。(如果不能创建则表示已有)右键项目根目录点击New -> Source Folder 建出这三个文件夹。注意不是建普通的Folder,而是Source Folder。
- Source Folder 建立完毕以后,需要去修改一下OutPut Folder 的路径;右键项目根目录点击 Build Path -> Configure Build Path -> Source(如图进行修改)
src/main/java,src/main/resources,选择target/classes;
src/test/java ,src/test/resources, 选择target/test-classes;
- 此处并没有设置完,我们要进入 右边菜单的Project Facets , 点击Convert to Facet Form... ;勾选并更改Dynamic Web Module的Version为2.5。
如果提示错误,可能需要在Java Compiler设置Compiler compliance level 为1.6。或者需要在此窗口的Java的Version改成1.6。 - 点击右边Runtimes 勾选
。
- 点击下方的链接: Further Configuration available。 弹出Modify Faceted Project窗口,此处是设置web.xml文件的路径,我们输入src/main/webapp。Generate web.xml deployment descriptor自动生成web.xml文件,可选可不选。
- 点击OK -> OK退出设置;
三.
- 右键项目根目录点击Properties。 点击Deployment Assembly . 删除test的两项,因为test是测试使用,并不需要部署。
- 设置将Maven的jar包发布到lib下。Add -> Java Build Path Entries -> Maven Dependencies -> Finish;
- 点击OK退出。至此我们的基本环境搭建完毕;
四.
- 使用Maven POM editor打开项目中的pom.xml文件,选择Dependencies,在Dependencies栏目点击Add进行,首先弹出一个搜索按钮,例 如输入spring-web,就会自动搜索关于spring-web相关的jar包,我们选择3.0.5版本的spring。将spring包全部添加进 来。需要添加的其他jar包有:junit、jstl。或者点击pom.xml直接编辑pom.xml文件。这样可以直接copy过来 dependencies内容。(这里我对jar的理解不够,只能贴上我在项目中常用的jar包);
- 当你发现你缺少一个jar包时你可以单独添加,方法如下:
- 注意单独添加需要设置它的Scope 。最重要的就是scope,它有以下几种取值:
- compile,缺省值,适用于所有阶段,会随着项目一起发布。
- provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。
- runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。
- test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。
- system,类似provided,需要显式提供包含依赖的jar,Maven不会在 Repository中查找它。
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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>myblog</groupId> <artifactId>myblog</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>myblog</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <type>jar</type> <scope>compile</scope> </dependency> <!-- springframe start --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-instrument</artifactId> <version>${org.springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-oxm</artifactId> <version>${org.springframework.version}</version> </dependency> <!-- springframe end --> <!-- 模板引擎 velocity start --> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity</artifactId> <version>1.7</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-tools</artifactId> <version>1.4</version> <scope>compile</scope> </dependency> <!-- Velocity的能力远不止web站点开发这个领域,例如,它可以从模板(template)产生SQL和PostScript、XML, 它也可以被当作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。Velocity也可以为Turbine web 开发架构提供模板服务(template service)。Velocity+Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发 --> <!-- 日志文件管理包 --> <!-- log start --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.6.1</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.6.1</version> <type>jar</type> <scope>compile</scope> </dependency> <!-- log end --> <dependency> <groupId>org.apache.ant</groupId> <artifactId>ant-apache-log4j</artifactId> <version>1.8.2</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>commons-digester</groupId> <artifactId>commons-digester</artifactId> <version>2.1</version> <type>jar</type> <scope>compile</scope> </dependency> <!-- mybatis核心包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.1.1</version> <type>jar</type> <scope>compile</scope> </dependency> <!-- mybatis/spring包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.1.1</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>com.kenai.nbpwr</groupId> <artifactId>org-apache-commons-dbcp</artifactId> <version>1.2.2-201002241055</version> <type>nbm</type> <scope>compile</scope> </dependency> <!-- mysql驱动包 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.14</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>com.caucho</groupId> <artifactId>hessian</artifactId> <version>4.0.7</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>jaxen</groupId> <artifactId>jaxen</artifactId> <version>1.1.4</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20090211</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>quartz</groupId> <artifactId>quartz</artifactId> <version>1.5.2</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>com.googlecode.xmemcached</groupId> <artifactId>xmemcached</artifactId> <version>1.3.6</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.1.13</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>0.2.10</version> </dependency> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> <version>1.2</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>net.sourceforge</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.0</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>com.kenai.nbpwr</groupId> <artifactId>org-apache-commons-io</artifactId> <version>1.3.1-201002241208</version> <type>nbm</type> <scope>compile</scope> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.2.2</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.7</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml-schemas</artifactId> <version>3.7</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>simpleimage</artifactId> <version>0.1</version> </dependency> <dependency> <groupId>com.sun.media</groupId> <artifactId>jai_codec</artifactId> <version>2012117</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>javax.media</groupId> <artifactId>jai_core</artifactId> <version>2012117</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-lgpl</artifactId> <version>1.8.1</version> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-lgpl</artifactId> <version>1.8.1</version> </dependency> </dependencies> <properties> <org.springframework.version>3.2.0.RELEASE </org.springframework.version> </properties> <build> <finalName>myblog</finalName> </build> </project>
五.编辑web.xml文件;
- 路径:/myblog/src/main/webapp/WEB-INF/web.xml
- 需要添加log4j,字符过滤,Spring 的dispatcher等等。
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" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>Archetype Created Web Application</display-name> <!-- Spring字符集过滤器 --> <filter> <filter-name>SpringEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>SpringEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- Spring的log4j监听器 --> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener> <!-- springMVC核心配置 --> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/dispatcher-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> </web-app>
六.编辑Spring的配置文件dispatcher-servlet.xml ;
- 路径:/myblog/src/main/webapp/WEB-INF/dispatcher-servlet.xml ;(可以随意,只要在web.xml中填上对应的正确的路径就OK)
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
</init-param> - 如要添加MVC驱动、注解检测、视图解析等。
- 路径:/myblog/src/main/webapp/WEB-INF/dispatcher-servlet.xml ;(可以随意,只要在web.xml中填上对应的正确的路径就OK)
七.编辑一个用来测试的Controller层测试类 App.java;
- 路径:/myblog/src/main/java/myblog/myblog/App.java ;
- 此类只有一个方法做地址映射,并向页面传递一个数据。
App.javapackage myblog.myblog; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; /** * Your first JSP page! * */ @Controller public class App { @RequestMapping(value="index.do") public void index_jsp(Model model){ model.addAttribute("jerry", "It's your first page!"); System.out.println("index.jsp"); } }
八.编辑一个简单的index.jsp 页面;
-
首先在src/main/webapp/WEB-INF下建文件夹jsp。此处和dispatcher-servlet.xml配置文件中的prefix属性路径要一样。
-
在views下建index.jsp文件我们使用jstl获取Controlleradd的数据。
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"%> <!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>First Page</title> </head> <body> <c:out value="${jerry}"></c:out> </body> </html>
九.发布和测试:
- 发布到Tomcat 上;
- 浏览器输入http://localhost:8080/myblog/index.do 进行测试。
十.相关截图:
上天会实现勤劳的人的志愿;
有耕耘就会有收获;
我们只要不懈努力;
最大限度的完善充实自己;
千方百计的提高自己的竞争实力;
就会有一个美好光明的明天。


浙公网安备 33010602011771号