Global.asa在jsp下的转换

global.asa 在jsp 下的类似品
说明:这是我为了做毕业设计写的文档中的一部分,纯属个人体会。
 

Global.asaASP下是实现站点的全局配置,在站点运行开始的时候自动运行,调用他的Application_Onstart方法。在站点关闭时调用application_onend方法。

JSP中也有类似的功能,有两种实现和Global.asa相同功能的方法两种方法

1Servlet自动启动法

2)建立服务器Application对象监听器

Servlet自启动法

自动启动

  一般情况下,JSP只有在客户端第一次调用后,方才进行编译并初始化,而Servlet则可以通过web.xml<load-on-startup>配置,使其在Web容器启动时自动初始化。可使用Servlet这个特性完成Web应用程序的初始化工作:如下载字典表、控制表、初始化配置信息等,启动某个后台进程等。

ServletJSP的一个重大的区别即是Servlet可以通过web.xml文件的配置让ServletWeb容器启动时就自动启动Servlet。可以利用Servlet的这个特性不变化的数据事先加载到Web应用服务器中以便缓存使用。

所以我们可以使用servlet的这一特性来替代asp中的global.asa来完成全局变量的存储.

具体实现如下,新建一个标准的servlet(当然也可以是监视或过滤的).

package com.config;

定义所在包

import javax.servlet.*;

import javax.servlet.http.*;

导入所用的包,上面这两个是必需的.

剩下的是定义你的servlet类及其要继承的类.

如果是只想初始化的话,你可以只定义init()方法

public class globalListen extends HttpServlet {

  private static final String CONTENT_TYPE = "text/html; charset=GBK";

  //Initialize global variables

  public void init() throws ServletException {

getServletContext().setAttribute("aa","nn");//init方法初始化变量并把他们保存在application对象里

  }

  Public void destroy() throws ServletException {

    getServletContext().removeAttribute("aa");//destory方法里可以除去对象

  }

}

servlet类是建立起来了,下面配置web.xml.

web.xml是定义在web-inf文件夹下的配置文件,功能强大啊.

<servlet>

<servlet-name></servlet-name>                                  servlet实例名

<servlet-class>.classname</servlet-class>              servlet

<load-on-startup>1</load-on-startup>                      servlet启动顺序1为第一个启动

</servlet>

Servlet是包含HTML代码的Java程序,而JSP是包含Java代码的HTML网页。

下面是在glabal.asa中的对象和替换servlet(替换文件名为glabalListen.java)中的对比:

B.1  global.asaservlet中各元素对比

Glabal.asa

glabalListen.java

基本变量dim(vbs),var(js)

Java的基本变量

Application对象

getServletContext()取得application对象

Application(“要储存的变量名”)=

getServletContext().setAttribute(“name”,object)

Application_Onstart函数

Init()方法

Application_Onend函数

Destory()方法

这个方法只能初始化application对象中的包含元素,不过如果你只想初始化application那这个就够了。要同时实现session对象的初始化就要用第二种方法。当然,也可以用第二种方法再建立一个针对session对象事件的监听器。

这种方法在前五个站点中使用,第六个站点农资与供求使用下面的方法

建立监听器

Servlet监听器

J2EE定义了多个Web事件监听器接口,Servlet监听器是继承javax.servlet.Servlet并实现这些事件监听接口的类。如果Web应用服务器对某个Web容器的事件感兴趣,就可以构造一个实现该事件监听接口的Servlet,以便在该事件发生时做相应的处理。灵活使用Servlet监听器,可以使一些原来很难实现的操作变得易如反掌。

可以使用JBuilder的应用程序向导生成一个Servlet监听器,如何生成这里就不介绍了,监听器其实是一个Java文件,它是ServletContextListener类的实现,并且继承至HttpServlet,其结构如下:

package ……

import ……

public class Listener8086 extends HttpServlet implements ServletContextListener {

  public String …...

  private ServletContext sctx;

//服务器启动时调用如下方法

  public void contextInitialized(ServletContextEvent sce) {

    //初始化服务器变量

    String strServer = "172.16.1.214";

    application.setAttribute("sitename", "呼和浩特市科技局");

    application.setAttribute("chengban", "农资与供求");

        application.setAttribute("uploadpath", "/upload");

        System.out.println("8086服务器初始化完毕");

  }

//服务器关闭时调用如下方法

  public void contextDestroyed(ServletContextEvent sce) {

}

//会话开始的时候调用如下方法

public void sessionCreated(HttpSessionEvent se) {

  }

//会话结束的时候调用如下方法

  public void sessionDestroyed(HttpSessionEvent se) {

  }

在监听器建立以后JBuilder会修改Web.xml文件,将会在其中加入类似如下的语句:

<listener>

    <listener-class>com.config.Listener8086</listener-class>

</listener>

很清楚,上面代码的意思指出了这里有一个监听器,指向的是com.config.Listener8086类。

B.2  global.asaservlet中各元素对比

Glabal.asa

Listener8086.java

Application_Onstart函数

contextInitialized ()方法

Application_Onend函数

contextDestroyed ()方法

Session_Onstart函数

sessionCreated()方法

Session_Onend函数

sessionDestroyed ()方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值