maven+eclipse创建web项目

(1)创建项目参考

转自:http://blog.csdn.net/yuguiyang1990/article/details/8796726

(前提是已经安装好了m2eclipse插件)

1.新建Maven项目

 

1.1 File -> New -> Other

maven+eclipse创建web项目_第1张图片

1.2 选择Maven Project ,单击Next

maven+eclipse创建web项目_第2张图片

1.3 保持默认即可,单击Next

maven+eclipse创建web项目_第3张图片

1.4 选择Archetype为 web app,单击Next

maven+eclipse创建web项目_第4张图片

1.5 输入一些必要信息,单击Finish

maven+eclipse创建web项目_第5张图片

1.6 项目结构如下图:

maven+eclipse创建web项目_第6张图片

2.配置项目

现在开始修改一些配置

2.1 在项目上右键单击,添加Source Folder

Maven的项目有一些约定:src/main/java , src/main/resources , src/test/java , src/test/resources .那么,添加这些文件夹:

maven+eclipse创建web项目_第7张图片

输入Source Folder 的名字

maven+eclipse创建web项目_第8张图片

创建完之后的目录结构:

maven+eclipse创建web项目_第9张图片

2.2 修改Build Path 配置

在项目上,右键单击,选择 Build Path ->Configure Build Path

maven+eclipse创建web项目_第10张图片

 

选择 Source标签,会显示4个Source Folder ,修改他们的 OutPut folder :

maven+eclipse创建web项目_第11张图片

双击每个文件夹的Output folder,选择路径

src/main/java,src/main/resources,选择target /classes;
src/test/java ,src/test/resources, 选择target/test-classes;

maven+eclipse创建web项目_第12张图片

修改完成后如下图所示:

 

maven+eclipse创建web项目_第13张图片

修改JDK版本:选择 libraries 标签,选中JRE library,单击Edit按钮

maven+eclipse创建web项目_第14张图片

选择系统默认的就可以了,单击 Finish 按钮:

maven+eclipse创建web项目_第15张图片

最后,单击OK即可:

maven+eclipse创建web项目_第16张图片

完成后,项目结构如下图:

maven+eclipse创建web项目_第17张图片

2.3 将项目转换为Dynamic Web Project

在项目上右键单击,选择 Properties:

maven+eclipse创建web项目_第18张图片

在左侧选择 Project Facets,单击右侧的 ”Convert faceted from “链接:

maven+eclipse创建web项目_第19张图片

修改Java为你当前项目的JDK,并添加Dynamic Web Module ,最后单击”Further Configuration available“ 链接:

maven+eclipse创建web项目_第20张图片

 

修改Content directory 为 src/main/webapp ,单击OK:

maven+eclipse创建web项目_第21张图片

在一次单击OK,完成操作:

maven+eclipse创建web项目_第22张图片

2.4 设置部署程序集(Web Deployment Assembly)

在项目上右键单击,选择Properties,在左侧选择Deployment Assembly

maven+eclipse创建web项目_第23张图片

此处列表是,部署项目时,文件发布的路径。


1,我们删除test的两项,因为test是测试使用,并不需要部署。
2,设置将Maven的jar包发布到lib下。


Add -> Java Build Path Entries -> Maven Dependencies -> Finish
设置完成效果图
maven+eclipse创建web项目_第24张图片

单击OK

完成后,项目结构如下图所示:

maven+eclipse创建web项目_第25张图片

就这样,使用Maven构建的一个Web项目就完成了,在下一篇博客里,我们会写一个简单的用户登录的Servlet测试一下。

 

 

 

(2)创建测试用例参考

转自:http://blog.csdn.net/yuguiyang1990/article/details/8797153

 

1.在src/main/java下,新建一个Servlet

 

package com.deppon.text01.action;

import java.io.IOException;

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

public class UserServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		response.setContentType("text/html;charset=utf-8");

		String action = request.getParameter("action");
		if ("login_input".equals(action)) {
			request.getRequestDispatcher("login.jsp").forward(request, response);
		} else if ("login".equals(action)) {
			String name = request.getParameter("name");
			String password = request.getParameter("password");

			System.out.println("name->" + name + ",password->" + password);
		}
	}

}
 

 

2. 修改web.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  
  <servlet>
    <servlet-name>UserServlet</servlet-name>
    <servlet-class>com.deppon.text01.action.UserServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>UserServlet</servlet-name>
    <url-pattern>/user</url-pattern>
  </servlet-mapping>
  
</web-app>
 

 

3. 新建JSP

index.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 Maven</title>
	</head>
	
	<body>
		<p>大家好!</p>
		<a href="user?action=login_input">去登录</a>
	</body>
</html>

 

login.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>登录界面</title>
	</head>
	
	<body>
		<form action="user?action=login" method="post">
			Name:<input type="text" name="name" />
			Password:<input type="password" name="password" />
			
			<input type="submit" value="登录" />
		</form>
	</body>
</html>

 

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.deppon.demo</groupId>
  <artifactId>test01</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>test01 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>
    
    <!-- 添加Servlet -->
    <dependency>  
	    <groupId>javax.servlet</groupId>  
	    <artifactId>servlet-api</artifactId>  
	    <version>2.5</version>  
	    <scope>compile</scope>
    </dependency>  
    
  </dependencies>
  <build>
    <finalName>test01</finalName>
  </build>
</project>

 

 

 

4. 测试

maven+eclipse创建web项目_第26张图片

maven+eclipse创建web项目_第27张图片

maven+eclipse创建web项目_第28张图片

项目结构如下图所示:

maven+eclipse创建web项目_第29张图片

其实,构建完成之后,开发的话,应该和平时开发Web项目是一样的。

 

 

 

需要特别说明的是,在pom.xml中包含了如下代码段:

    <dependency>  
	    <groupId>javax.servlet</groupId>  
	    <artifactId>servlet-api</artifactId>  
	    <version>2.5</version>  
	    <scope>provided</scope>
    </dependency>  

 编译的时候没有问题,在部署的时候,由于容器中提供的servlet-api的jar版本不是2.5,因此会报错:

jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class

 这个与dependency中的scope标签有关系,改为complies即可消除(但是这种做法有问题,解决方法就是看你的tomcat容器的版本号)。否则在打成war包的时候webapps/WEB-INFO/lib中不会包含这个jar包,而容器本身也没有提供这个jar包,所以会出错。

你可能感兴趣的:(eclipse)