Jetty如何接收到某个请求得时候服务器做一些特殊处理?

问题描述

我看论坛上得帖子都是在一个main方法中用一个线程启动了jetty服务器,以后就直接开发jsp文件了.但是我有个需求:就是希望这个main方法里面包含一个功能,当接收到用户一个请求(例如: /webapp/stopserver?stop=true),就停止服务器! 调用可以有一种方法,就是jetty监听一个http请求,接收到了,就调用 Server.stop()方法停止服务器, 比如:if(request.getParameter(stop).equals("true")){ Server.stop();} //类似这样逻辑调用  Tomcat是可以做到得,但是现在得main方法里面不知道怎么操作 request对象,从而达到上面得目的? 现在main方法:public static void main(String[] args) throws Exception{// TODO Auto-generated method stub//创建Jetty HttpServer对象 Server server = new Server(); BoundedThreadPool threadPool = new BoundedThreadPool(); threadPool.setMaxThreads(100); server.setThreadPool(threadPool); Connector connector = new SelectChannelConnector(); connector.setPort(8080); server.setConnectors(new Connector[] { connector }); WebAppContext context = new WebAppContext("webapp", "/webapp"); server.addHandler(context); server.setStopAtShutdown(true); server.setSendServerVersion(true); server.start(); server.join(); }我可以另启一个线程,然后把Server传入,关闭他,但是我在Jetty代码里面无法得到HttpServeltRequest对象!! 如何得到请求参数呢?  有人了解这个用法得么?谢谢!

解决方案

没你想的那么复杂一个简单的实现是1.声明一个静态变量,启动jetty的时候用它握住server引用public class ServerHandler{private static HttpServer server=null;}创建server时ServerHandler.server = new Server();实现一个servlet路径为/webapp/stopserver在servlet中判断stop=true然后ServerHandler.server.stop();
解决方案二:
为什么不用HandlerCollection,给server设置handler数组进去,在自定义的Handler中加入处理关闭的逻辑,执行的时候如果符合条件就会执行了

时间: 2024-10-02 06:11:49

Jetty如何接收到某个请求得时候服务器做一些特殊处理?的相关文章

android 如何用 http GET请求方式向服务器发送数据,并接收返回的数据

问题描述 android 如何用 http GET请求方式向服务器发送数据,并接收返回的数据 就发送自定义的一个字符串s,求一个简单的例子,GET请求方式向服务器发送数据,并接收返回的数据 解决方案 public class HttpUtil { private static final int CONNECT_SUCESS = 200; public static void sendHttpRequest(final String address, final HttpCallBackList

javascript-$.ajax服务器只能接收到第一次请求

问题描述 $.ajax服务器只能接收到第一次请求 webapp的开发 提交post请求,第一次xhr.readyState是1234分别出现xhr.status最后是200 返回数据正常 第二次开始,xhr.readyState是1,2,4 并没有3出现,xhr.status也是200 但是服务端接收不到请求,xhr.responseText为空 cache为true或者false时都这样,xhr.open 中同步异步的 true和false也改过 效果一样 已经增加了时间参数 百度了一下得到有

学习ASP.NET Core, 怎能不了解请求处理管道[3]: 自定义一个服务器感受一下管道是如何监听、接收和响应请求的

我们在<服务器在管道中的"龙头"地位>中对ASP.NET Core默认提供的具有跨平台能力的KestrelServer进行了介绍,为了让读者朋友们对管道中的服务器具有更加深刻的认识,接下来我们采用实例演示的形式创建一个自定义的服务器.这个自定义的服务器直接利用HttpListener来完成针对请求的监听.接收和响应,我们将其命名为HttpListenerServer.在正式介绍HttpListenerServer的设计和实现之前,我们先来显示一下如何将它应用到 一个具体的W

mybatis-SpringMVC+Mybais接收不到请求,求帮忙看下哪的问题

问题描述 SpringMVC+Mybais接收不到请求,求帮忙看下哪的问题 http://pan.baidu.com/s/1fI7fS项目我放百度网盘上了,顺便帮我看下启动时LOG4J爆的问题. 解决方案 可能是你的配置有问题

webwork+-xwork.xml要有什么配置,为什么我用action类的属性接收不了请求来的同名参数

问题描述 xwork.xml要有什么配置,为什么我用action类的属性接收不了请求来的同名参数 结果name和age都是null 页面里是这样的 解决方案 把你的配置文件贴出来一起看.光看这个还不清楚. 有可能出错的就是配置文件 配置文件首先你得有actions节点,内部有action节点.name值对应form的action属性去掉.action的值:

由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。(含服务端代码)

问题描述 演练一个Windows应用程序-聊天软件,分别有服务端和客户端问题是在服务端激发buttonStop_Click事件时出现"由于套接字没有连接并且(当使用一个sendto调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受."错误,不知道如何解决,麻烦高手帮帮我//下面是服务端代码usingSystem;usingSystem.Drawing;usingSystem.Collections;usingSystem.ComponentModel;usingSys

c#Socket提示由于套接字没有连接并且没有提供地址,发送或接收数据的请求没有被接受。

问题描述 usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows;usingSystem.Windows.Controls;usingSystem.Windows.Data;usingSystem.Windows.Documents;usingSystem.Windows.Input;usingSyst

Java获取此次请求URL以及服务器根路径的方法_java

本文介绍了Java获取此次请求URL以及获取服务器根路径的方法,并且进行举例说明,感兴趣的朋友可以学习借鉴下文的内容. 一. 获取此次请求的URL String requestUrl = request.getScheme() //当前链接使用的协议 +"://" + request.getServerName()//服务器地址 + ":" + request.getServerPort() //端口号 + request.getContextPath() //应用

ajax-请问这个异步请求方式,怎么做!

问题描述 请问这个异步请求方式,怎么做! 当选择车型,下面的三项都异步生成:然后选择"车的年代",下面的两行自动生产:选择"车款式",下面一行的车的颜色也随之生产. 用mvc三成架构,应该怎么做? 解决方案 怎么感觉有点像联动. 解决方案二: 直接生成数据在页面,数据量又不大何必用ajax 参考:http://bbs.csdn.net/topics/391070191 解决方案三: 每一项选择的时候请求查询方法返回数据就行了,至于mvc三成架构只是你的项目结构跟着没