`
wuzijingaip
  • 浏览: 331814 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

给web 服务器后台加线程

阅读更多
一。新建一个servlet{
package com.ibox.init;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.ibox.util.ServerTimer;

public class InitServlet extends HttpServlet {
 public InitServlet() {
  super();
 }
 public void destroy() {
  super.destroy(); // Just puts "destroy" string in log
  // Put your code here
 }
 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  doPost(request, response);
 }
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
 }
 public void init() throws ServletException {
  
  ServletContext application = getServletConfig().getServletContext();
  String realpath = this.getServletContext().getRealPath("/");
  new ServerTimer(application,realpath).start();
  
 }
}
}
二。在web.xml配这个servlet{
  <!-- 初始化信息 -->
  <servlet>
    <servlet-name>InitValue</servlet-name>
    <servlet-class>com.ibox.init.InitServlet</servlet-class>
    <load-on-startup>7</load-on-startup>
  </servlet>
}
三。新建serverTimer线程类{
package com.ibox.util;
import java.util.Date;
import javax.servlet.ServletContext;
public class ServerTimer extends Thread {
 ServletContext application = null;
 String realpath = "";
 int step = 1000;
 public ServerTimer(ServletContext application,String realpath){
  this.application = application;
  this.realpath = realpath;
 }
 public ServerTimer(ServletContext application,String realpath,int step){
  this.application = application;
  this.realpath = realpath;
  this.step = step;
 }
 public void run(){
  while(true){
   ServerTimerInterface st = new GetServetTime();
   st.timerStart(application);
   try{
    Thread.sleep(step);
   }catch (Exception e) {
    e.printStackTrace();
   }
  }
 }
}

四。新建执行接口{
package com.ibox.util;
import javax.servlet.ServletContext;

public interface ServerTimerInterface {
 public void timerStart();
 public void timerStart(ServletContext application);
}


五。实现执行方法{
package com.ibox.util;
import java.util.Date;
import javax.servlet.ServletContext;

public class GetServetTime implements ServerTimerInterface {
 public void timerStart() {
 }
 public void timerStart(ServletContext application) {
//  String cpumsg = new GetCPU().getCpu(realpath);
  Date date = new Date();
  int year = date.getYear() + 1900;
  int month = date.getMonth()+1;
  int d = date.getDate();
  int day = date.getDay();
  int hour = date.getHours();
  int min = date.getMinutes();
  int sec = date.getSeconds();
  String timeStr = ""+year+" "+month+" "+" "+addZero(hour)+":"+addZero(min)+":"+addZero(sec);
  application.setAttribute("nowtime", timeStr);
  
 }
 
 private String addZero(int a){
  String s = "";
  if(a < 10){
   s = "0"+a;
  }else{
   s = ""+a;
  }
  return s;
 }
}


本例为获取服务器时间并存入application内
本例只开了一个线程,基本够用,如需更多线程,要改源码
(按提示顺序建类会报错,但都建完就好了,也可倒序建)
参考:无,个人项目用
分享到:
评论

相关推荐

    html5的Web线程

    Web Workers允许在浏览器后台独立于主线程运行脚本,处理大量计算任务,避免了因为JavaScript执行阻塞而导致的UI无响应问题。这使得Web应用可以实现更复杂的实时交互和数据处理,比如图像处理、音频分析、大数据计算...

    ASPNET中实现在线用户检测(使用后台守护线程)

    根据提供的信息,我们可以详细探讨如何在ASP.NET中实现在线...这个过程不仅涉及到了后台线程的使用,还涉及到前端页面的动态渲染以及数据结构的设计等多个方面。这对于提高Web应用的交互性和用户体验都是非常有益的。

    简单的多线程WebServer

    在Web服务器中,当一个请求到来时,服务器会在后台创建一个新的线程来处理这个请求,而不是阻塞当前线程等待响应完成。这种方式可以显著提升服务器的响应速度,特别是在高并发情况下。 "服务器"是指用于接收并处理...

    多线程定时器Web和Winform双版本

    若要在后台线程中使用定时器,可以使用`System.Threading.Timer`。 - 使用`BackgroundWorker`组件结合定时器,可以在不阻塞用户界面的情况下执行长时间运行的任务。 5. **实现与应用场景**: - Web版本的多线程...

    java web 前后台 各种技术

    本资源提供了Tomcat 7.0版本,这是一个广泛应用的Java Web服务器和应用服务器,适用于部署和运行Java Web应用。 首先,让我们详细了解一下Java Web的后台技术: 1. **Java Servlet**:Servlet是Java编程语言中用来...

    Linux下多线程轻量级HTTP服务器

    在Linux操作系统中,开发一款多线程轻量级HTTP服务器是一项技术挑战,它涉及到网络...同时,通过实践还可以提升Linux系统编程和调试技能,对于想要深入理解服务器后台运作机制的开发者来说,这是一个非常有价值的项目。

    基于VC的Web服务器Demo

    在本项目中,MFC被用来构建Web服务器的用户界面和后台逻辑。MFC封装了许多Windows API函数,提供了丰富的控件和事件处理机制,使得开发者可以更高效地编写代码。 3. **服务器的根目录**: 在Web服务器中,根目录是...

    嵌入式web服务器及远程测控应用详解v0.1

    ### 嵌入式Web服务器及远程测控应用详解 #### 概述 嵌入式Web服务器技术在现代远程监控和测控系统中扮演着关键角色,尤其在核辐射实验等高风险环境下,其实时性、可靠性和易用性优势显著。通过普通浏览器即可实现...

    Web-Servlet_多线程_

    用户发送的消息需要实时传递给其他在线用户,这就需要服务器维护每个用户的连接状态,并在接收到新消息时,使用不同的线程将消息推送给相应用户。此外,系统可能还需要后台线程来处理消息存储、用户状态更新等任务。...

    多线程网站后台扫描工具

    在描述中提到的“后台管理扫描器”,是指该工具专注于探测网站的后台管理系统,这些系统通常包含管理员登录页面、数据库连接、服务器配置等敏感信息。它们是网站的核心部分,如果被恶意攻击者发现并利用,可能会导致...

    自己写的web服务器

    在实际的Web服务器开发中,"httpd"通常代表"HTTP daemon",也就是一个常驻后台的服务程序,用于监听网络端口,接收HTTP请求并进行处理。这个程序可能包含了服务器的主循环、请求解析、响应构造等核心功能。 在自编...

    Linux搭建WEB服务器.doc

    根据给定的文件信息,以下是对“Linux搭建WEB服务器”的详细知识点解析: ### 一、环境准备与系统选择 在开始搭建WEB服务器之前,首先需要确定操作系统环境。本例中选择了**Ubuntu 12.04**作为基础系统。Ubuntu是...

    Web应用服务器研究综述.docx

    在 Web 应用中,消息队列可以将用户请求或数据暂时保存到队列中,然后由后台线程或异步任务处理,以避免瞬间高并发对服务器造成的压力,保证系统的稳定性和可用性。RabbitMQ、Kafka 和 ActiveMQ 等是常见的消息队列...

    serversocket socket web服务器

    本篇文章将深入探讨这两个概念以及与之相关的Web服务器知识,特别是与Tomcat服务器的关联。 首先,让我们了解`ServerSocket`。在Java中,`ServerSocket`类是用于监听客户端连接请求的服务器端接口。它提供了一个...

    C#编写Http多线程文件下载

    Http(超文本传输协议)是互联网上应用最为广泛的一种网络协议,用于从Web服务器传输超文本到本地浏览器。在C#中,我们可以使用HttpClient类来发送Http请求并接收响应,进行文件的下载。 二、单线程文件下载 在简单...

    Web服务器与数据库服务器的连接.ppt

    【Web服务器与数据库服务器的连接】是互联网应用中不可或缺的一部分,它涉及到如何让Web服务器能够有效地与后台数据库进行交互,从而实现数据的存储、检索和更新。在电子商务、信息管理系统等场景中,这种连接至关...

    android视频资讯客户端简单实现--android客户端与web服务器实现

    可以使用`AsyncTask`、`Handler`或`LiveData`(配合ViewModel)等机制将网络请求放到后台线程处理,然后在主线程更新UI。 8. **数据缓存**: - 为了提高用户体验,可以考虑对服务器返回的数据进行缓存,比如使用...

    Android客户端访问web服务器

    5. **异步处理**:Android应用中的网络请求应该在后台线程进行,以免阻塞主线程导致应用无响应。可以使用`AsyncTask`、`Handler/Looper`、`IntentService`或现代的`Coroutines`来实现异步操作。 6. **WebView组件**...

    多线程实例,线程实例

    在实际应用中,多线程常用于Web服务器处理多个客户端请求、数据库连接池管理、定时任务执行、图形用户界面的异步更新等场景。例如,一个Web服务器可以为每个客户端请求创建一个新线程,以便同时处理多个请求,提高...

    完整开发的基于脚本的高性能Web服务器0.2.2106

    5. **包含的组件**:描述中提到了完整的演示网站、新闻、博客和后台管理功能,这意味着该Web服务器不仅支持基本的HTTP服务,还集成了常见的Web应用功能,如内容管理系统(CMS)、新闻发布和用户管理。这些功能可能...

Global site tag (gtag.js) - Google Analytics