`
rocketa
  • 浏览: 23937 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

创建webapp项目

阅读更多

当eclips和maven都准备好了,下面就开始创建一个webapp项目(我的eclipse已经装上maven wtp插件)

 

创建项目

1、打开cmd,进入需要存放项目的目录,执行mvn archetype:create -DgroupId=net.rocketa -DartifactId=mywebapp -DarchetypeArtifactId=maven-archetype-webapp,执行以后项目就建立好了

2、打开eclipse,Import-->Maven-->Existing Maven Projects,把刚创建好的项目导进eclipse(如果没有安装maven wtp插件的话,可以在导入前用在项目目录下执行命令mvn -Dwtpversion=1.0 eclipse:eclipse,再用“General”-->“Existing Projects into Workspace”导入,不然eclipse不能识别为web项目导致不能放进tomcat运行)

3、新建一个tomcat并运行,打开浏览器访问一下,OK

 

目录结构修改

但这时我发现新的maven webapp的目录结构跟eclipse创建的Dynamic Web Project的结构有所不同,这点让我很不爽,所以我要做两件事:

a)把src/main/webapp目录挪到更目录去,并且把它改名为“WebRoot”

b)把存放java的源目录建好

1、把src/main/webapp剪切到根目录,并改名为WebRoot

2、新建目录src/main/java

3、因为结构已经不是webapp默认的结构了,所以要修改pom.xml告诉maven

  <build>
    <finalName>mywebapp</finalName>
    <directory>target</directory>
    <sourceDirectory>src/main/java</sourceDirectory>
    <outputDirectory>WebRoot/WEB-INF/classes</outputDirectory>
    <resources>
    	<resource>
    		<directory>src/main/resources</directory>
    	</resource>
    </resources>
    <plugins>
    	<plugin>
	        <groupId>org.apache.maven.plugins</groupId>
	        <artifactId>maven-war-plugin</artifactId>
	        <version>2.0.2</version>
	        <configuration>
	          <!-- http://maven.apache.org/plugins/maven-war-plugin/ -->
	          <warSourceDirectory>WebRoot</warSourceDirectory>
	        </configuration>
	      </plugin>
    </plugins>
  </build>
 

4、在eclipse中刷新项目,并右击-->Maven-->Update Project Configuration

5、如果你的项目发生一个“CHKJ3000E: WAR Validation Failed: org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DeploymentDescriptorLoadException: WEB-INF/web.xml”错误,你可以右击web.xml-->validate,OK,错误消失

6、放进tomcat运行,访问以下、OK

补充:因为wtp插件比较智能,如果没有装插件的朋友,还需要修改 项目目录/.settings/.component,把其中的<wb-resource deploy-path="/" source-path="src/main/webapp"/>改为<wb-resource deploy-path="/" source-path="WebRoot"/>,不然tomcat运行以后访问会有问题。

 

编写简单的Servlet

1、因为需要用到servlet的包,所以要添加依赖,有多种方法:

a)修改pom.xml,加入下面片段

    <dependency>
    	<groupId>javax.servlet</groupId>
    	<artifactId>servlet-api</artifactId>
    	<version>2.4</version>
    	<scope>provided</scope>
    </dependency>
    <dependency>
    	<groupId>javax.servlet.jsp</groupId>
    	<artifactId>jsp-api</artifactId>
    	<version>2.1</version>
    	<scope>provided</scope>
    </dependency>

  b)右击项目-->Maven-->Add Dependency-->查询servlet-api和jsp-api-->选择正确的包和版本-->Scope选择provided-->OK,这时pom.xml会被自动修改

 

2、在java目录下创建包net.rocketa和类MyServlet

package net.rocketa;

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 MyServlet extends HttpServlet{

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
	System.out.println("MyServlet printing...");
		super.doGet(req, resp);
	}
	
}

 3、修改web.xml,加入servlet配置

  <servlet>
  	<servlet-name>myservlet</servlet-name>
  	<servlet-class>net.rocketa.MyServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>myservlet</servlet-name>
  	<url-pattern>/myservlet</url-pattern>
  </servlet-mapping>
 

4、发布到tomcat,运行,访问http://localhost:8080/mywebapp/myservlet,页面报405(正常,没有设置返回页面嘛),后台输出MyServlet printing...,OK

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics