`
zyn010101
  • 浏览: 325680 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jetty嵌入式使用方法

    博客分类:
  • java
阅读更多

以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/ithttp://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/

分享到:
评论
2 楼 wyktx 2015-01-31  
请教楼主
你的第二个从xml创建服务器,运行main函数那个,我这报空指针异常,请问如何解决?
谢谢
1 楼 布拉君君 2013-11-15  
请问第一种方式怎么访问啊,你贴的那个访问方式不行啊

相关推荐

    jetty 嵌入式开发源码

    2. **嵌入式使用** 在嵌入式开发中,你可以直接在你的Java代码中创建Jetty Server实例,配置Connectors和Handlers,然后启动服务器,无需部署WAR文件。这使得开发、测试和调试过程更加便捷。 3. **源码分析** - `...

    shell脚本启动jetty嵌入式server

    shell脚本启动jetty嵌入式server,shell脚本启动jetty嵌入式server

    jetty嵌入式服务器必须的jar包

    jetty嵌入式服务器开发所必须的jar包,本人使用jetty版本为6.1.3,jar包总数为9个,来自jetty:commons-el-1.0.jar,jasper-compiler-5.5.15,jasper-compiler-jdt-5.5.15.jar,jasper-runtime-5.5.15.jar,jetty-...

    使用Jetty嵌入式开发调试Web程序

    NULL 博文链接:https://yangq.iteye.com/blog/1399621

    jetty嵌入式服务器实例大全

    10. **嵌入式使用**: 最大的特点是Jetty的嵌入式特性,可以直接在你的应用程序中启动和停止Jetty服务器,无需独立部署。这对于微服务、测试和快速原型开发非常有利。 通过以上实例,你将能够熟练地在Java项目中...

    jetty嵌入式服务.rar

    这个“jetty嵌入式服务.rar”文件很可能包含了关于如何在Java应用中集成和使用Jetty的相关资料。 在Java世界里,嵌入式服务器如Jetty提供了一种方便的方式来部署和运行Web应用程序,特别是对于那些希望快速启动、低...

    jetty6 嵌入式使用

    Jetty 6是一款轻量级、高性能的Java Web服务器和Servlet容器,因其可嵌入式使用而备受开发者青睐。在Eclipse这样的集成开发环境中,你可以直接通过Starter类快速启动和运行Jetty服务,大大简化了Web应用的部署流程。...

    jetty嵌入式Httpserver

    最后,`httpserver-test`这个文件可能是测试用例或示例代码,包含了一些使用Jetty实现HTTP服务器的实例,你可以通过查看这个文件来进一步学习和理解Jetty的使用方法。记住,实践是最好的老师,动手编写和运行代码将...

    jetty6.1.26嵌入式使用

    在javaweb项目中嵌入式使用jetty作为web服务器,下载即可运行

    jetty嵌入式web容器jar包

    jetty嵌入式web容器jar包 示例: public static void main(String[] args) { // 服务器的监听端口 Server server = new Server(6666); // 关联一个已经存在的上下文 WebAppContext context = new WebAppContext...

    jetty嵌入式实例

    总结来说,"jetty嵌入式实例"涵盖了如何在Java应用中集成Jetty服务器,接收并处理JSON数据,以及如何从JSON中提取特定信息并展示在浏览器上。这些技能在现代Web开发中非常实用,尤其是在构建RESTful API和服务时。...

    Jetty嵌入式服务器的JNDI快速配置指南

    **Jetty嵌入式服务器的JNDI快速配置指南** Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,常被用于嵌入式环境,因为它可以方便地与应用程序集成,无需独立部署。JNDI(Java Naming and Directory ...

    嵌入式jetty服务器开发所有的依赖jar包

    这些jar包的集合确保了开发人员在使用嵌入式Jetty时可以无缝地处理HTTP请求、Servlet、JSP以及构建流程,从而专注于业务逻辑的开发,而不用花费时间寻找和管理依赖项。对于希望快速搭建和运行Java Web应用的开发者来...

    jetty9.0.4嵌入式服务器开发所必须的全部jar包

    jetty嵌入式服务器开发所必须的全部jar包。本人使用jetty版本为9.0.4,这个版本比较稳定些。jar包数据很多,最后集中在jetty-all中,再外引入一下servlet-api-这个包,是与9.0.4配套的。 好东西,大家分享。

    基于jetty嵌入式容器的java性能分析工具,内嵌H2 database,以图表形式直观展.zip

    此外,使用Jetty作为嵌入式容器,意味着该工具可以直接与应用程序结合,而无需独立部署或配置服务器。这对于开发者来说是一种非常便捷的解决方案,尤其是在本地开发和调试环境中。Jetty的轻量级特性和低资源消耗也使...

    嵌入式jetty运行所需jar包

    包括org.eclipse.jetty.servlet_7.1.6.v20100715.jar、org.eclipse.jetty.server.jar、org.eclipse.jetty.servlet.source_7.1.6.v20100715.jar三个jar包,在进行jetty嵌入式编程时需要用到。

    JAVA里使用Jetty作为轻量级嵌入式的Web容器

    Java中的Jetty是一个轻量级、高性能且可嵌入式的Web服务器和Servlet容器,它以其简单易用和高效性在开发社区中广受欢迎。本文将深入探讨Jetty的基本概念、特性以及如何在Java项目中使用它。 1. **Jetty简介** - ...

    通过Jetty实现文件上传下载的小工具

    NULL 博文链接:https://vista-rui.iteye.com/blog/1386427

    Java如何使用Jetty实现嵌入式的Servlet容器

    Java如何使用Jetty实现嵌入式的Servlet容器 在Java中,实现嵌入式的Servlet容器可以使用Jetty,Jetty是一个Java实现的开源的servlet容器,可以作为一个完整的Web服务器和Servlet容器,同时也可以嵌入在Java应用程序...

Global site tag (gtag.js) - Google Analytics