java servlet 源码_servlet源码查看

Servlet是Java中用于处理Web请求的核心接口,它定义了初始化、服务及销毁等生命周期方法。当Servlet被加载时,会调用init()方法进行初始化;接收到请求时,通过service()方法进行处理;最后,destroy()方法会在Servlet被移除时执行,用于清理资源。理解并熟练使用这些方法对于构建高效、稳定的Web应用至关重要。
摘要由CSDN通过智能技术生成

/** DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.

*

* Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.

*

* The contents of this file are subject to the terms of either the GNU

* General Public License Version 2 only ("GPL") or the Common Development

* and Distribution License("CDDL") (collectively, the "License"). You

* may not use this file except in compliance with the License. You can

* obtain a copy of the License at

*https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html

* or packager/legal/LICENSE.txt. See the License for the specific

* language governing permissions and limitations under the License.

*

* When distributing the software, include this License Header Notice in each

* file and include the License file at packager/legal/LICENSE.txt.

*

* GPL Classpath Exception:

* Oracle designates this particular file as subject to the "Classpath"

* exception as provided by Oracle in the GPL Version 2 section of the License

* file that accompanied this code.

*

* Modifications:

* If applicable, add the following below the License Header, with the fields

* enclosed by brackets [] replaced by your own identifying information:

* "Portions Copyright [year] [name of copyright owner]"

*

* Contributor(s):

* If you wish your version of this file to be governed by only the CDDL or

* only the GPL Version 2, indicate your decision by adding "[Contributor]

* elects to include this software in this distribution under the [CDDL or GPL

* Version 2] license." If you don't indicate a single choice of license, a

* recipient has the option to distribute your version of this file under

* either the CDDL, the GPL Version 2 or to extend the choice of license to

* its licensees as provided above. However, if you add GPL Version 2 code

* and therefore, elected the GPL Version 2 license, then the option applies

* only if the new code is made subject to such option by the copyright

* holder.

*

*

* This file incorporates work covered by the following copyright and

* permission notice:

*

* Copyright 2004 The Apache Software Foundation

*

* Licensed under the Apache License, Version 2.0 (the "License");

* you may not use this file except in compliance with the License.

* You may obtain a copy of the License at

*

*http://www.apache.org/licenses/LICENSE-2.0*

* Unless required by applicable law or agreed to in writing, software

* distributed under the License is distributed on an "AS IS" BASIS,

* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

* See the License for the specific language governing permissions and

* limitations under the License.*/

packagejavax.servlet;importjava.io.IOException;/*** Defines methods that all servlets must implement.

*

*

A servlet is a small Java program that runs within a Web server.

* Servlets receive and respond to requests from Web clients,

* usually across HTTP, the HyperText Transfer Protocol.

*

*

To implement this interface, you can write a generic servlet

* that extends

* javax.servlet.GenericServlet or an HTTP servlet that

* extends javax.servlet.http.HttpServlet.

*

*

This interface defines methods to initialize a servlet,

* to service requests, and to remove a servlet from the server.

* These are known as life-cycle methods and are called in the

* following sequence:

*

*

The servlet is constructed, then initialized with the init method.

*

Any calls from clients to the service method are handled.

*

The servlet is taken out of service, then destroyed with the

* destroy method, then garbage collected and finalized.

*

*

*

In addition to the life-cycle methods, this interface

* provides the getServletConfig method, which the servlet

* can use to get any startup information, and the getServletInfo

* method, which allows the servlet to return basic information about itself,

* such as author, version, and copyright.

*

*@authorVarious

*

*@seeGenericServlet

*@seejavax.servlet.http.HttpServlet

**/

public interfaceServlet {/*** Called by the servlet container to indicate to a servlet that the

* servlet is being placed into service.

*

*

The servlet container calls the init

* method exactly once after instantiating the servlet.

* The init method must complete successfully

* before the servlet can receive any requests.

*

*

The servlet container cannot place the servlet into service

* if the init method

*

*

Throws a ServletException

*

Does not return within a time period defined by the Web server

*

*

*

*@paramconfig a ServletConfig object

* containing the servlet's

* configuration and initialization parameters

*

*@exceptionServletException if an exception has occurred that

* interferes with the servlet's normal

* operation

*

*@seeUnavailableException

*@see#getServletConfig

**/

public void init(ServletConfig config) throwsServletException;/***

* Returns a {@linkServletConfig} object, which contains

* initialization and startup parameters for this servlet.

* The ServletConfig object returned is the one

* passed to the init method.

*

*

Implementations of this interface are responsible for storing the

* ServletConfig object so that this

* method can return it. The {@linkGenericServlet}

* class, which implements this interface, already does this.

*

*@returnthe ServletConfig object

* that initializes this servlet

*

*@see#init

**/

publicServletConfig getServletConfig();/*** Called by the servlet container to allow the servlet to respond to

* a request.

*

*

This method is only called after the servlet's init()

* method has completed successfully.

*

*

The status code of the response always should be set for a servlet

* that throws or sends an error.

*

*

*

Servlets typically run inside multithreaded servlet containers

* that can handle multiple requests concurrently. Developers must

* be aware to synchronize access to any shared resources such as files,

* network connections, and as well as the servlet's class and instance

* variables.

* More information on multithreaded programming in Java is available in

*

* the Java tutorial on multi-threaded programming.

*

*

*@paramreq the ServletRequest object that contains

* the client's request

*

*@paramres the ServletResponse object that contains

* the servlet's response

*

*@exceptionServletException if an exception occurs that interferes

* with the servlet's normal operation

*

*@exceptionIOException if an input or output exception occurs

**/

public voidservice(ServletRequest req, ServletResponse res)throwsServletException, IOException;/*** Returns information about the servlet, such

* as author, version, and copyright.

*

*

The string that this method returns should

* be plain text and not markup of any kind (such as HTML, XML,

* etc.).

*

*@returna String containing servlet information

**/

publicString getServletInfo();/***

* Called by the servlet container to indicate to a servlet that the

* servlet is being taken out of service. This method is

* only called once all threads within the servlet's

* service method have exited or after a timeout

* period has passed. After the servlet container calls this

* method, it will not call the service method again

* on this servlet.

*

*

This method gives the servlet an opportunity

* to clean up any resources that are being held (for example, memory,

* file handles, threads) and make sure that any persistent state is

* synchronized with the servlet's current state in memory.

**/

public voiddestroy();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值