1、下载Jetty
下载地址:http://www.eclipse.org/jetty/download.html
2、在windows上运行jetty
一、将下载的jetty解压到D:\installed,最终可以看到的内容如下:
二、进入D:\installed\jetty-distribution-9.4.7.v20170914\demo-base目录,然后shift + 鼠标右键 ==>”在此处打开命令行窗口”,输入以下命令:
java -jar ../start.jar
jetty的默认端口也是8080,在浏览器中输入:
http://localhost:8080/,显示的效果如下:
三、改变jetty的启动端口,比如将默认端口改成8888,输入以下命令:
java -jar ../start.jar jetty.port=8888
浏览器中输入http://localhost:8888/:
同样,还可以修改jetty_home中的start.ini中的jetty的默认端口,比如我修改成了9999。
直接在jetty_home点击start.jar后访问的效果是:
上面的现象其实是正确的
3、IDEA中配置Jetty
一、创建Jetty的web项目
二、配置Jetty
进行配置
勾选mod
选择要部署的项目
如果在执行项目的时候,出现JVM的已经Bind了,不一定是Jetty默认端口被占用,有可能是JMX的端口被占用了,所以在配置项目的时候,要对JMX的端口进行修改。把之前的1099改成其它的值,比如:
修改IDEA中默认使用的浏览器,然后最后自动弹出页面,效果如下:
最后:window下查看端口是否被占用的命令是:
netstat -ano | findstr “8080” (这个在CMD窗口中进行输入)
4、Web项目中配置Jetty的maven插件
找到web项目的pom.xml,输入以下内容:
<build>
<finalName>jetty-demo</finalName>
<plugins>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.4.7.v20170914</version>
<configuration>
<scanIntervalSeconds>10</scanIntervalSeconds>
<!--
通过下面的配置可以指定项目的contextPath的值,即访问的项目名称,
如果不指定,默认的访问名称是/
war,这个可以指定war最终生成的位置,以及war的名称
-->
<webApp>
<contextPath>/jetty-demo</contextPath>
<war>${project.basedir}/target/${project.build.finalName}.war</war>
</webApp>
</configuration>
</plugin>
</plugins>
</build>
进入磁盘pom.xml所在位置,打开CMD窗口,分别输入以下命令,然后看浏览器上的显示效果:
mvn jetty:run
mvn jetty:run-war
分别在浏览器上输入:
http://localhost:8080/jetty-demo/
同样可以将jetty-demo.war放到jetty-distribution-9.4.7.v20170914\webapps中,然后点击jetty-distribution-9.4.7.v20170914\start.jar,然后访问浏览器:
5、Eclipse下Jetty配置
一、打开Eclipse,然后安装Jetty插件
二、然后在find的输入框中输入jetty,点击GO,然后选择第一个列表中的内容,然后点击Install,安装完成后重新启动Eclipse
三、选中项目右击–Run As
四、进行Jetty的配置
五、最后点击Run As–》Run with jetty,就可以运行项目了。
看浏览器中的效果
6、通过Java代码,运行Jetty
一、创建项目,项目目录如下:
二、编写pom文件
<?xml version="1.0" encoding="UTF-8"?>
<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>com.toto.demo.jetty</groupId>
<artifactId>jetty-test</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- Jetty。要注意版本,版本匹配不对时,运行Jetty的应用将会报错-->
<dependency>
<groupId>org.eclipse.jetty.aggregate</groupId>
<artifactId>jetty-all</artifactId>
<version>8.0.4.v20111024</version>
</dependency>
<!-- Jetty Webapp -->
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId>
<version>8.0.4.v20111024</version>
</dependency>
<!--下面一句必须加上,否则在解析jsp的时候将会报错-->
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-jsp</artifactId>
<version>9.2.22.v20170606</version>
</dependency>
</dependencies>
<build>
<finalName>jetty-test</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
</project>
三、编写JettyStart代码
package com.toto.jetty;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.webapp.WebAppContext;
public class JettyStart {
public static void main(String[] args) throws Exception{
int port = 8888;
Server server = new Server(port);
WebAppContext context = new WebAppContext();
context.setContextPath("/");
context.setResourceBase("src/main/webapp");
context.setDescriptor("src/main/webapp/WEB-INF/web.xml");
// context.setDescriptor("./webapp/WEB-INF/web.xml");
// context.setResourceBase("./webapp");// 设置Web内容上下文路径
server.setHandler(context);
server.start();
server.join();
System.out.println("server is start, port is "+port+"............");
}
}
浏览器访问http://localhost:8888/: