亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? genericservlet.java

?? Java 的servlets和jsp的軟件開發包。支持jsp1.0以及servlet2.1。版本比較舊
?? JAVA
字號:
/*
 * $Id: GenericServlet.java,v 1.6 1999/04/20 20:36:52 sahmed Exp $
 * 
 * Copyright (c) 1996-1999 Sun Microsystems, Inc. All Rights Reserved.
 * 
 * This software is the confidential and proprietary information of Sun
 * Microsystems, Inc. ("Confidential Information").  You shall not
 * disclose such Confidential Information and shall use it only in
 * accordance with the terms of the license agreement you entered into
 * with Sun.
 * 
 * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
 * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
 * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
 * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
 * THIS SOFTWARE OR ITS DERIVATIVES.
 * 
 * CopyrightVersion 1.0
 */

package javax.servlet;

import java.io.IOException;
import java.util.Enumeration;

/**
 *
 * Defines a generic, protocol-independent
 * servlet. To write an HTTP servlet to use with
 * a Web site, you must extend {@link javax.servlet.http.HttpServlet}.
 *
 * <p><code>GenericServlet</code> implements the <code>Servlet</code>
 * and <code>ServletConfig</code> interfaces. When you write a servlet, 
 * you usually extend <code>GenericServlet</code> or its subclass 
 * <code>HttpServlet</code>, unless the servlet needs another superclass. 
 * If a servlet needs to extend a class other than <code>GenericServlet</code> 
 * or <code>HttpServlet</code>, the servlet must implement the <code>Servlet</code>
 * interface directly.
 *
 * <p><code>GenericServlet</code> makes writing servlets
 * easier. It provides simple versions of the lifecycle methods 
 * <code>init</code> and <code>destroy</code> and of the methods 
 * in the <code>ServletConfig</code> interface. <code>GenericServlet</code>
 * also implements the <code>log></code> method, declared in the
 * <code>ServletContext</code> interface. 
 *
 * <p>To write a generic servlet, you need only
 * override the <code>service</code> method, which is declared as
 * an abstract method with no body. If you are writing a servlet
 * engine, you should override <code>getServletInfo</code> and specialize
 * the <code>init</code> and <code>destroy</code> methods if 
 * the engine will manage expensive servlet-wide
 * resources. 
 *
 *
 * @author 	Various
 * @version 	$Version$
 *
 *
 *
 */

 
