我写了一个socket服务器(有界面的),在servlet的init()里用进程开启。
以下是简单的servlet:
public class HelloWorld extends HttpServlet
{
Thread tthread = null;
MainFrame mainFrame = null;
public void init() throws ServletException
{
mainFrame=new MainFrame();
tthread=new Thread(mainFrame);
tthread.start();
} public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException
{ response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><head><title>");
out.println("This is my first Servlet");
out.println("</title></head><body>");
out.println("<h1>Hello,World!</h1>");
out.println("</body></html>");
}
public void destroy(){
tthread.interrupt();
} } 部署到web工程后测试如下:网页访问此servlet,tomcat自动启动socket服务器。而且貌似此socket服务器和tomcat就绑定了,如果关闭这个socket服务器窗口的话,tomcat也关闭了。我想要的结果是:
1)访问此servlet,如果socket服务器没有启动那么就启动socket服务器(这个好像现在就可以的)。
2)如果没有人访问此servlet了,那么就把socket服务器关闭,不能影响tomcat。请大虾指点!谢谢
以下是简单的servlet:
public class HelloWorld extends HttpServlet
{
Thread tthread = null;
MainFrame mainFrame = null;
public void init() throws ServletException
{
mainFrame=new MainFrame();
tthread=new Thread(mainFrame);
tthread.start();
} public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException
{ response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><head><title>");
out.println("This is my first Servlet");
out.println("</title></head><body>");
out.println("<h1>Hello,World!</h1>");
out.println("</body></html>");
}
public void destroy(){
tthread.interrupt();
} } 部署到web工程后测试如下:网页访问此servlet,tomcat自动启动socket服务器。而且貌似此socket服务器和tomcat就绑定了,如果关闭这个socket服务器窗口的话,tomcat也关闭了。我想要的结果是:
1)访问此servlet,如果socket服务器没有启动那么就启动socket服务器(这个好像现在就可以的)。
2)如果没有人访问此servlet了,那么就把socket服务器关闭,不能影响tomcat。请大虾指点!谢谢
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货