Intellij Idea社区版 上使用maven构建并使用插件jetty和tomcat运行servlet

Intellij Idea是一个不错的工具,刚开始可能有点陌生,但是使用一段时间之后就习惯了。idea有两种,IC(社区版)和IU(这个应该算是商业版),社区版是免费的,商业版是收费的,所以社区版比商业版少了一些功能,比如:JavaScript支持、java ee等,不过我们可以使用maven来安装插件来达到使得idea支持一些功能。在网上查询了一些资料和博文后总结一下。

1.使用maven安装jetty运行一个servlet 

1.1:安装maven,在idea上设置maven路径之后创建一个maven的webapp项目,并创建一个servlet类,这步网上有其他详解。(我们让访问到这个servlet之后跳转到forward.jsp页面中)

Intellij Idea社区版 上使用maven构建并使用插件jetty和tomcat运行servlet

forward.jsp:

[html] view plain copy
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"  
  2.     pageEncoding="UTF-8" isELIgnored="false"%>  
  3. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>  
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  5. <html>  
  6. <head>  
  7. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  8. <title>Insert title here</title>  
  9. </head>  
  10. <body>  
  11. <h1>${message}</h1>  
  12. </body>  
  13. </html>  

1.2:在pom.xml文件中安装jetty插件:

在pom.xml文件中的<plugins>节点下写入下面代码:

[html] view plain copy
  1. <plugin>  
  2.     <groupId>org.mortbay.jetty</groupId>  
  3.     <artifactId>maven-jetty-plugin</artifactId>  
  4.     <version>6.1.26</version>  
  5.     <configuration>  
  6.         <connectors>  
  7.             <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">  
  8.                 <port>8080</port>  
  9.             </connector>  
  10.         </connectors>  
  11.     </configuration>  
  12. </plugin>  
当然,我们编写的servlet需要继承一个HttpServlet类,需要依赖这个的包:

[html] view plain copy
  1. <dependency>  
  2.     <groupId>org.eclipse.jetty.orbit</groupId>  
  3.     <artifactId>javax.servlet</artifactId>  
  4.     <version>3.0.0.v201112011016</version>  
  5. </dependency>  

之后需要在web.xml中配置servlet:

[html] view plain copy
  1. <servlet>  
  2.     <servlet-name>TestServlet</servlet-name>  
  3.     <servlet-class>com.ys.test.TestServlet</servlet-class>  
  4.   </servlet>  
  5.   <servlet-mapping>  
  6.     <servlet-name>TestServlet</servlet-name>  
  7.     <url-pattern>/TestServlet</url-pattern>  
  8.   </servlet-mapping>  

1.3:配置运行命令:在工具栏中点击如果按钮:

Intellij Idea社区版 上使用maven构建并使用插件jetty和tomcat运行servlet     

点击绿色的+号之后如图:

Intellij Idea社区版 上使用maven构建并使用插件jetty和tomcat运行servlet

写入名称和命令:

Intellij Idea社区版 上使用maven构建并使用插件jetty和tomcat运行servlet

之后再工具栏上有这样的图标,点击运行即可:

Intellij Idea社区版 上使用maven构建并使用插件jetty和tomcat运行servlet

运行部分结果:

[INFO] Starting jetty 6.1.26 ...
[INFO] jetty-6.1.26
[INFO] No Transaction manager found - if your webapp requires one, please configure one.
[INFO] Started [email protected]:8080
[INFO] Started Jetty Server

1.4:在浏览器中测试:

我们在servlet中给request赋值一个messag的属性,在forward.jsp中取得这个属性:

Intellij Idea社区版 上使用maven构建并使用插件jetty和tomcat运行servlet

结果:可见我们已经成功创建并部署了一个简单的servlet应用。

2.0:安装tomcat插件:

2.1:在<plugins>节点中加上:

[html] view plain copy
  1. <plugin>  
  2.     <groupId>org.apache.tomcat.maven</groupId>  
  3.     <artifactId>tomcat7-maven-plugin</artifactId>  
  4.     <version>2.2</version>  
  5.         <configuration>  
  6.             <port>8080</port>  
  7.             <path>/my-WebApp</path>  
  8.             <uriEncoding>UTF-8</uriEncoding>  
  9.             <server>tomcat</server>  
  10.         </configuration>  
  11. </plugin>  

步骤和安装jetty插件一样,只是在填写命令时填写:tomcat7:run

Intellij Idea社区版 上使用maven构建并使用插件jetty和tomcat运行servlet

这里我们可以使用@WebServlet的注解:这时web.xml中的servlet映射可以注释掉:

[html] view plain copy
  1. <web-app>  
  2.     <!--如果是使用jetty启动,则需要以下的servlet映射配置-->  
  3.   <!--<display-name>Archetype Created Web Application</display-name>-->  
  4.   <!--<servlet>-->  
  5.     <!--<servlet-name>TestServlet</servlet-name>-->  
  6.     <!--<servlet-class>com.ys.test.TestServlet</servlet-class>-->  
  7.   <!--</servlet>-->  
  8.   <!--<servlet-mapping>-->  
  9.     <!--<servlet-name>TestServlet</servlet-name>-->  
  10.     <!--<url-pattern>/TestServlet</url-pattern>-->  
  11.   <!--</servlet-mapping>-->  
  12. </web-app>  

servlet类:

@WebServlet("/test")
public class TestServlet extends HttpServlet {

最后我们一个在maven依赖的servlet中加上:

[html] view plain copy
  1. <dependency>  
  2.     <groupId>org.eclipse.jetty.orbit</groupId>  
  3.     <artifactId>javax.servlet</artifactId>  
  4.     <version>3.0.0.v201112011016</version>  
  5.     <span style="color:#ff0000;"><scope>provided</scope>//我们在打包是不需要这个依赖包</span>  
  6. </dependency>  

运行部分结果:

[INFO] create webapp with contextPath: /my-WebApp
九月 23, 2016 12:39:15 上午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-bio-8080"]
九月 23, 2016 12:39:15 上午 org.apache.catalina.core.StandardService startInternal
信息: Starting service Tomcat
九月 23, 2016 12:39:15 上午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.47
九月 23, 2016 12:39:24 上午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-bio-8080"]

测试结果:

Intellij Idea社区版 上使用maven构建并使用插件jetty和tomcat运行servlet

这样我们完成了jetty和tomcat安装过程和测试,希望能对您有用。