设为首页 收藏本站
查看: 547|回复: 0

[经验分享] jetty嵌入式使用方法

[复制链接]

尚未签到

发表于 2017-2-26 06:02:48 | 显示全部楼层 |阅读模式
  以jetty-hightide-8.1.6.v20120903版本为例,
  1.文件服务器

package com.chinahrt.zyn.jetty;
import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.DefaultHandler;
import org.eclipse.jetty.server.handler.HandlerList;
import org.eclipse.jetty.server.handler.ResourceHandler;
import org.eclipse.jetty.server.nio.SelectChannelConnector;
public class FileServer {
public static void main(String args[]) throws Exception{
Server server = new Server();
SelectChannelConnector connector = new SelectChannelConnector();
connector.setPort(8080);
server.addConnector(connector);
ResourceHandler resource_handler = new ResourceHandler();
resource_handler.setDirectoriesListed(true);
resource_handler.setWelcomeFiles(new String[]{"index.html"});
resource_handler.setResourceBase(".");
HandlerList handlers = new HandlerList();
handlers.setHandlers(new Handler[]{resource_handler,new DefaultHandler()});
server.setHandler(handlers);
server.start();
server.join();
}
}

  访问路径:http://localhost:8080
  2.从xml创建服务器,src放fileServer.xml

<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<Configure id="FileServer" class="org.eclipse.jetty.server.Server">
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
<Set name="port">8080</Set>
</New>
</Arg>
</Call>
<Set name="handler">
<New class="org.eclipse.jetty.server.handler.HandlerList">
<Set name="handlers">
<Array type="org.eclipse.jetty.server.Handler">
<Item>
<New class="org.eclipse.jetty.server.handler.ResourceHandler">
<Set name="directoriesListed">true</Set>
<Set name="welcomeFiles">
<Array type="String"><Item>index.html</Item></Array>
</Set>
<Set name="resourceBase">.</Set>
</New>
</Item>
<Item>
<New class="org.eclipse.jetty.server.handler.DefaultHandler">
</New>
</Item>
</Array>
</Set>
</New>
</Set>
</Configure>

package com.chinahrt.zyn.jetty;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.util.resource.Resource;
import org.eclipse.jetty.xml.XmlConfiguration;
public class FileServerXml {
public static void main(String[] args) throws Exception{
Resource fileserver_xml = Resource.newSystemResource("fileServer.xml");
XmlConfiguration configuration = new XmlConfiguration(fileserver_xml.getInputStream());
Server server = (Server)configuration.configure();
server.start();
server.join();
}
}

  访问路径http://localhost:8080/
  3.servlet

package com.chinahrt.zyn.jetty;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
public class OneServletContext {
/**
* @param args
* Administrator
* 2012-9-12 下午1:12:10
*/
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
Server server = new Server(8080);
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");
server.setHandler(context);
context.addServlet(new ServletHolder(new HelloServlet()), "/*");
context.addServlet(new ServletHolder(new HelloServlet("Buongiorno Mondo")), "/it/*");
context.addServlet(new ServletHolder(new HelloServlet("Bonjour le monde")), "/fr/*");
server.start();
server.join();
}
}


package com.chinahrt.zyn.jetty;
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 HelloServlet extends HttpServlet {
private String greeting="Hello World";
public HelloServlet(){}
public HelloServlet(String greeting){
this.greeting = greeting;
}
protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException
{
response.setContentType("text/html");
response.setStatus(HttpServletResponse.SC_OK);
response.getWriter().println("<h1>"+greeting+"</h1>");
response.getWriter().println("session="+request.getSession(true).getId());
}
}

  访问路径:http://localhost:8080/,http://localhost:8080/it,http://localhost:8080/fr
  4

package com.chinahrt.zyn.junit.chapter6;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;
public class HelloHandler extends AbstractHandler {
public void handle(String target, Request baseRequest, HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException {
response.setContentType("text/html;charset=utf-8");
response.setStatus(HttpServletResponse.SC_OK);
baseRequest.setHandled(true);
response.getWriter().println("<h1>Hello World</h1>");
response.getWriter().println("Request url:"+target);
}
}


package com.chinahrt.zyn.jetty;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.ContextHandler;
import com.chinahrt.zyn.junit.chapter6.HelloHandler;
public class OneContext {
/**
* @param args
* Administrator
* 2012-9-12 下午12:57:47
*/
public static void main(String[] args) throws Exception{
Server server = new Server(8080);
ContextHandler context = new ContextHandler();
context.setContextPath("/hello");
context.setResourceBase(".");
context.setClassLoader(Thread.currentThread().getContextClassLoader());
server.setHandler(context);
context.setHandler(new HelloHandler());
server.start();
server.join();
}

}

