`

tomcat-启动时启动额外线程并控制线程状态

    博客分类:
  • java
 
阅读更多
通过启动线程可以进行后台的操作

1.创建servlet

package com.wuhao.itinfo.action;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.*;

public class GrabBlogHtmlAction extends HttpServlet {
    /**
     * function:control thread state
     * 
	 * @author wuhao
	 */
	private static final long serialVersionUID = 1L;
	
	private GrabBlogThread gbt;
	private String method;
	
	@Override
	public void init() throws ServletException {
		gbt = new GrabBlogThread();
		gbt.start();
	}

	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		//get start or stop thread
		method = (String) request.getParameter("method");
		
		if("stop".equals(method)){
			//stop thread
			if(gbt != null){
				gbt.stopThread();
				gbt = null;
				System.gc();
				System.out.println("stop thread");
			}
		}else if("start".equals(method)){
			System.out.println("start thread" + gbt);
			//start thread
			if(gbt == null || !gbt.isAlive()){
				gbt = new GrabBlogThread();
				gbt.start();
			}
			System.out.println("start thread");
		}else{
			System.out.println("nothing to do");
		}
	}
	
	/***
	 * 
	 * */
	class GrabBlogThread extends Thread 
    {
		//thread stop sign
		private volatile boolean stopSign = true;
		
		//stop thread
		public void stopThread(){
			stopSign = false;
		}
		public void startThread(){
			stopSign = true;
		}
		
		@Override
		public void run() {
	          while(stopSign){
             	 System.out.println("thread run: " + stopSign);
             	 try {
					sleep(10000);
				 } catch (InterruptedException e) {
					e.printStackTrace();
				 }
              }
		}	
    } 

}



2.配置web.xml
	<!-- GRAB HTML -->
	<servlet>
	    <servlet-name>GRABHTML</servlet-name>
	    <servlet-class>com.wuhao.itinfo.action.GrabBlogHtmlAction</servlet-class>
	    <load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>   
  		<servlet-name>GRABHTML</servlet-name>   
 		 <url-pattern>/grabblogaction</url-pattern>   
	</servlet-mapping>
	<!-- GRAB HTML -->

3.测试
启动tomcat:
thread run: true
thread run: true

停止线程:
http://localhost:8080/itinfo/grabblogaction?method=stop
thread run: true
thread run: true
stop thread

启动线程:
http://localhost:8080/itinfo/grabblogaction?method=start

thread run: true
stop thread
start threadnull
start thread
thread run: true
thread run: true

分享到:
评论

相关推荐

    apache-tomcat-7.0.52.zip for mac os

    6. **安全管理**:在生产环境中,确保配置正确的用户管理和权限控制,例如设置`tomcat-users.xml`以限制对管理界面的访问,防止未授权的访问。 7. **应用部署**:你可以将打包好的WAR文件放入`webapps`目录下,...

    apache-tomcat-6.0.35

    这个解压版包含了所有必要的组件,使得用户无需进行编译或额外配置就可以在本地环境中运行基于Java的Web应用。 **1. Tomcat简介** Tomcat是Apache软件基金会Jakarta项目的一个核心部分,它是一个轻量级的Web服务器...

    apache-tomcat-7.0.63.zip

    10. **监控和管理工具**:使用JMX(Java Management Extensions),可以远程监控Tomcat的状态,如内存使用、线程状态等。 总的来说,Apache Tomcat 7.0.63作为一个轻量级的Java应用服务器,因其易用性和灵活性,在...

    apache-tomcat-8.0.52-windows-x86.zip

    1. **热部署**:在开发过程中,当Web应用的源代码发生变化时,Tomcat可以自动检测并重新加载,无需手动重启服务器。 2. **开发工具集成**:许多IDE如Eclipse和IntelliJ IDEA支持直接与Tomcat集成,便于开发和调试。 ...

    apache-tomcat-8.5.49.zip

    5. **目录结构**:解压后的`apache-tomcat-8.5.49`目录包括`bin`(包含启动和停止脚本)、`conf`(配置文件)、`lib`(运行时所需的JAR文件)、`webapps`(部署的应用程序)、`logs`(日志文件)等。 6. **部署应用...

    apache-tomcat-7.0.59-windows-x64_免安装

    - **JMX代理**:启用JMX(Java Management Extensions),可以通过JConsole等工具远程监控Tomcat状态。 总之,Apache Tomcat 7.0.59免安装版为开发者提供了高效、灵活且易用的Java web服务器环境,无论是在个人...

    apache-tomcat-7.0.100防攻击版.zip

    在使用这个防攻击版的Apache Tomcat 7.0.100时,需要注意以下几点: - 确保遵循最佳实践进行部署,如将Tomcat配置在非标准端口上,以减少被扫描和攻击的可能性。 - 定期监控服务器的性能和安全日志,以便及时发现...

    apache-tomcat-8.0.24

    6. **多线程处理**:Tomcat使用多线程模型处理并发请求,确保高效服务。 7. **安全性**:支持SSL和TLS协议,可以设置数字证书,保护数据传输的安全。 8. **热部署**:在Tomcat运行时,可以更新WEB-INF目录下的文件,...

    apache-tomcat-6.0.53-windows-x64.zip

    64位版本的Tomcat可以利用现代处理器提供的额外内存地址空间,允许更大的Java堆内存分配,从而处理更大型的应用程序和更高的并发用户负载。 4. **安装与配置**:解压后,用户通常会找到一个名为“apache-tomcat-...

    apache-tomcat-6下载

    在下载并解压"apache-tomcat-6.0.48-windows-x64"压缩包后,用户可以直接使用,无需进行额外的安装步骤,这是"免安装版"的概念。 **Apache Tomcat 6的核心功能和特性:** 1. **Servlet容器**:Tomcat主要作为...

    apache-tomcat-7.0.25.zip安装版

    解压缩后,文件夹命名为"apache-tomcat-7.0.25.ext",这里的".ext"可能是一个自定义的扩展名,或者代表“扩展”(extension),暗示解压后的目录包含了一些额外的或定制的配置或文件。 在Tomcat 7.0.25中,用户可以...

    最新版windows apache-tomcat-9.0.36-windows-x64.zip

    - 使用`jstack`或`jconsole`等工具分析Tomcat的线程状态和内存使用情况。 11. **性能优化**: - 调整`conf/server.xml`中的`maxThreads`、`minSpareThreads`等参数,优化连接器的线程池。 - 设置合适的JVM内存...

    apache-tomcat-7.0.22.exe

    3. **应用部署**:应用程序通常部署在`webapps`目录下,只需将WAR文件或解压后的应用目录放入此目录,Tomcat会自动检测并部署。 4. **环境变量**:如果你需要设置额外的Java系统属性或环境变量,可以在`bin/catalina...

    精减版Tomcat-5.5

    这对于初学者和只需要基础功能的开发者来说非常合适,因为他们通常不需要额外的功能,只需要一个能够快速启动并运行Servlet和JSP应用的环境。 **总结** 精简版Tomcat-5.5是一个高效且轻便的Java Web服务器,特别...

    apache-tomcat-v8.0.53.zip

    2. **安装与启动**:解压后,找到bin目录下的`startup.sh`(Linux/Mac)或`startup.bat`(Windows),运行该脚本来启动Tomcat服务器。关闭时,运行`shutdown.sh`或`shutdown.bat`。 3. **配置**:主要的配置文件...

    apache-tomcat-6.0.20.exe

    在本例中,我们讨论的是Apache Tomcat的6.0.20版本,这是一个较早但仍然广泛使用的版本,特别是在那些需要兼容旧系统或者对资源消耗有严格控制的环境中。 标题"apache-tomcat-6.0.20.exe"表明这是Tomcat 6.0系列的...

    TOMcat-v1.6.zip

    2. **架构**:Tomcat基于多线程模型,使用Catalina作为核心引擎处理请求。 3. **配置**:Tomcat的配置主要在`conf`目录下的`server.xml`文件中进行,包括端口设置、虚拟主机、上下文路径等。 4. **部署**:可以...

    apache-tomcat-9.0.71 apr文件

    1. **系统资源访问**:APR允许Tomcat直接访问操作系统的功能,如文件I/O、网络通信、线程管理和信号处理,从而提高效率和性能。 2. **本地化功能**:通过APR,Tomcat可以利用操作系统提供的本地化服务,如多语言...

    彻底找到 Tomcat 启动速度慢的元凶

    然而,即便如此,Tomcat启动依然缓慢,而且在启动过程中,JVM进程已正常启动但并未完成启动过程,排除了JVM异常退出的可能性。随后,进一步排查包括CPU、内存使用率、硬盘空间以及网络I/O等常规检查均未发现问题。 ...

    59-Spring Boot内嵌Tomcat配置1

    内嵌的 Tomcat 容器是 Spring Boot 默认的 Web 服务器,使得我们可以无需额外配置即可运行 Java Web 应用。在本篇文章中,我们将探讨如何对 Spring Boot 内嵌的 Tomcat 进行个性化配置。 首先,Spring Boot 提供了 ...

Global site tag (gtag.js) - Google Analytics