大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> JSP专区 -> JSP编程进度条设计实例(3)

JSP编程进度条设计实例(3)

时间: 2021-07-31 作者:daque

二、启用工作

  start.jsp是web.xml安置刻画符中证明的欢送页面,web.xml的实质是:

<?xml version="1.0" encoding="gb2312"?>

<!doctype web-app    public "-//sun microsystems, inc.//dtd web application 2.3//en"    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>    <welcome-file-list>        <welcome-file>start.jsp</welcome-file>    </welcome-file-list></web-app>

  start.jsp启用一个专用的线程来运转“沉重的工作”,而后把http乞求传播给status.jsp。

  start.jsp页面运用<jsp:usebean>标志创造一个taskbean的范例,将scope属性设置为session使得对于来自同一欣赏器的http乞求,其余页面也能索取到同一个bean东西。start.jsp经过挪用session.removeattribute("task")保证<jsp:usebean>创造了一个新的bean东西,而不是索取一个旧东西(比方,同一个用户对话中更早的jsp页面所创造的bean东西)。

  底下是start.jsp页面包车型的士代码清单:

<% session.removeattribute("task"); %>

<jsp:usebean id="task" scope="session"     class="test.barbean.taskbean"/>

<% task.setrunning(true); %><% new thread(task).start(); %><jsp:forward page="status.jsp"/>   start.jsp创造并树立好taskbean东西之后,接着创造一个thread,并将bean东西动作一个runnable范例传入。挪用start()本领时新创造的线程将实行taskbean东西的run()本领。

  此刻有两个线程在并发实行:实行jsp页面包车型的士线程(称之为“jsp线程”),由jsp页面创造的线程(称之为“工作线程”)。接下来,start.jsp运用挪用status.jsp,status.jsp表露出进度条以及工作的实行情景。提防status.jsp和start.jsp在同一个jsp线程中运转。

  start.jsp在创造线程之前就把taskbean的running标志树立成了true,如许,纵然当jsp线程已发端实行status.jsp而工作线程的run()本领尚未启用,也不妨保证用户会获得“工作已发端运转”的状况汇报。

  将running标志树立成true、启用工作线程这两行代码不妨移入taskbean形成一个新的本领,而后由jsp页面挪用这个新本领。普遍而言,jsp页面该当尽管少用java代码,即咱们该当尽大概地把java代码放入java类。然而本例中咱们不按照这一准则,把new thread(task).start()径直放入start.jsp超过表白jsp线程创造并启用了工作线程。

  在jsp页面中操纵多线程必需精心,提防jsp线程和其它线程本质上是并发实行的,就象在桌面运用步调中,咱们用一个线程来处置gui事变,其余再用一个或多个线程来处置后盾工作。然而在jsp情况中,商量到多个用户同声乞求某一个页面包车型的士情景,同一个jsp页面大概会在多个线程中同声运转;其余,偶尔同一个用户大概会向同一个页面发出多个乞求,固然那些乞求来自同一个用户,它们也会引导效劳器同声运转一个jsp页面包车型的士多个线程。

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.