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

最近在项目中遇到关于jetty的问题,所以在网上做一些科普,接下来就给大家做一些分享:

Jetty是一个Java实现的开源的servlet容器,它既可以像Tomcat一样作为一个完整的Web服务器和Servlet容器,同时也可以嵌入在Java应用程序中,在Java程序中调用Jetty。

Jetty下载地址,本文写作时的最新版本是9.1.2,下载jetty-distribution-9.1.2.v20140210.zip

注意Jetty 9需要JDK 7,如果使用JDK 6的话会出现错误:java.lang.UnsupportedClassVersionError: Unsupported major.minor version 51.0。

在java项目中要实现servlet容器,首先需要引入下面的jar包:

  • jetty-servlet-9.1.2.v20140210.jar
  • jetty-webapp-9.1.2.v20140210.jar
  • jetty-xml-9.1.2.v20140210.jar
  • jetty-security-9.1.2.v20140210.jar

lib/jsp文件夹中的jar包

我的项目中是引入的war包文件,附上简单代码:

public static void main(String[] args) throws Exception
{
Server server = new Server(8080);
//声明上下文对象
WebAppContext webAppContext = new WebAppContext();
webAppContext.setContextPath("/");
webAppContext.setWar("CRweb.war");
webAppContext.setInitParameter("dirAllowed", "false");
//HandlerList顺序执行handler
HandlerList handlers = new HandlerList();
//声明ServletContextHandler
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/s");
//设置句柄
server.setHandler(context);
context.addServlet(new ServletHolder(new SelectPatientServlet()), "/selectOne");
//处理程序
handlers.addHandler(context);
handlers.addHandler(webAppContext);
// Add the handlers to the server adminand start jetty.
server.setHandler(handlers);
//启动服务star
server.start();
{
GUI界面界面加载的一些程序
}
// 最后加入服务器
server.join();
} 

