嵌入jetty到Java代码

在做Demo实例时,使用的jetty版本为8.x。为了避免麻烦,将所有的包都导入到MyEclipse的lib目录下。

实例1:自定义handler的服务器

package com.jetty.test01;

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>");
    }
}
package com.jetty.test01;

import org.eclipse.jetty.server.Server;

public class SimplestServer
{
    public static void main(String[] args) throws Exception
    {
    	Server server = new Server(8081);
        server.setHandler(new HelloHandler());
        server.start();
        server.join();
    }
}

访问路径:http://localhost:8080

实例2:通过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.jetty.test01;

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:文件服务器:

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

实例4:创建Servlet

package com.jetty.test01;

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;

public class OneServletContext {

	public static void main(String[] args) throws Exception{
		Server server = new Server(8085);
		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.jetty.test01;

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 static final long serialVersionUID = 246698127519451952L;

	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

实例5:

嵌入jetty到Java代码,布布扣,bubuko.com

时间: 2024-07-31 07:51:55

嵌入jetty到Java代码的相关文章

JSP中嵌入java代码方式以及指令

JSP中嵌入java代码的三种方式: (1)声明变量或方法 :  <%! 声明; %> :慎重使用,因为此方法定义的是全局变量 (2)java片段(scriptlet):  <% java代码; %> (3)表达式:用于输出表达式的值到浏览器,<%=表达式  %>  在表达式中不能加分号(;) JSP页面的指令 <%@ page %> //这个一般是写在最顶上的比如导入等 <%@ page language="java" impor

Struts2标签与Jsp的嵌入Java代码之间的变量相互引用

新年的第一天,对programer来说,和往常相比并没有太大不同,代码照样敲.做了一天键盘侠,不见得有什么出彩的成就(其实一直以来似乎都是这样/(ㄒoㄒ)/~~),倒是被曾经绊住的问题再次绊住然后纠结地解决了,顺便复习了一下.问题就是在Struts2标签和Jsp的Java代码直接实现了变量相互引用. 情景1:有一个在valuestack里面有一个变量,而我们目标除了获得这个值之外,还可能会更改它的值,这个操作可能是通过webservice,service.dao等进行,而这些操作都要进行Java

JSP中嵌入JAVA代码的三种方式

表达式标签 <%= %>  显示功能的标签 作用:计算表达式的值,例如:<%=1+1%>;在页面显示表达式的返回值 注意:<%= %>中不能有分号 声明式标签 <%! %> 作用:声明变量和函数,可以由java代码调用.例如<%! string a="hello world!" %> 注意:1.<%! %>中可以出现分号 2.声明脚本可以放在页面上方或者下方 3.不建议在声明脚本中声明变量,这样会导致线程不安全 普

web项目嵌入Jetty运行的两种方式(Jetty插件和自制Jetty服务器)

在开发Java web项目时候,可以在项目中嵌入Jetty服务的方式来运行web程序. 由于最近开发web项目,自己使用的是比较旧的eclipse不支持导入tomcat来运行项目,于是就学习了下使用项目中Jetty来运行项目. 采用Jetty Plugin 在pom文件中引入Jetty Plugin配置即可: <properties>    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

一段非常值得珍藏的Java代码,Socket模拟容器,尽管简单但却很有意义

Tomcat.Weblogic.Jetty.WebService做了什么样子的事情呢?只不过是通过SOCKET来监听服务器上某一个端口的请求,进行请求的处理,并且将响应信息写回去.简单的说就是这样了,但是复杂里面讲呢,Tomcat必须要兼顾安全.标准.完美兼容HTTP的规范.多线程支持.数据库,数据源支持.可配置.Web端管理.SSL等等方面,所以又是非常复杂的.下面是一个例子,对于新手而言是非常有用的一段代码. package com.ziwen.container; import java.

Android平台下使用lua调用Java代码经验总结

动态语言以其执行的灵活性,可配置性.方便调试能够为开发带来极大的方便.假设用好了.能够极大的提高开发的效率. 怪不得像游戏开发这样复杂的软件开发里没有不集成脚本语言的. 当中,lua以其小巧,灵活.方便扩展,方便嵌入被用于大多数的游戏开发中. 对于我来说.对于一个充分认识到动态的力量的人来说,在软件开发里集成一种脚本语言成为一种非常重要的非常有意义的工作. 可是在Android平台.在试过Python后,发现尽管集成也不是什么困难的事,可是感觉它还是有点大,一个动态库就有3M多,python库还

IntelliJ IDEA: maven &amp; jetty 开发 java web

之前使用eclipse + maven + jetty开发java web应用,本着no zuo no gain的想法, 折腾了一下Intellj idea下开发环境的搭建,顺带学习了maven repository的概念. 环境 系统:OS X Yosemite IDE:IntelliJ IDEA 14.0.1 CE JDK:1.8.0_25 svn使用 svn checkout项目到project 图 1. svn maven使用 右侧栏Maven Projects:Maven Projec

用Eclipse+Maven+Jetty构建Java Web开发环境(综合几篇教程整合2014年版)

工作需要用到Jetty作为web容器,得知Eclipse+Maven+Jetty的组合很不错,因此到网上查找了很多教程,但是或多或少写的不详细或者有过时的内容在里面导致最后配置失败,为了以后同事配置方便,写下这篇配置教程,顺便来方便一下大家. 用到的参考资料如下: [用Maven构建Java Web开发环境(Jetty容器)](以此教程为主)http://sarin.iteye.com/blog/784275 以及 http://sarin.iteye.com/blog/784697 [在Ecl

只用120行Java代码写一个自己的区块链

区块链是目前最热门的话题,广大读者都听说过比特币,或许还有智能合约,相信大家都非常想了解这一切是如何工作的.这篇文章就是帮助你使用 Java 语言来实现一个简单的区块链,用不到 120 行代码来揭示区块链的原理! “用不到120行 Java 代码就能实现一个自己的区块链!” 听起来不可思议吧?有什么能比开发一个自己的区块链更好的学习实践方法呢?那我们就一起来实践下! 因为我们是一家从事互联网金融的科技公司,所以我们采用虚拟资产金额作为这篇文章中的示例数据.大家可以先为自己想一个数字,后面我们会用