  访问路径:http://localhost:8080/hello
  5.war包

package com.chinahrt.zyn.jetty;
import org.eclipse.jetty.security.ConstraintSecurityHandler;
import org.eclipse.jetty.security.HashLoginService;
import org.eclipse.jetty.security.SecurityHandler;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.webapp.WebAppContext;
public class OneWebApp {
/**
* @param args
* Administrator
* 2012-9-12 下午1:23:26
*/
public static void main(String[] args) throws Exception{
String jetty_home=System.getProperty("jetty.home","F:\\book\\开源项目\\jetty-hightide-8.1.6.v20120903\\jetty-hightide-8.1.6.v20120903");
Server server = new Server(8080);
WebAppContext webapp = new WebAppContext();
SecurityHandler securityHandler = new ConstraintSecurityHandler();
HashLoginService loginService = new HashLoginService();
loginService.setName("Realm");
securityHandler.setLoginService(loginService);
webapp.setSecurityHandler(securityHandler);
webapp.setContextPath("/");
webapp.setWar(jetty_home+"/webapps/test.war");
server.setHandler(webapp);
server.start();
server.join();
}
}

  url:http://localhost:8080
  6.多个部署

package com.chinahrt.zyn.jetty;
import org.eclipse.jetty.security.ConstraintSecurityHandler;
import org.eclipse.jetty.security.HashLoginService;
import org.eclipse.jetty.security.SecurityHandler;
import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.ContextHandlerCollection;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.webapp.WebAppContext;
public class ManyContexts {
/**
* @param args
* Administrator
* 2012-9-12 下午1:35:10
*/
public static void main(String[] args) throws Exception{
Server server = new Server(8080);
ServletContextHandler context0 = new ServletContextHandler(ServletContextHandler.SESSIONS);
context0.setContextPath("/ctx0");
context0.addServlet(new ServletHolder(new HelloServlet()), "/*");
context0.addServlet(new ServletHolder(new HelloServlet("buongiorno")),"/it/*");
context0.addServlet(new ServletHolder(new HelloServlet("bonjour le Monde")),"/fr/*");
WebAppContext webapp = new WebAppContext();
String jetty_home=System.getProperty("jetty.home","F:\\book\\开源项目\\jetty-hightide-8.1.6.v20120903\\jetty-hightide-8.1.6.v20120903");
webapp.setContextPath("/ctx1");
webapp.setWar(jetty_home+"/webapps/test.war");
SecurityHandler securityHandler = new ConstraintSecurityHandler();
HashLoginService loginService = new HashLoginService();
loginService.setName("Realm");
securityHandler.setLoginService(loginService);
webapp.setSecurityHandler(securityHandler);
ContextHandlerCollection contexts = new ContextHandlerCollection();
contexts.setHandlers(new Handler[] { context0, webapp });
server.setHandler(contexts);
server.start();
server.join();
}

}

  url:http://localhost:8080/ctx1/  http://localhost:8080/ctx0/
  7

package com.chinahrt.zyn.jetty;
import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.nio.SelectChannelConnector;
import org.eclipse.jetty.server.ssl.SslSelectChannelConnector;
import org.eclipse.jetty.util.thread.QueuedThreadPool;
import com.chinahrt.zyn.junit.chapter6.HelloHandler;
public class ManyConnectors {
public static void main(String[] args) throws Exception{
Server server = new Server();
SelectChannelConnector connector0 = new SelectChannelConnector();
connector0.setPort(8080);
connector0.setMaxIdleTime(30000);
connector0.setRequestHeaderSize(8192);
SelectChannelConnector connector1 = new SelectChannelConnector();
connector1.setHost("127.0.0.1");
connector1.setPort(8888);
connector1.setThreadPool(new QueuedThreadPool(20));
connector1.setName("/admin");
SslSelectChannelConnector ssl_connector = new SslSelectChannelConnector();
//String jetty_home = System.getProperty("jetty.home", "../jetty-distribution/target/distribution");
String jetty_home = System.getProperty("jetty.home","F:\\book\\开源项目\\jetty-hightide-8.1.6.v20120903\\jetty-hightide-8.1.6.v20120903");
System.setProperty("jetty.home", jetty_home);
ssl_connector.setPort(8443);
org.eclipse.jetty.util.ssl.SslContextFactory cf = ssl_connector.getSslContextFactory();
cf.setKeyStore(jetty_home+"/etc/keystore");
cf.setKeyStorePassword("OBF:1vny1zlo1x8e1vnw1vn61x8g1zlu1vn4");
cf.setKeyManagerPassword("OBF:1u2u1wml1z7s1z7a1wnl1u2g");
server.setConnectors(new Connector[]{ connector0, connector1, ssl_connector });
server.setHandler(new HelloHandler());
server.start();
server.join();
}
}

  https://localhost:8443/ http://localhost:8888/

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-347140-1-1.html 上篇帖子: jetty容器学习历程 下篇帖子: Maven Jetty Plugin运行配置jetty:run㈡
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表