项目中涉及到 在Java中内嵌浏览器插件。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • JavaWeb Servlet中url-pattern的使用

    JavaWeb Servlet中url-pattern的使用 1.Sevlet和Filter的url-pattern相关说明 一个页面请求根据url-pattern只匹配一个最佳的Servlet,而根据web.xml的filter-mapping标签的先后顺序,将满足要求的一个或者多个过滤器生成一个FilterChain 2.url-pattern配置 配置web.xml文件,用于定义映射的含义: (1)."/"开头-->路径映射         (2)."*.do&q

  • JavaWeb Servlet中Filter过滤器的详解

    JavaWeb Servlet中Filter过滤器的详解 1.简述 Filter过滤器,对web服务器所有web资源进行过滤,从而实现一些特殊的功能(权限访问控制.过滤敏感词汇.压缩响应信息).Filter能够对Servlet容器的请求和响应进行检查和修改,其本身不能生成请求request和响应response,只提供过滤作用(Servlet被调用之前检查Request对象修改其相关信息,Servlet被调用后检查Response修改其相关信息),Filter对象常驻服务器. 2.Lifecyc

  • Java,JSP,Servlet获取当前工程路径(绝对路径)问题解析

    在jsp和class文件中调用的相对路径不同. 在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 当然你也可以用System.getProperty("user.dir")获取你工程的绝对路径. 另:在Jsp,Servlet,Java中详细获得路径的方法! 1.jsp中取得路径: 以工程名为TEST为例: (1)得到包含工程名的当前页面全路径:request.getRequestURI() 结果:/TEST/test.jsp

  • Java servlet 使用 PrintWriter 时的编码与乱码的示例代码

    在前面的网页中的编码与乱码系列中,曾多次提到使用 servlet 方式构建的动态响应流,不过在那里都是直接使用字节流的方式,不过,更为常见的方式是使用字符流.而在前面,又谈到了 Java 字节流与字符流的话题. 有了前面的基础,现在来说下 Java servlet 中使用字符流,也即是 PrintWriter 时的编码与乱码问题. 回顾字节流的情形 先回顾一下,在之前的字节流响应中,我们使用 String.getBytes 方法,然后总是显式传入编码的参数,使它与 meta 中或者 header

  • java 在Jetty9中使用HttpSessionListener和Filter

    java 在Jetty9中使用HttpSessionListener和Filter HttpSessionListener 当Session创建或销毁的时候被调用 示例代码: class MyHttpSessionListener implements HttpSessionListener { @Override public void sessionCreated(HttpSessionEvent httpSessionEvent) { System.out.println("session

  • java通过HttpServletRequest获取post请求中的body内容的方法

    在java web应用中,我们如何获取post请求body中的内容?以及需要注意的问题. 通常利用request获取参数可以直接通过req.getParameter(name)的方式获取url上面或者ajax data提交上来的参数.但是body是没有名字的,无法通过参数名字这种方式获取.这时候需要用到io流的方式来获取body中的内容. 这里先贴出一段代码: package com.lenovo.servlet; import java.io.BufferedReader; import ja

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

    最近在项目中遇到关于jetty的问题,所以在网上做一些科普,接下来就给大家做一些分享: Jetty是一个Java实现的开源的servlet容器,它既可以像Tomcat一样作为一个完整的Web服务器和Servlet容器,同时也可以嵌入在Java应用程序中,在Java程序中调用Jetty. Jetty下载地址,本文写作时的最新版本是9.1.2,下载jetty-distribution-9.1.2.v20140210.zip: 注意Jetty 9需要JDK 7,如果使用JDK 6的话会出现错误:jav

  • springboot2.3.1替换为其他的嵌入式servlet容器的详细方法

    现阶段,springboot内嵌了Tomcat服务器,如果你不想使用Tomcat,springboot也是支持其他的服务器切换的. 如果你想了解底层springboot所支持的服务器你可以使用idea的快捷键快速按两次shift查询一个ServerProperties 的类,通过这个类你可以知道你想要了解的情况: springboot里面支持的服务器有Jetty.Netty-等等,大家有兴趣的话可以百度一下. 接着通过在pom文件的视图依赖分析可以得知: springboot里面的Tomcat是

  • SpringBoot配置嵌入式Servlet容器和使用外置Servlet容器的教程图解

    配置嵌入式Servlet容器 SpringBoot默认使用Tomcat作为嵌入式的Servlet容器: 问题? 1).如何定制和修改Servlet容器的相关配置: 1.修改和server有关的配置(ServerProperties[也是EmbeddedServletContainerCustomizer]): server.port=8081 server.context-path=/crud server.tomcat.uri-encoding=UTF-8 //通用的Servlet容器设置 s

  • Spring Boot 中嵌入式 Servlet 容器自动配置原理解析

    目录 1.参照 Spring Boot 自动配置包里面的web模块 2.EmbeddedServletContainerFactory(嵌入式Servlet容器工厂) 3.EmbeddedServletContainer(嵌入式的Servlet容器) 4.以TomcatEmbeddedServletContainerFactory为例 5.嵌入式容器的配置修改生效原理 1.参照 Spring Boot 自动配置包里面的web模块 EmbeddedServletContainerAutoConfi

  • SpringBoot如何切换成其它的嵌入式Servlet容器(Jetty和Undertow)

    目录 如何切换成其它的嵌入式Servlet容器(Jetty和Undertow) SpringBoot默认使用的内置Servlet容器是Tomcat SpringBoot还支持Jetty和Undertow SpringBoot web开发_嵌入式Servlet容器 1.切换嵌入式Servlet容器 2.定制Servlet容器 如何切换成其它的嵌入式Servlet容器(Jetty和Undertow) SpringBoot默认使用的内置Servlet容器是Tomcat 然而 SpringBoot还支持

  • Spring Boot如何支持嵌入式Servlet容器

    Spring Boot支持Tomcat.Jetty和Undertow三种Servlet容器嵌入到Web应用程序中,开发者使用starter即可方便嵌入,默认情况下,嵌入服务器的访问端口为8080. Servlets.Filters & Listeners 这些组件可以同组件扫描注册,即把他们定义为Spring Bean. 默认情况下,如果只有一个servlet,则把它映射到/:如果有多个servlet,则加上bean name作为前缀然后映射到/*. 如果默认策略不能满足你,你可以通过Servl

  • Intellij IDEA 的maven项目通过Java代码实现Jetty的Http服务器(推荐)

    目录 一.添加 pom.xml 二.在maven 加载 jetty 三.新建AttendentConsoleHttpServlet.java 四.在App.java 中 加入 五.运行 java Jetty是一个轻量级的高度可扩展的基于 java的web服务器和servlet引擎. 下面是 使用 Intellij IDEA 的maven项目 通过Java代码,实现 Jetty 的 Http服务器 从而获取到 Http 的 Get 和 Post 请求 一.添加 pom.xml <!-- Jetty

  • SpringBoot嵌入式Servlet容器与定制化组件超详细讲解

    目录 嵌入式Servlet容器 1.原理分析 2.Servlet容器切换 3.定制Servlet容器配置 定制化组件 嵌入式Servlet容器 在Spring Boot中,默认支持的web容器有 Tomcat, Jetty, 和 Undertow 1.原理分析 那么这些web容器是怎么注入的呢?我们一起来分析一下 当SpringBoot应用启动发现当前是Web应用,它会创建一个web版的ioc容器ServletWebServerApplicationContext 这个类下面有一个createW

  • 基于Java web服务器简单实现一个Servlet容器

    上篇写了一个简单的Java web服务器实现,只能处理一些静态资源的请求,本篇文章实现的Servlet容器基于前面的服务器做了个小改造,增加了Servlet请求的处理.  程序执行步骤  1.创建一个ServerSocket对象:  2.调用ServerSocket对象的accept方法,等待连接,连接成功会返回一个Socket对象,否则一直阻塞等待:  3.从Socket对象中获取InputStream和OutputStream字节流,这两个流分别对应request请求和response响应:

  • 解决java编译错误( 程序包javax.servlet不存在javax.servlet.*)

    解决java编译错误( 程序包javax.servlet不存在javax.servlet.*) 编译:javac Servlet.java 出现 软件包 javax.servlet 不存在 软件包javax.servlet.http 不存在 等错误 由于servlet和JSP不是Java平台JavaSE(标准版)的一部分,而是Java EE(企业版)的一部分,因此,必须告知编译器servlet的位置. 解决"软件包 javax.servlet不存在"错误的方法: 1. 搜索servle

随机推荐