如果一个Java项目要增加一些可视化页面,新建Web项目再把原代码搬过去进行改造就太麻烦了,这时就可以通过在原项目中内置Jetty来改造为Web项目.
import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.nio.SelectChannelConnector;
import org.eclipse.jetty.webapp.WebAppContext;
public class JettyServer {
private final Server server;
private create() {
server = new Server();
Connector connector = new SelectChannelConnector();
connector.setPort(8888);
server.setConnectors(new Connector[] { connector });
WebAppContext webAppContext = new WebAppContext("web", "/");
webAppContext.setDescriptor("web/WEB-INF/web.xml");
webAppContext.setResourceBase("web");
webAppContext.setDisplayName("项目名");
webAppContext.setClassLoader(Thread.currentThread().getContextClassLoader());
webAppContext.setConfigurationDiscovered(true);
webAppContext.setParentLoaderPriority(true);
server.setHandler(webAppContext);
}
public void start() {
try {
server.start();
} catch (Exception e) {
e.printStackTrace();
}
}
public void stop() {
try {
server.stop();
} catch (Exception e) {
e.printStackTrace();
}
}
}
端口定义为8888,可根据需要修改,web.xml目录放于web/WEB-INF目录下,Jetty相关包可去官网下载.需要注意的是Jetty默认不支持Jsp,所以一般页面用静态html显示,页面访问后台可通过配置web.xml访问后台Servlet进行处理.