`
Aether
  • 浏览: 14267 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

JSP拾遗(六)——Servlet

    博客分类:
  • Java
阅读更多

在典型的J2EE中,我们的应用是通过应用服务器(如TOMCATJBOSSWEBLOGIC等)来加载启动的。如果我们需要在JSP之外做些额外的操作,这些操作并不依赖客户端的请求而执行,那么,我们就需要一个途径来告知服务器,如何来实现自己的操作。而我们程序内部与WEB服务器之间交互信息的途径就是web.xml里面的配置。在这里面,提供了三个接口配置来实现我们自己的需要。这三个接口是:servletfilterlistener

前面的jsp所生成的java代码中我们已经看到了servlet的一个子类的结构。给我们的最直观的感觉是,所有的html都需要用out.write()out.print()来输出,正是因为这个原因,才使得jsp大为流行,因为对于jsp来说,java编码人员和界面设计人员(美工)都可以很容易的修改。但jsp编程并不会取代servlet编程。我们可以定义一个servlet并使其在web应用启动后开始启动,这是jsp所做不到的,jsp只能在客户端发送请求后才能启动。

一个典型的servlet,包含以下方法:

void init(ServletConfig config) : 初始化servlet,根据ServletConfig传入的配置参数,来初始化相关信息。在servlet容器启动该servlet时执行,在一个servlet的生命周期内,这个方法只会执行一次;

void destroy() : 销毁servlet,释放servlet所占用的资源,如数据库链接等。在servlet容器停止该servlet时执行,在一个servlet的生命周期内,这个方法只会执行一次。

void service(ServletRequest req, ServletResponse res)处理请求并作出响应。当servlet容器指示改servlet对请求作出应答时,改方法被执行,在一个servlet的生命周期内,这个方法可以执行多次。

String  getServletInfo(): 返回该servlet的说明信息,如作者,版本等,当然,也可以声明都不做。

ServletConfig getServletConfig(): 返回该servlet的配置信息。一般可以直接返回init时传入的config信息。

典型的servlet用在初始化信息、启动后台线程、执行特定请求(不需要html页面的返回信息,如输出验证码、AJAX服务端等)场合。

下面这个例子将数据库链接信息配置到web.xml中,并由servlet读取配置。

配置信息:

<servlet>
	<description>init system parameters</description>
	<servlet-class>com.hx.servlet.SystemInitServlet</servlet-class>
	<init-param>
		<param-name>DRIVER_CLASS</param-name>
		<param-value>sun.jdbc.odbc.JdbcOdbcDriver</param-value>
	</init-param>
	<init-param>
		<param-name>CONN_URL</param-name>
		<param-value>jdbc:odbc:hxdb</param-value>
	</init-param>
	<init-param>
		<param-name>CONN_USERNAME</param-name>
		<param-value>sa</param-value>
	</init-param>
	<init-param>
		<param-name>CONN_PASSWORD</param-name>
		<param-value>sa</param-value>
	</init-param>
	<load-on-startup>1</load-on-startup>
</servlet>

 SystemInitServlet类中读取这些信息:

 

package com.hx.servlet;

import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

/**
 *
 */
public class SystemInitServlet implements Servlet {

    private ServletConfig config;

    private static String DRIVER_CLASS;

    private static String CONN_URL;

    private static String CONN_USERNAME;

    private static String CONN_PASSWORD;

    /* (non-Javadoc)
     * @see javax.servlet.Servlet#init(javax.servlet.ServletConfig)
     */
    public void init(ServletConfig servletConfig) throws ServletException {
        config = servletConfig;
        DRIVER_CLASS = servletConfig.getInitParameter("DRIVER_CLASS");
        CONN_URL = servletConfig.getInitParameter("CONN_URL");
        CONN_USERNAME = servletConfig.getInitParameter("CONN_USERNAME");
        CONN_PASSWORD = servletConfig.getInitParameter("CONN_PASSWORD");

        System.out.println("system init servlet processed successfully.DRIVER_CLASS=" + DRIVER_CLASS + ",CONN_URL="  + CONN_URL + ",CONN_USERNAME=" + CONN_USERNAME + ",CONN_PASSWORD=" + CONN_PASSWORD);
    }

    /** 
     */
    public static String getDriverClass() {
        return DRIVER_CLASS;
    }

    /**
     * @return
     */
    public static String getConnectionURL() {
        return CONN_URL;
    }

    /**
     * @return
     */
    public static String getConnectionUsername() {
        return CONN_USERNAME;
    }

    /**
     * @return
     */
    public static String getConnectionPassword() {
        return CONN_PASSWORD;
    }

    /* (non-Javadoc)
     * @see javax.servlet.Servlet#service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
     */
    public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException {
    }

    /* (non-Javadoc)
     * @see javax.servlet.Servlet#destroy()
     */
    public void destroy() {
    }

    /* (non-Javadoc)
     * @see javax.servlet.Servlet#getServletConfig()
     */
    public ServletConfig getServletConfig() {
        return config;
    }

    /* (non-Javadoc)
     * @see javax.servlet.Servlet#getServletInfo()
     */
    public String getServletInfo() {
        return null;
    }

}

 

 

分享到:
评论

相关推荐

    简单的web开发——servlet案例

    在本文中,我们将深入探讨"简单的web开发——servlet案例"这一主题,旨在为初学者提供一个基础的servlet应用理解。Servlet是Java Web开发中的重要组成部分,它是一种用于扩展服务器功能的Java类,通常用来处理HTTP...

    JSP源码——jsp+servlet+javaBean实现MVC_jspmvc.zip

    【JSP源码——jsp+servlet+javaBean实现MVC】是基于Java Web技术构建的一种经典MVC(Model-View-Controller)模式的应用实例。在Web开发中,MVC模式被广泛采用,它将应用程序的业务逻辑、数据处理和用户界面分离,...

    转账系统设计——Servlet技术JavaBean技术Jsp技术.doc

    在设计一个基于Servlet、JavaBean和JSP的转账系统时,我们需要理解这三个技术的核心概念以及它们如何协同工作来实现Web应用程序的功能。以下是这些技术的基本解释和在转账系统设计中的应用。 1. Servlet技术: ...

    《Java Web开发基础——从Servlet到JSP》源代码v1.0

    《Java Web开发基础——从Servlet到JSP》是一本深入探讨Java Web开发的教程,主要涵盖了从基础的Servlet到高级的JSP技术。这个压缩包包含的源代码是该书教学内容的实践部分,旨在帮助读者更好地理解和应用所学知识。...

    Java开发指南——Servlet和JSP篇

    Java在Web应用程序开发方面的巨大潜力已日趋明显,其具有多线程执行,内存管理,面向对象性和强大的...本书首先介绍Servlet API,JSP API基础知识,接着讲解如何进行对话跟踪盒调试,以及XML盒使用企业JavaBeans……

    jsp网络编程——源文件(06——09)

    【标题】"jsp网络编程——源文件(06——09)" 提供的是一系列关于JSP(Java Server Pages)网络编程的学习资料,主要涵盖了第六章至第九章的内容。这些章节通常会深入讲解JSP的核心概念和技术,帮助开发者更好地...

    jsp网络编程——源文件(01——05)

    在本教程的"jsp网络编程——源文件(01——05)"中,我们将逐步学习JSP的基本概念、语法结构以及常用功能。 **章节概览** 1. **chap01:JSP基础** - JSP的起源与发展 - JSP与HTML、Servlet的关系 - JSP基本结构...

    HttpSession/session,jsp,servlet——综合练习题一

    在IT行业中,尤其是在Web开发领域,`HttpSession`、`jsp`和`servlet`是三个非常重要的概念。这里我们将深入探讨这些技术,并结合一个名为"web26_session5示例1"的压缩包文件,来解析它们在实际应用中的综合运用。 ...

    JSP源码——音乐网站(JSP+SERVLET).zip

    **音乐网站(JSP+SERVLET)** 这个项目是一个基于JSP和Servlet技术构建的音乐网站,用于展示和播放音乐。JSP(JavaServer Pages)是Java平台上的动态网页技术,而Servlet是Java Web开发中的核心组件,常用于处理HTTP...

    用JSP+JavaBean+Servlet开发的数据库应用实例——CD管理系统

    《JSP+JavaBean+Servlet开发的CD管理系统详解》 在Web开发领域,JSP(JavaServer Pages)、JavaBean和Servlet是三个核心组件,它们共同构建了动态网站的基础架构。本篇文章将深入探讨如何利用这三者来开发一个实用...

    jsp程序设计——图灵奖

    4. **Servlet与JSP的关系**:理解JSP如何转化为Servlet,以及两者在Web应用程序中的协同工作原理。 5. **EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)**:掌握这两项技术,以简化JSP...

    JSP+JavaBean+Servlet网上书店

    本文将深入探讨一个基于JSP、JavaBean和Servlet技术构建的网上书店应用程序。这个系统充分利用了这些技术的优势,为用户提供了一种便捷的在线购书体验,包括浏览书籍、添加到购物车、修改和删除订单,以及用户管理等...

    JSP核心技术——JSP引擎内幕(2010).pdf

    ### JSP核心技术——JSP引擎内幕 #### 一、JSP引擎的工作原理 JSP(Java Server Pages)是一种基于Java的服务器端脚本技术,它允许开发者将动态内容嵌入到HTML网页中。JSP的核心功能是通过JSP引擎来实现的。JSP...

    jsp网络编程——源文件(10——11)

    【标题】"jsp网络编程——源文件(10——11)"主要涵盖了JSP(Java Server Pages)技术在网络编程中的应用,这是Java Web开发的重要组成部分。这两个章节可能包括了第10章和第11章的学习内容,涉及到JSP的基础语法、...

    JSP网络编程——多媒体(1——3)

    JSP页面会被服务器转换为Servlet,然后由Servlet执行并生成响应内容。 2. **多媒体在Web中的应用**: 多媒体内容包括图片、音频、视频、动画等,它们极大地丰富了网页的交互性和表现力。在JSP中,我们可以通过标签...

    jsp+servlet 网上书城项目

    【jsp+servlet 网上书城项目】是一个典型的Web应用程序示例,它结合了JavaServer Pages (JSP) 和Servlet技术,用于构建一个在线图书销售平台。该项目旨在帮助学习者掌握这两种核心技术,并且提供了Oracle数据库支持...

    Jsp+JavaBean+Servlet(MVC设计模式)的寝室管理系统

    Jsp+JavaBean+Servlet(MVC设计模式)的寝室管理系统 Jsp+JavaBean+Servlet(MVC设计模式)的寝室管理系统 Jsp+JavaBean+Servlet(MVC设计模式)的寝室管理系统

    jsp网络编程——源文件(12——13)

    【标题】"jsp网络编程——源文件(12——13)"主要涵盖了JSP(Java Server Pages)技术在网络编程中的应用,这部分内容通常包括了第十二章和第十三章的知识点。JSP是Java平台上的动态网页技术,它允许开发者在HTML或...

Global site tag (gtag.js) - Google Analytics