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页面中)


forward.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" isELIgnored="false"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!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>Insert title here</title>
</head>
<body>
<h1>${message}</h1>
</body>
</html>

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

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

<plugin>
	<groupId>org.mortbay.jetty</groupId>
	<artifactId>maven-jetty-plugin</artifactId>
	<version>6.1.26</version>
	<configuration>
		<connectors>
			<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
				<port>8080</port>
			</connector>
		</connectors>
	</configuration>
</plugin>
当然,我们编写的servlet需要继承一个HttpServlet类,需要依赖这个的包:

		<dependency>
			<groupId>org.eclipse.jetty.orbit</groupId>
			<artifactId>javax.servlet</artifactId>
			<version>3.0.0.v201112011016</version>
		</dependency>

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

<servlet>
  	<servlet-name>TestServlet</servlet-name>
  	<servlet-class>com.ys.test.TestServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  	<servlet-name>TestServlet</servlet-name>
  	<url-pattern>/TestServlet</url-pattern>
  </servlet-mapping>

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

     

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


写入名称和命令:


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


运行部分结果:

[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 SelectChannelConnector@0.0.0.0:8080
[INFO] Started Jetty Server

1.4:在浏览器中测试:

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


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

2.0:安装tomcat插件:

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

<plugin>
	<groupId>org.apache.tomcat.maven</groupId>
	<artifactId>tomcat7-maven-plugin</artifactId>
	<version>2.2</version>
		<configuration>
			<port>8080</port>
			<path>/my-WebApp</path>
			<uriEncoding>UTF-8</uriEncoding>
			<server>tomcat</server>
		</configuration>
</plugin>

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


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

<web-app>
	<!--如果是使用jetty启动,则需要以下的servlet映射配置-->
  <!--<display-name>Archetype Created Web Application</display-name>-->
  <!--<servlet>-->
  	<!--<servlet-name>TestServlet</servlet-name>-->
  	<!--<servlet-class>com.ys.test.TestServlet</servlet-class>-->
  <!--</servlet>-->
  <!--<servlet-mapping>-->
  	<!--<servlet-name>TestServlet</servlet-name>-->
  	<!--<url-pattern>/TestServlet</url-pattern>-->
  <!--</servlet-mapping>-->
</web-app>

servlet类:

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

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

		<dependency>
			<groupId>org.eclipse.jetty.orbit</groupId>
			<artifactId>javax.servlet</artifactId>
			<version>3.0.0.v201112011016</version>
			<span style="color:#ff0000;"><scope>provided</scope>//我们在打包是不需要这个依赖包</span>
		</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"]

测试结果:


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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值