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中内嵌浏览器插件。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
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通过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 在Jetty9中使用HttpSessionListener和Filter
java 在Jetty9中使用HttpSessionListener和Filter HttpSessionListener 当Session创建或销毁的时候被调用 示例代码: class MyHttpSessionListener implements HttpSessionListener { @Override public void sessionCreated(HttpSessionEvent httpSessionEvent) { System.out.println("session
-
JavaWeb Servlet中Filter过滤器的详解
JavaWeb Servlet中Filter过滤器的详解 1.简述 Filter过滤器,对web服务器所有web资源进行过滤,从而实现一些特殊的功能(权限访问控制.过滤敏感词汇.压缩响应信息).Filter能够对Servlet容器的请求和响应进行检查和修改,其本身不能生成请求request和响应response,只提供过滤作用(Servlet被调用之前检查Request对象修改其相关信息,Servlet被调用后检查Response修改其相关信息),Filter对象常驻服务器. 2.Lifecyc
-
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
-
Java servlet 使用 PrintWriter 时的编码与乱码的示例代码
在前面的网页中的编码与乱码系列中,曾多次提到使用 servlet 方式构建的动态响应流,不过在那里都是直接使用字节流的方式,不过,更为常见的方式是使用字符流.而在前面,又谈到了 Java 字节流与字符流的话题. 有了前面的基础,现在来说下 Java servlet 中使用字符流,也即是 PrintWriter 时的编码与乱码问题. 回顾字节流的情形 先回顾一下,在之前的字节流响应中,我们使用 String.getBytes 方法,然后总是显式传入编码的参数,使它与 meta 中或者 header
-
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
随机推荐
- CentOS 6.5 x64系统中安装MongoDB 2.6.0二进制发行版教程
- 比较典型的代理软件全介绍
- apache无法启动的可能原因分析及对策
- 解决DropDownList总是选中第一项的方法
- CodeIgniter框架过滤HTML危险代码
- php设计模式小结
- 分享一道笔试题[有n个直线最多可以把一个平面分成多少个部分]
- PHP时间类完整实例(非常实用)
- jQuery插件扩展测试实例
- 浅谈Javascript中深复制
- C#定时器实现自动执行的方法
- 用PHP生成自己的LOG文件
- python实现监控linux性能及进程消耗性能的方法
- JavaScript必看小技巧(必看)
- HTML页面如何象ASP一样接受参数
- 微信小程序实现的绘制table表格功能示例
- Python初学者常见错误详解
- 实例讲解MySQL中乐观锁和悲观锁
- python numpy 按行归一化的实例
- Java 数组交集的实现代码