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 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序
  • ¥15 多址通信方式的抗噪声性能和系统容量对比
  • ¥15 winform的chart曲线生成时有凸起
  • ¥15 msix packaging tool打包问题
  • ¥15 finalshell节点的搭建代码和那个端口代码教程
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作