public abstract class GenericServlet 
    implements Servlet, ServletConfig, java.io.Serializable
{

    private transient ServletConfig config;
    

    /**
     *
     * Does nothing, because this
     * is an abstract class. All of the servlet initialization
     * is done by one of the <code>init</code> methods.
     *
     */

    public GenericServlet () { }
    
    
    
   /**
     * Destroys the servlet, cleaning up whatever resources are being
     * held. 
     *
     * <p>The servlet engine calls this method once, 
     * automatically, when it removes the servlet. After the engine
     * calls <code>destroy</code>, it cannot call <code>destroy</code>
     * again on this instance of the servlet.
     *
     * <p>The engine calls <code>destroy</code> after all
     * calls to the <code>service</code> method have completed
     * or a specified amount of time has passed, whichever occurs
     * first. In the latter case, the <code>service</code>
     * method might stil be servicing requests from other threads.
     * When you write your servlet, make sure that any
     * threads still running in the <code>service</code> method 
     * complete before the servlet is destroyed.
     * 
     */

    public void destroy() {
	log("destroy");
    }
    
    
    
    /**
     * Returns a <code>String</code> containing the value of the named
     * initialization parameter. If the servlet does not have
     * a parameter of the specified name, this method returns
     * <code>null</code>.
     *
     * <p>An initialization parameter has a single <code>String</code>
     * value, which you must interpret. 
     *
     * <p>This method is supplied for convenience. It gets the 
     * value of the named parameter from the <code>ServletConfig</code> 
     * object, which is passed
     * to the servlet by the <code>init</code> method.
     *
     * @param name 		a <code>String</code> specifying the name 
     *				of the initialization parameter
     *
     * @return String 		a <code>String</code> containing the value
     *				of the initalization parameter
     *
     */ 

    public String getInitParameter(String name) {
	return getServletConfig().getInitParameter(name);
    }
    
    

   /**
    * Returns the names of the initialization parameters for this
    * servlet as an enumeration of <code>String</code> objects. 
    *
    * <p>If the servlet has no initialization paramaters, 
    * this method returns an empty enumeration.
    * 
    * <p>This method is supplied for convenience. It gets the 
    * parameter names from the <code>ServletConfig</code> object, 
    * which the <code>init</code> method passes to the servlet. 
    *
    *
    * @return Enumeration 	an enumeration of <code>String</code>
    *				objects containing the names of 
    *				the servlet's initialization parameters
    *
    */

    public Enumeration getInitParameterNames() {
	return getServletConfig().getInitParameterNames();
    }   
    
     
 
     

    /**
     * Returns a {@link ServletConfig} object, which gives
     * a servlet its initialization parameters. The initialization 
     * parameters supply the initial or default values the 
     * servlet runs with.
     *
     * @return ServletConfig 	the <code>ServletConfig</code> object
     *				that initialized this servlet
     *
     */
    
    public ServletConfig getServletConfig() {
	return config;
    }
    
    
 
    
    /**
     * Returns a {@link ServletContext} object, which contains 
     * information about the servlet engine on which the servlet 
     * is running.
     *
     * <p>This method is supplied for convenience. The 
     * <code>ServletContext</code> object is contained within the 
     * <code>ServletConfig</code> object, which is passed to the 
     * servlet by the <code>init</code> method when the servlet is 
     * initialized.
     *
     *
     * @return ServletContext 	the <code>ServletContext</code> object
     *				passed to this servlet by the <code>init</code>
     *				method
     *
     */

    public ServletContext getServletContext() {
	return getServletConfig().getServletContext();
    }



 

    /**
     * Returns a <code>String</code> that contains information about 
     * the servlet such as its author, version, and copyright information. 
     * You must override this method before it returns this information. 
     * If you do not override this method, it returns an empty string.
     *
     *
     * @return String 		a empty <code>String</code> until
     *				you override this method
     *
     */
    
    public String getServletInfo() {
	return "";
    }




    /**
     *
     * Initializes this servlet.
     *
     * <p>The servlet engine calls this method once,
     * automatically, each time it loads the servlet. This
     * method is guaranteed to finish before the servlet accepts any
     * requests to its <code>service</code> method. If a fatal
     * error occurs while the servlet is being initialized, 
     * the servlet engine should throw
     * an <code>UnavailableException</code>, rather than
     * calling the <code>System.exit</code> method.
     *
     * <p>The <code>init</code> method stores the 
     * {@link ServletConfig}
     * object it receives from the servlet engine. If you override <code>init</code>,
     * you should either call <code>super.init</code> 
     * or store the <code>ServletConfig</code> object in the new 
     * <code>init</code> method. If you decide to store the
     * <code>ServletConfig</code> object in a different location,
     * you should also override the {@link #getServletConfig}
     * method.
     *
     * @param config 			the <code>ServletConfig</code> object
     *					that contains initialization parameters
     *					for this servlet
     *
     * @exception ServletException 	if an exception occurs that
     *					interrupts the servlet's normal
     *					operation
     *
     * 
     * @see 				UnavailableException
     *
     */

    public void init(ServletConfig config) throws ServletException {
	this.config = config;
	log("init");
	this.init();
    }





    /**
     *
     * Acts as a convenience method, so that you do not have to
     * store a {@link ServletConfig} object to use as a
     * parameter.
     *
     * <p>If you extend <code>GenericServlet</code>, simply override
     * this method and it will be called by
     * <code>GenericServlet.init(ServletConfig config)</code>.
     *
     * @exception ServletException 	if an exception occurs that
     *					interrupts the servlet's
     *					normal operation
     *
     */
    
    public void init() throws ServletException {

    }
    



    /**
     * 
     * Writes the servlet class name and a servlet
     * exception message to the servlet log file. You should 
     * override this method if the servlet has more than one 
     * instance (for example, if the servlet engine runs the 
     * servlet for multiple virtual hosts). The specialized 
     * method should log the message, along with an instance j
     * identifier and perhaps a thread identifier. 
     *
     * <p>The default message prefix, which is the servlet
     * class name, does not allow the servlet log entries
     * to be distinguished from one another.
     *
     * <p>The servlet log file is an event log file whose 
     * name is specific to the server.
     *
     * @param msg 	a <code>String</code> specifying
     *			a servlet exception message 
     *
     */
     
    public void log(String msg) {
	getServletContext().log(getClass().getName() + ": "+ msg);
    }
   
   
   
   
    /**
     * Writes a system exception message to the servlet log file.
     * If a system exception occurs, this method adds the exception's
     * class, name, and message to the log file.
     *
     *
     *
     * @param message 		a <code>String</code> containing a 
     *				description of a system exception
     *
     * @param t			an exception of type 
     *				<code>java.lang.Throwable</code>
     *
     *
     */
   
    public void log(String message, Throwable t) {
	getServletContext().log(getClass().getName() + ": " + message, t);
    }
    
    
    
    /**
     * 
     * Carries out a single request from the client. 
     *
     * <p>Requests sent to this method are handled
     * after servlet initialization is complete. If any requests
     * are received while the servlet is being initializaed, they
     * are blocked. 
     *
     * <p>The {@link ServletRequest} object the client passes
     * to this method contains parameters the client provides, as
     * well as an input stream that gives the servlet data.
     * The {@link ServletResponse} object contains an output
     * stream that the servlet can use to return information to the
     * client.
     *
     * <p>Servlets typically run inside multithreaded servlet engines,
     * which can handle multiple <code>service</code> requests concurrently.
     * Therefore, you must synchronize access to any shared resources 
     * such as database or network connections. The simplest way to do 
     * this is to synchronize the entire <code>service</code> call. 
     * This can have a major performance impact, however, and should be
     * avoided whenever possible. For more information on synchronization, 
     * see the 
     * <a href="http://java.sun.com/Series/Tutorial/java/threads/multithreaded.html">
     * Java tutorial on multithreaded programming</a>.
     *
     *
     *
     * @param req 	the <code>ServletRequest</code> object
     *			that contains the client's request
     *
     * @param res 	the <code>ServletResponse</code> object
     *			that will contain the servlet's response
     *
     * @exception ServletException 	if an exception that
     *					interfered with the servlet's
     *					normal operation occurred
     *
     * @exception IOException 		if an input or output
     *					exception occurred
     *
     */

    public abstract void service(ServletRequest req, ServletResponse res)
	throws ServletException, IOException;
    
 
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美中文字幕精品| 欧美在线视频你懂得| 奇米精品一区二区三区四区| 亚洲高清在线视频| 亚洲图片欧美色图| 亚洲一二三级电影| 美腿丝袜亚洲一区| 精品一区二区三区在线播放| 国产精品自产自拍| 成人免费视频一区二区| 99re这里只有精品6| 91在线精品一区二区| 欧美自拍丝袜亚洲| 日韩丝袜美女视频| 久久这里只有精品首页| 亚洲国产精品成人久久综合一区| 国产精品久久一级| 亚洲精品欧美二区三区中文字幕| 亚洲综合视频在线| 丝袜美腿亚洲色图| 国产东北露脸精品视频| 国产.精品.日韩.另类.中文.在线.播放| 国产不卡一区视频| 色综合一区二区| 91精品一区二区三区久久久久久| 日韩免费一区二区三区在线播放| 久久久噜噜噜久久人人看 | 欧美色网站导航| 欧美亚洲综合一区| 日韩欧美视频一区| 国产网站一区二区三区| 亚洲精品美国一| 激情综合五月婷婷| 972aa.com艺术欧美| 欧美一二三在线| 国产精品白丝在线| 日本不卡不码高清免费观看| 高清国产一区二区三区| 6080亚洲精品一区二区| 国产精品视频第一区| 日本视频在线一区| 99re热视频精品| 亚洲精品在线一区二区| 亚洲自拍偷拍麻豆| 大美女一区二区三区| 欧美一区二区日韩| 亚洲综合一二三区| 不卡的av中国片| 精品国产乱码久久久久久久久| 亚洲欧美日韩中文字幕一区二区三区| 久久电影国产免费久久电影| 欧美怡红院视频| 国产精品久久毛片av大全日韩| 美女网站色91| 欧美日韩国产不卡| 一级做a爱片久久| 成人一区在线看| 久久亚洲捆绑美女| 蜜乳av一区二区| 欧美老女人第四色| 一区二区三区四区蜜桃| 成人av在线资源网| 国产欧美日韩精品在线| 精品亚洲成av人在线观看| 91麻豆精品国产自产在线观看一区| 亚洲欧美视频在线观看| 成人av一区二区三区| 国产精品视频一二三| 大美女一区二区三区| 国产精品婷婷午夜在线观看| 国产精品一二一区| 久久精品视频网| 国内国产精品久久| 国产丝袜美腿一区二区三区| 经典三级在线一区| 欧美精品一区二区三区高清aⅴ| 日韩一区精品字幕| 欧美一级在线免费| 久88久久88久久久| 久久久久久亚洲综合影院红桃| 麻豆专区一区二区三区四区五区| 日韩一区二区三区视频| 天天色图综合网| 欧美一级片在线看| 另类小说视频一区二区| 亚洲精品一区二区三区香蕉| 国产一区二区三区四区五区入口| 国产丝袜欧美中文另类| 91亚洲大成网污www| 亚洲午夜精品网| 欧美一区日韩一区| 国产精品一区二区三区乱码| 国产精品欧美综合在线| 色婷婷狠狠综合| 日韩中文字幕亚洲一区二区va在线| 日韩欧美专区在线| 风间由美一区二区三区在线观看| 国产精品全国免费观看高清| 色偷偷一区二区三区| 日韩极品在线观看| 国产调教视频一区| 欧美最猛黑人xxxxx猛交| 麻豆一区二区三| 国产精品国产三级国产普通话蜜臀| 91在线观看美女| 日本aⅴ亚洲精品中文乱码| 久久九九影视网| 色婷婷综合五月| 精品一区二区国语对白| 亚洲乱码日产精品bd| 91精品免费观看| 成人av在线观| 日韩avvvv在线播放| 国产精品天天摸av网| 欧美日本乱大交xxxxx| 成人做爰69片免费看网站| 日韩黄色在线观看| 国产精品国产馆在线真实露脸 | 日本不卡123| 最近中文字幕一区二区三区| 日韩色视频在线观看| 色综合天天综合网天天狠天天 | 国产精品理伦片| 欧美一区二区三区在| 91视频国产资源| 国产一区欧美一区| 性欧美疯狂xxxxbbbb| 亚洲视频 欧洲视频| 欧美精品一区二区在线观看| 欧美亚男人的天堂| 99免费精品视频| 国产麻豆精品95视频| 天天综合网 天天综合色| 亚洲精品高清视频在线观看| 国产欧美视频在线观看| 欧美电影精品一区二区| 在线播放欧美女士性生活| 一本一本大道香蕉久在线精品| 国产高清视频一区| 久久99国产精品久久99 | 国产日韩欧美电影| 欧美白人最猛性xxxxx69交| 在线播放日韩导航| 欧美日韩免费电影| 欧美丝袜丝交足nylons图片| 91免费版在线| 91激情在线视频| 色视频成人在线观看免| 色悠悠亚洲一区二区| 色伊人久久综合中文字幕| 91麻豆国产精品久久| 99久久国产综合精品色伊| 99精品久久只有精品| 成人h动漫精品一区二区| www.欧美色图| 色综合网站在线| 在线精品视频免费观看| 欧美最猛性xxxxx直播| 欧美日韩国产电影| 91精品黄色片免费大全| 欧美一区二区大片| 久久亚洲综合色| 国产亚洲欧美一区在线观看| 久久久777精品电影网影网 | 亚洲超碰精品一区二区| 日韩不卡一区二区三区| 久久精品国产99国产| 国产大陆亚洲精品国产| heyzo一本久久综合| 在线中文字幕不卡| 欧美一区二区三区免费观看视频| 精品国产亚洲在线| 中文字幕一区二区三区在线观看| ...中文天堂在线一区| 亚洲国产另类av| 精品在线一区二区| 成人高清免费在线播放| 欧美午夜精品电影| 欧美成人伊人久久综合网| 国产欧美一区二区精品忘忧草| 亚洲精品中文字幕在线观看| 午夜一区二区三区在线观看| 精品一区二区在线观看| 91免费视频网址| 日韩欧美一级在线播放| 国产精品久久久久久久久免费相片 | 播五月开心婷婷综合| 欧美日韩一二三| 国产亚洲欧美日韩俺去了| 亚洲一区在线观看网站| 国产一区二区美女| 欧美色综合影院| 久久精品亚洲麻豆av一区二区| 亚洲激情av在线| 麻豆视频观看网址久久| 99vv1com这只有精品| 精品av久久707| 亚洲成a人片综合在线| 丁香天五香天堂综合| 日韩一区二区三区高清免费看看|