jcreatorqijiashe 2008-10-09 21:38
浏览 201
已采纳

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对象!! 如何得到请求参数呢?  有人了解这个用法得么?谢谢!
  • 写回答

2条回答 默认 最新

  • bluespring 2008-10-10 16:34
    关注

    没你想的那么复杂

    一个简单的实现是
    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();

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程