当前位置: 首页 > news >正文

移动app网站模板友情链接发布

移动app网站模板,友情链接发布,赣州建设局网站,重庆石桥铺网站建设一。前言 Java语言大多用于开发web系统的后端,也就是我们是的B/S架构。通过浏览器一个URL去访问系统的后端资源和逻辑。 当我在代码里看到这个类HttpServletRequest 时 让我想到了Servlet,Servlet看上去多么像是Java的一个普通类,但是它确实…

一。前言

Java语言大多用于开发web系统的后端,也就是我们是的B/S架构。通过浏览器一个URL去访问系统的后端资源和逻辑。 当我在代码里看到这个类HttpServletRequest 时 让我想到了Servlet,Servlet看上去多么像是Java的一个普通类,但是它确实不是一个类,它是通过Java实现的一项功能,就是用来连接URL和服务端程序的中间件。除了HttpServletRequest 对应的还有HttpServletResponse

二。介绍Servlet

什么事Servlet

Servlet(Server Applet)是JavaServlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容是

JavaWeb中,我们将会接触到三大组件(Servlet、Filter、Listener),Servlet由服务器调用,处理服务器接收到的请求,即完成,接受请求数据 --> 处理请求 --> 完成响应,其本质就是一个实现了Servlet接口的java类

实现Servlet的方式

实现Servlet有三种方式:

  • 实现 javax.servlet.Servlet 接口;
  • 继承 javax.servlet.GenericServlet类;
  • 继承 javax.servlet.http.HttpServlet类;

实际开发中,我们通常会选择继承HttpServlet类来完成我们的Servlet,但认识Servlet接口这种方式也是很重要的,是我们入门知识中不可或缺的部分

使用Servlet

/** Licensed to the Apache Software Foundation (ASF) under one or more* contributor license agreements.  See the NOTICE file distributed with* this work for additional information regarding copyright ownership.* The ASF licenses this file to You 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.*/package javax.servlet.http;import java.io.IOException;
import java.util.Collection;
import java.util.Enumeration;import javax.servlet.ServletException;
import javax.servlet.ServletRequest;/*** Extends the {@link javax.servlet.ServletRequest} interface to provide request* information for HTTP servlets.* <p>* The servlet container creates an <code>HttpServletRequest</code> object and* passes it as an argument to the servlet's service methods* (<code>doGet</code>, <code>doPost</code>, etc).*/
public interface HttpServletRequest extends ServletRequest {/*** String identifier for Basic authentication. Value "BASIC"*/public static final String BASIC_AUTH = "BASIC";/*** String identifier for Form authentication. Value "FORM"*/public static final String FORM_AUTH = "FORM";/*** String identifier for Client Certificate authentication. Value* "CLIENT_CERT"*/public static final String CLIENT_CERT_AUTH = "CLIENT_CERT";/*** String identifier for Digest authentication. Value "DIGEST"*/public static final String DIGEST_AUTH = "DIGEST";/*** Returns the name of the authentication scheme used to protect the* servlet. All servlet containers support basic, form and client* certificate authentication, and may additionally support digest* authentication. If the servlet is not authenticated <code>null</code> is* returned.* <p>* Same as the value of the CGI variable AUTH_TYPE.** @return one of the static members BASIC_AUTH, FORM_AUTH, CLIENT_CERT_AUTH,*         DIGEST_AUTH (suitable for == comparison) or the*         container-specific string indicating the authentication scheme,*         or <code>null</code> if the request was not authenticated.*/public String getAuthType();/*** Returns an array containing all of the <code>Cookie</code> objects the* client sent with this request. This method returns <code>null</code> if* no cookies were sent.** @return an array of all the <code>Cookies</code> included with this*         request, or <code>null</code> if the request has no cookies*/public Cookie[] getCookies();/*** Returns the value of the specified request header as a <code>long</code>* value that represents a <code>Date</code> object. Use this method with* headers that contain dates, such as <code>If-Modified-Since</code>.* <p>* The date is returned as the number of milliseconds since January 1, 1970* GMT. The header name is case insensitive.* <p>* If the request did not have a header of the specified name, this method* returns -1. If the header can't be converted to a date, the method throws* an <code>IllegalArgumentException</code>.** @param name*            a <code>String</code> specifying the name of the header* @return a <code>long</code> value representing the date specified in the*         header expressed as the number of milliseconds since January 1,*         1970 GMT, or -1 if the named header was not included with the*         request* @exception IllegalArgumentException*                If the header value can't be converted to a date*/public long getDateHeader(String name);/*** Returns the value of the specified request header as a* <code>String</code>. If the request did not include a header of the* specified name, this method returns <code>null</code>. If there are* multiple headers with the same name, this method returns the first head* in the request. The header name is case insensitive. You can use this* method with any request header.** @param name*            a <code>String</code> specifying the header name* @return a <code>String</code> containing the value of the requested*         header, or <code>null</code> if the request does not have a*         header of that name*/public String getHeader(String name);/*** Returns all the values of the specified request header as an* <code>Enumeration</code> of <code>String</code> objects.* <p>* Some headers, such as <code>Accept-Language</code> can be sent by clients* as several headers each with a different value rather than sending the* header as a comma separated list.* <p>* If the request did not include any headers of the specified name, this* method returns an empty <code>Enumeration</code>. The header name is case* insensitive. You can use this method with any request header.** @param name*            a <code>String</code> specifying the header name* @return an <code>Enumeration</code> containing the values of the requested*         header. If the request does not have any headers of that name*         return an empty enumeration. If the container does not allow*         access to header information, return null*/public Enumeration<String> getHeaders(String name);/*** Returns an enumeration of all the header names this request contains. If* the request has no headers, this method returns an empty enumeration.* <p>* Some servlet containers do not allow servlets to access headers using* this method, in which case this method returns <code>null</code>** @return an enumeration of all the header names sent with this request; if*         the request has no headers, an empty enumeration; if the servlet*         container does not allow servlets to use this method,*         <code>null</code>*/public Enumeration<String> getHeaderNames();/*** Returns the value of the specified request header as an <code>int</code>.* If the request does not have a header of the specified name, this method* returns -1. If the header cannot be converted to an integer, this method* throws a <code>NumberFormatException</code>.* <p>* The header name is case insensitive.** @param name*            a <code>String</code> specifying the name of a request header* @return an integer expressing the value of the request header or -1 if the*         request doesn't have a header of this name* @exception NumberFormatException*                If the header value can't be converted to an*                <code>int</code>*/public int getIntHeader(String name);/*** Returns the name of the HTTP method with which this request was made, for* example, GET, POST, or PUT. Same as the value of the CGI variable* REQUEST_METHOD.** @return a <code>String</code> specifying the name of the method with*         which this request was made*/public String getMethod();/*** Returns any extra path information associated with the URL the client* sent when it made this request. The extra path information follows the* servlet path but precedes the query string and will start with a "/"* character.* <p>* This method returns <code>null</code> if there was no extra path* information.* <p>* Same as the value of the CGI variable PATH_INFO.** @return a <code>String</code>, decoded by the web container, specifying*         extra path information that comes after the servlet path but*         before the query string in the request URL; or <code>null</code>*         if the URL does not have any extra path information*/public String getPathInfo();/*** Returns any extra path information after the servlet name but before the* query string, and translates it to a real path. Same as the value of the* CGI variable PATH_TRANSLATED.* <p>* If the URL does not have any extra path information, this method returns* <code>null</code> or the servlet container cannot translate the virtual* path to a real path for any reason (such as when the web application is* executed from an archive). The web container does not decode this string.** @return a <code>String</code> specifying the real path, or*         <code>null</code> if the URL does not have any extra path*         information*/public String getPathTranslated();/*** Returns the portion of the request URI that indicates the context of the* request. The context path always comes first in a request URI. The path* starts with a "/" character but does not end with a "/" character. For* servlets in the default (root) context, this method returns "". The* container does not decode this string.** @return a <code>String</code> specifying the portion of the request URI*         that indicates the context of the request*/public String getContextPath();/*** Returns the query string that is contained in the request URL after the* path. This method returns <code>null</code> if the URL does not have a* query string. Same as the value of the CGI variable QUERY_STRING.** @return a <code>String</code> containing the query string or*         <code>null</code> if the URL contains no query string. The value*         is not decoded by the container.*/public String getQueryString();/*** Returns the login of the user making this request, if the user has been* authenticated, or <code>null</code> if the user has not been* authenticated. Whether the user name is sent with each subsequent request* depends on the browser and type of authentication. Same as the value of* the CGI variable REMOTE_USER.** @return a <code>String</code> specifying the login of the user making*         this request, or <code>null</code> if the user login is not known*/public String getRemoteUser();/*** Returns a boolean indicating whether the authenticated user is included* in the specified logical "role". Roles and role membership can be defined* using deployment descriptors. If the user has not been authenticated, the* method returns <code>false</code>.** @param role*            a <code>String</code> specifying the name of the role* @return a <code>boolean</code> indicating whether the user making this*         request belongs to a given role; <code>false</code> if the user*         has not been authenticated*/public boolean isUserInRole(String role);/*** Returns a <code>java.security.Principal</code> object containing the name* of the current authenticated user. If the user has not been* authenticated, the method returns <code>null</code>.** @return a <code>java.security.Principal</code> containing the name of the*         user making this request; <code>null</code> if the user has not*         been authenticated*/public java.security.Principal getUserPrincipal();/*** Returns the session ID specified by the client. This may not be the same* as the ID of the current valid session for this request. If the client* did not specify a session ID, this method returns <code>null</code>.** @return a <code>String</code> specifying the session ID, or*         <code>null</code> if the request did not specify a session ID* @see #isRequestedSessionIdValid*/public String getRequestedSessionId();/*** Returns the part of this request's URL from the protocol name up to the* query string in the first line of the HTTP request. The web container* does not decode this String. For example:* <table summary="Examples of Returned Values">* <tr align=left>* <th>First line of HTTP request</th>* <th>Returned Value</th>* <tr>* <td>POST /some/path.html HTTP/1.1* <td>* <td>/some/path.html* <tr>* <td>GET http://foo.bar/a.html HTTP/1.0* <td>* <td>/a.html* <tr>* <td>HEAD /xyz?a=b HTTP/1.1* <td>* <td>/xyz* </table>* <p>* To reconstruct an URL with a scheme and host, use* {@link #getRequestURL}.** @return a <code>String</code> containing the part of the URL from the*         protocol name up to the query string* @see #getRequestURL*/public String getRequestURI();/*** Reconstructs the URL the client used to make the request. The returned* URL contains a protocol, server name, port number, and server path, but* it does not include query string parameters.* <p>* Because this method returns a <code>StringBuffer</code>, not a string,* you can modify the URL easily, for example, to append query parameters.* <p>* This method is useful for creating redirect messages and for reporting* errors.** @return a <code>StringBuffer</code> object containing the reconstructed*         URL*/public StringBuffer getRequestURL();/*** Returns the part of this request's URL that calls the servlet. This path* starts with a "/" character and includes either the servlet name or a* path to the servlet, but does not include any extra path information or a* query string. Same as the value of the CGI variable SCRIPT_NAME.* <p>* This method will return an empty string ("") if the servlet used to* process this request was matched using the "/*" pattern.** @return a <code>String</code> containing the name or path of the servlet*         being called, as specified in the request URL, decoded, or an*         empty string if the servlet used to process the request is*         matched using the "/*" pattern.*/public String getServletPath();/*** Returns the current <code>HttpSession</code> associated with this request* or, if there is no current session and <code>create</code> is true,* returns a new session.* <p>* If <code>create</code> is <code>false</code> and the request has no valid* <code>HttpSession</code>, this method returns <code>null</code>.* <p>* To make sure the session is properly maintained, you must call this* method before the response is committed. If the container is using* cookies to maintain session integrity and is asked to create a new* session when the response is committed, an IllegalStateException is* thrown.** @param create*            <code>true</code> to create a new session for this request if*            necessary; <code>false</code> to return <code>null</code> if*            there's no current session* @return the <code>HttpSession</code> associated with this request or*         <code>null</code> if <code>create</code> is <code>false</code>*         and the request has no valid session* @see #getSession()*/public HttpSession getSession(boolean create);/*** Returns the current session associated with this request, or if the* request does not have a session, creates one.** @return the <code>HttpSession</code> associated with this request* @see #getSession(boolean)*/public HttpSession getSession();/*** Changes the session ID of the session associated with this request. This* method does not create a new session object it only changes the ID of the* current session.** @return the new session ID allocated to the session* @see HttpSessionIdListener* @since Servlet 3.1*/public String changeSessionId();/*** Checks whether the requested session ID is still valid.** @return <code>true</code> if this request has an id for a valid session*         in the current session context; <code>false</code> otherwise* @see #getRequestedSessionId* @see #getSession*/public boolean isRequestedSessionIdValid();/*** Checks whether the requested session ID came in as a cookie.** @return <code>true</code> if the session ID came in as a cookie;*         otherwise, <code>false</code>* @see #getSession*/public boolean isRequestedSessionIdFromCookie();/*** Checks whether the requested session ID came in as part of the request* URL.** @return <code>true</code> if the session ID came in as part of a URL;*         otherwise, <code>false</code>* @see #getSession*/public boolean isRequestedSessionIdFromURL();/*** @return {@link #isRequestedSessionIdFromURL()}* @deprecated As of Version 2.1 of the Java Servlet API, use*             {@link #isRequestedSessionIdFromURL} instead.*/@SuppressWarnings("dep-ann")// Spec API does not use @Deprecatedpublic boolean isRequestedSessionIdFromUrl();/*** Triggers the same authentication process as would be triggered if the* request is for a resource that is protected by a security constraint.** @param response  The response to use to return any authentication*                  challenge* @return <code>true</code> if the user is successfully authenticated and*         <code>false</code> if not** @throws IOException if the authentication process attempted to read from*         the request or write to the response and an I/O error occurred* @throws IllegalStateException if the authentication process attempted to*         write to the response after it had been committed* @throws ServletException if the authentication failed and the caller is*         expected to handle the failure* @since Servlet 3.0*/public boolean authenticate(HttpServletResponse response)throws IOException, ServletException;/*** Authenticate the provided user name and password and then associated the* authenticated user with the request.** @param username  The user name to authenticate* @param password  The password to use to authenticate the user** @throws ServletException*             If any of {@link #getRemoteUser()},*             {@link #getUserPrincipal()} or {@link #getAuthType()} are*             non-null, if the configured authenticator does not support*             user name and password authentication or if the*             authentication fails* @since Servlet 3.0*/public void login(String username, String password) throws ServletException;/*** Removes any authenticated user from the request.** @throws ServletException*             If the logout fails* @since Servlet 3.0*/public void logout() throws ServletException;/*** Return a collection of all uploaded Parts.** @return A collection of all uploaded Parts.* @throws IOException*             if an I/O error occurs* @throws IllegalStateException*             if size limits are exceeded or no multipart configuration is*             provided* @throws ServletException*             if the request is not multipart/form-data* @since Servlet 3.0*/public Collection<Part> getParts() throws IOException,ServletException;/*** Gets the named Part or null if the Part does not exist. Triggers upload* of all Parts.** @param name The name of the Part to obtain** @return The named Part or null if the Part does not exist* @throws IOException*             if an I/O error occurs* @throws IllegalStateException*             if size limits are exceeded* @throws ServletException*             if the request is not multipart/form-data* @since Servlet 3.0*/public Part getPart(String name) throws IOException,ServletException;/*** Start the HTTP upgrade process and pass the connection to the provided* protocol handler once the current request/response pair has completed* processing. Calling this method sets the response status to {@link* HttpServletResponse#SC_SWITCHING_PROTOCOLS} and flushes the response.* Protocol specific headers must have already been set before this method* is called.** @param <T>                     The type of the upgrade handler* @param httpUpgradeHandlerClass The class that implements the upgrade*                                handler** @return A newly created instance of the specified upgrade handler type** @throws IOException*             if an I/O error occurred during the upgrade* @throws ServletException*             if the given httpUpgradeHandlerClass fails to be instantiated* @since Servlet 3.1*/public <T extends HttpUpgradeHandler> T upgrade(Class<T> httpUpgradeHandlerClass) throws java.io.IOException, ServletException;
}
/** Licensed to the Apache Software Foundation (ASF) under one or more* contributor license agreements.  See the NOTICE file distributed with* this work for additional information regarding copyright ownership.* The ASF licenses this file to You 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.*/
package javax.servlet.http;import java.io.IOException;
import java.util.Collection;import javax.servlet.ServletResponse;/*** Extends the {@link ServletResponse} interface to provide HTTP-specific* functionality in sending a response. For example, it has methods to access* HTTP headers and cookies.* <p>* The servlet container creates an <code>HttpServletResponse</code> object and* passes it as an argument to the servlet's service methods (<code>doGet</code>, <code>doPost</code>, etc).** @see javax.servlet.ServletResponse*/
public interface HttpServletResponse extends ServletResponse {/*** Adds the specified cookie to the response. This method can be called* multiple times to set more than one cookie.** @param cookie*            the Cookie to return to the client*/public void addCookie(Cookie cookie);/*** Returns a boolean indicating whether the named response header has* already been set.** @param name*            the header name* @return <code>true</code> if the named response header has already been*         set; <code>false</code> otherwise*/public boolean containsHeader(String name);/*** Encodes the specified URL by including the session ID in it, or, if* encoding is not needed, returns the URL unchanged. The implementation of* this method includes the logic to determine whether the session ID needs* to be encoded in the URL. For example, if the browser supports cookies,* or session tracking is turned off, URL encoding is unnecessary.* <p>* For robust session tracking, all URLs emitted by a servlet should be run* through this method. Otherwise, URL rewriting cannot be used with* browsers which do not support cookies.** @param url*            the url to be encoded.* @return the encoded URL if encoding is needed; the unchanged URL*         otherwise.*/public String encodeURL(String url);/*** Encodes the specified URL for use in the <code>sendRedirect</code> method* or, if encoding is not needed, returns the URL unchanged. The* implementation of this method includes the logic to determine whether the* session ID needs to be encoded in the URL. Because the rules for making* this determination can differ from those used to decide whether to encode* a normal link, this method is separated from the <code>encodeURL</code>* method.* <p>* All URLs sent to the <code>HttpServletResponse.sendRedirect</code> method* should be run through this method. Otherwise, URL rewriting cannot be* used with browsers which do not support cookies.** @param url*            the url to be encoded.* @return the encoded URL if encoding is needed; the unchanged URL*         otherwise.* @see #sendRedirect* @see #encodeUrl*/public String encodeRedirectURL(String url);/*** @param url*            the url to be encoded.* @return the encoded URL if encoding is needed; the unchanged URL*         otherwise.* @deprecated As of version 2.1, use encodeURL(String url) instead*/@SuppressWarnings("dep-ann")// Spec API does not use @Deprecatedpublic String encodeUrl(String url);/*** @param url*            the url to be encoded.* @return the encoded URL if encoding is needed; the unchanged URL*         otherwise.* @deprecated As of version 2.1, use encodeRedirectURL(String url) instead*/@SuppressWarnings("dep-ann")// Spec API does not use @Deprecatedpublic String encodeRedirectUrl(String url);/*** Sends an error response to the client using the specified status code and* clears the output buffer. The server defaults to creating the response to* look like an HTML-formatted server error page containing the specified* message, setting the content type to "text/html", leaving cookies and* other headers unmodified. If an error-page declaration has been made for* the web application corresponding to the status code passed in, it will* be served back in preference to the suggested msg parameter.* <p>* If the response has already been committed, this method throws an* IllegalStateException. After using this method, the response should be* considered to be committed and should not be written to.** @param sc*            the error status code* @param msg*            the descriptive message* @exception IOException*                If an input or output exception occurs* @exception IllegalStateException*                If the response was committed*/public void sendError(int sc, String msg) throws IOException;/*** Sends an error response to the client using the specified status code and* clears the buffer. This is equivalent to calling {@link #sendError(int,* String)} with the same status code and <code>null</code> for the message.** @param sc*            the error status code* @exception IOException*                If an input or output exception occurs* @exception IllegalStateException*                If the response was committed before this method call*/public void sendError(int sc) throws IOException;/*** Sends a temporary redirect response to the client using the specified* redirect location URL. This method can accept relative URLs; the servlet* container must convert the relative URL to an absolute URL before sending* the response to the client. If the location is relative without a leading* '/' the container interprets it as relative to the current request URI.* If the location is relative with a leading '/' the container interprets* it as relative to the servlet container root.* <p>* If the response has already been committed, this method throws an* IllegalStateException. After using this method, the response should be* considered to be committed and should not be written to.** @param location*            the redirect location URL* @exception IOException*                If an input or output exception occurs* @exception IllegalStateException*                If the response was committed or if a partial URL is given*                and cannot be converted into a valid URL*/public void sendRedirect(String location) throws IOException;/*** Sets a response header with the given name and date-value. The date is* specified in terms of milliseconds since the epoch. If the header had* already been set, the new value overwrites the previous one. The* <code>containsHeader</code> method can be used to test for the presence* of a header before setting its value.** @param name*            the name of the header to set* @param date*            the assigned date value* @see #containsHeader* @see #addDateHeader*/public void setDateHeader(String name, long date);/*** Adds a response header with the given name and date-value. The date is* specified in terms of milliseconds since the epoch. This method allows* response headers to have multiple values.** @param name*            the name of the header to set* @param date*            the additional date value* @see #setDateHeader*/public void addDateHeader(String name, long date);/*** Sets a response header with the given name and value. If the header had* already been set, the new value overwrites the previous one. The* <code>containsHeader</code> method can be used to test for the presence* of a header before setting its value.** @param name*            the name of the header* @param value*            the header value If it contains octet string, it should be*            encoded according to RFC 2047*            (http://www.ietf.org/rfc/rfc2047.txt)* @see #containsHeader* @see #addHeader*/public void setHeader(String name, String value);/*** Adds a response header with the given name and value. This method allows* response headers to have multiple values.** @param name*            the name of the header* @param value*            the additional header value If it contains octet string, it*            should be encoded according to RFC 2047*            (http://www.ietf.org/rfc/rfc2047.txt)* @see #setHeader*/public void addHeader(String name, String value);/*** Sets a response header with the given name and integer value. If the* header had already been set, the new value overwrites the previous one.* The <code>containsHeader</code> method can be used to test for the* presence of a header before setting its value.** @param name*            the name of the header* @param value*            the assigned integer value* @see #containsHeader* @see #addIntHeader*/public void setIntHeader(String name, int value);/*** Adds a response header with the given name and integer value. This method* allows response headers to have multiple values.** @param name*            the name of the header* @param value*            the assigned integer value* @see #setIntHeader*/public void addIntHeader(String name, int value);/*** Sets the status code for this response. This method is used to set the* return status code when there is no error (for example, for the status* codes SC_OK or SC_MOVED_TEMPORARILY). If there is an error, and the* caller wishes to invoke an error-page defined in the web application, the* <code>sendError</code> method should be used instead.* <p>* The container clears the buffer and sets the Location header, preserving* cookies and other headers.** @param sc*            the status code* @see #sendError*/public void setStatus(int sc);/*** Sets the status code and message for this response.** @param sc*            the status code* @param sm*            the status message* @deprecated As of version 2.1, due to ambiguous meaning of the message*             parameter. To set a status code use*             <code>setStatus(int)</code>, to send an error with a*             description use <code>sendError(int, String)</code>.*/@SuppressWarnings("dep-ann")// Spec API does not use @Deprecatedpublic void setStatus(int sc, String sm);/*** Get the HTTP status code for this Response.** @return The HTTP status code for this Response** @since Servlet 3.0*/public int getStatus();/*** Return the value for the specified header, or <code>null</code> if this* header has not been set.  If more than one value was added for this* name, only the first is returned; use {@link #getHeaders(String)} to* retrieve all of them.** @param name Header name to look up** @return The first value for the specified header. This is the raw value*         so if multiple values are specified in the first header then they*         will be returned as a single header value .** @since Servlet 3.0*/public String getHeader(String name);/*** Return a Collection of all the header values associated with the* specified header name.** @param name Header name to look up** @return The values for the specified header. These are the raw values so*         if multiple values are specified in a single header that will be*         returned as a single header value.** @since Servlet 3.0*/public Collection<String> getHeaders(String name);/*** Get the header names set for this HTTP response.** @return The header names set for this HTTP response.** @since Servlet 3.0*/public Collection<String> getHeaderNames();/** Server status codes; see RFC 2068.*//*** Status code (100) indicating the client can continue.*/public static final int SC_CONTINUE = 100;/*** Status code (101) indicating the server is switching protocols according* to Upgrade header.*/public static final int SC_SWITCHING_PROTOCOLS = 101;/*** Status code (200) indicating the request succeeded normally.*/public static final int SC_OK = 200;/*** Status code (201) indicating the request succeeded and created a new* resource on the server.*/public static final int SC_CREATED = 201;/*** Status code (202) indicating that a request was accepted for processing,* but was not completed.*/public static final int SC_ACCEPTED = 202;/*** Status code (203) indicating that the meta information presented by the* client did not originate from the server.*/public static final int SC_NON_AUTHORITATIVE_INFORMATION = 203;/*** Status code (204) indicating that the request succeeded but that there* was no new information to return.*/public static final int SC_NO_CONTENT = 204;/*** Status code (205) indicating that the agent <em>SHOULD</em> reset the* document view which caused the request to be sent.*/public static final int SC_RESET_CONTENT = 205;/*** Status code (206) indicating that the server has fulfilled the partial* GET request for the resource.*/public static final int SC_PARTIAL_CONTENT = 206;/*** Status code (300) indicating that the requested resource corresponds to* any one of a set of representations, each with its own specific location.*/public static final int SC_MULTIPLE_CHOICES = 300;/*** Status code (301) indicating that the resource has permanently moved to a* new location, and that future references should use a new URI with their* requests.*/public static final int SC_MOVED_PERMANENTLY = 301;/*** Status code (302) indicating that the resource has temporarily moved to* another location, but that future references should still use the* original URI to access the resource. This definition is being retained* for backwards compatibility. SC_FOUND is now the preferred definition.*/public static final int SC_MOVED_TEMPORARILY = 302;/*** Status code (302) indicating that the resource reside temporarily under a* different URI. Since the redirection might be altered on occasion, the* client should continue to use the Request-URI for future* requests.(HTTP/1.1) To represent the status code (302), it is recommended* to use this variable.*/public static final int SC_FOUND = 302;/*** Status code (303) indicating that the response to the request can be* found under a different URI.*/public static final int SC_SEE_OTHER = 303;/*** Status code (304) indicating that a conditional GET operation found that* the resource was available and not modified.*/public static final int SC_NOT_MODIFIED = 304;/*** Status code (305) indicating that the requested resource <em>MUST</em> be* accessed through the proxy given by the <code><em>Location</em></code>* field.*/public static final int SC_USE_PROXY = 305;/*** Status code (307) indicating that the requested resource resides* temporarily under a different URI. The temporary URI <em>SHOULD</em> be* given by the <code><em>Location</em></code> field in the response.*/public static final int SC_TEMPORARY_REDIRECT = 307;/*** Status code (400) indicating the request sent by the client was* syntactically incorrect.*/public static final int SC_BAD_REQUEST = 400;/*** Status code (401) indicating that the request requires HTTP* authentication.*/public static final int SC_UNAUTHORIZED = 401;/*** Status code (402) reserved for future use.*/public static final int SC_PAYMENT_REQUIRED = 402;/*** Status code (403) indicating the server understood the request but* refused to fulfill it.*/public static final int SC_FORBIDDEN = 403;/*** Status code (404) indicating that the requested resource is not* available.*/public static final int SC_NOT_FOUND = 404;/*** Status code (405) indicating that the method specified in the* <code><em>Request-Line</em></code> is not allowed for the resource* identified by the <code><em>Request-URI</em></code>.*/public static final int SC_METHOD_NOT_ALLOWED = 405;/*** Status code (406) indicating that the resource identified by the request* is only capable of generating response entities which have content* characteristics not acceptable according to the accept headers sent in* the request.*/public static final int SC_NOT_ACCEPTABLE = 406;/*** Status code (407) indicating that the client <em>MUST</em> first* authenticate itself with the proxy.*/public static final int SC_PROXY_AUTHENTICATION_REQUIRED = 407;/*** Status code (408) indicating that the client did not produce a request* within the time that the server was prepared to wait.*/public static final int SC_REQUEST_TIMEOUT = 408;/*** Status code (409) indicating that the request could not be completed due* to a conflict with the current state of the resource.*/public static final int SC_CONFLICT = 409;/*** Status code (410) indicating that the resource is no longer available at* the server and no forwarding address is known. This condition* <em>SHOULD</em> be considered permanent.*/public static final int SC_GONE = 410;/*** Status code (411) indicating that the request cannot be handled without a* defined <code><em>Content-Length</em></code>.*/public static final int SC_LENGTH_REQUIRED = 411;/*** Status code (412) indicating that the precondition given in one or more* of the request-header fields evaluated to false when it was tested on the* server.*/public static final int SC_PRECONDITION_FAILED = 412;/*** Status code (413) indicating that the server is refusing to process the* request because the request entity is larger than the server is willing* or able to process.*/public static final int SC_REQUEST_ENTITY_TOO_LARGE = 413;/*** Status code (414) indicating that the server is refusing to service the* request because the <code><em>Request-URI</em></code> is longer than the* server is willing to interpret.*/public static final int SC_REQUEST_URI_TOO_LONG = 414;/*** Status code (415) indicating that the server is refusing to service the* request because the entity of the request is in a format not supported by* the requested resource for the requested method.*/public static final int SC_UNSUPPORTED_MEDIA_TYPE = 415;/*** Status code (416) indicating that the server cannot serve the requested* byte range.*/public static final int SC_REQUESTED_RANGE_NOT_SATISFIABLE = 416;/*** Status code (417) indicating that the server could not meet the* expectation given in the Expect request header.*/public static final int SC_EXPECTATION_FAILED = 417;/*** Status code (500) indicating an error inside the HTTP server which* prevented it from fulfilling the request.*/public static final int SC_INTERNAL_SERVER_ERROR = 500;/*** Status code (501) indicating the HTTP server does not support the* functionality needed to fulfill the request.*/public static final int SC_NOT_IMPLEMENTED = 501;/*** Status code (502) indicating that the HTTP server received an invalid* response from a server it consulted when acting as a proxy or gateway.*/public static final int SC_BAD_GATEWAY = 502;/*** Status code (503) indicating that the HTTP server is temporarily* overloaded, and unable to handle the request.*/public static final int SC_SERVICE_UNAVAILABLE = 503;/*** Status code (504) indicating that the server did not receive a timely* response from the upstream server while acting as a gateway or proxy.*/public static final int SC_GATEWAY_TIMEOUT = 504;/*** Status code (505) indicating that the server does not support or refuses* to support the HTTP protocol version that was used in the request* message.*/public static final int SC_HTTP_VERSION_NOT_SUPPORTED = 505;
}

Servlet生命周期

  1. 客户端请求该 Servlet;

  2. 2.

    加载 Servlet 类到内存;

  3. 3.

    实例化并调用init()方法初始化该 Servlet;

  4. 4.

    service()(根据请求方法不同调用doGet() 或者 doPost(),此外还有doHead()、doPut()、doTrace()、doDelete()、doOptions()、destroy())。

  5. 5.

    加载和实例化 Servlet。这项操作一般是动态执行的。然而,Server 通常会提供一个管理的选项,用于在 Server 启动时强制装载和初始化特定的 Servlet。

Server 创建一个 Servlet的实例

第一个客户端的请求到达 Server

Server 调用 Servlet 的 init() 方法(可配置为 Server 创建 Servlet 实例时调用,在 web.xml 中 标签下配置 标签,配置的值为整型,值越小 Servlet 的启动优先级越高)

一个客户端的请求到达 Server

Server 创建一个请求对象,处理客户端请求

Server 创建一个响应对象,响应客户端请求

Server 激活 Servlet 的 service() 方法,传递请求和响应对象作为参数

service() 方法获得关于请求对象的信息,处理请求,访问其他资源,获得需要的信息

service() 方法使用响应对象的方法,将响应传回Server,最终到达客户端。service()方法可能激活其它方法以处理请求,如 doGet() 或 doPost() 或程序员自己开发的新的方法。

对于更多的客户端请求,Server 创建新的请求和响应对象,仍然激活此 Servlet 的 service() 方法,将这两个对象作为参数传递给它。如此重复以上的循环,但无需再次调用 init() 方法。一般 Servlet 只初始化一次(只有一个对象),当 Server 不再需要 Servlet 时(一般当 Server 关闭时),Server 调用 Servlet 的 destroy() 方法。

http://www.rdtb.cn/news/17694.html

相关文章:

  • 泉州网站优化排名推广it培训班出来现状
  • 网站开发在哪里接活兰州seo
  • 汇编做网站百度站长工具链接提交
  • 企业网站制作模板cps推广联盟
  • 房地产做网站不搜索网站排行榜
  • 佛山网站建设哪家公司好网站优化检测工具
  • 制作电商网站软文宣传
  • 网站建设与管理专业教学计划seo公司 上海
  • 网站的黄金看盘软件百度站长平台怎么用
  • 网站子目录怎么做的手机百度app免费下载
  • wordpress 自定义css优化网站推广排名
  • 做网站1万多爱站网seo工具包
  • wordpress文章发布软件广东培训seo
  • 建一个app要多少钱杭州关键词推广优化方案
  • 网站右侧qq客服代码东莞seo项目优化方法
  • 如何做好网站建设工作网络推广员工作内容
  • 易语言做网站客户端投稿网站
  • 关于加强政府网站信息内容建设的意见免费seo网站诊断免费
  • 科技特长生包括哪些项目seo按照搜索引擎的什么对网站
  • 怎么做英文网站排行榜百度
  • 室内设计专业网站百度收录哪些平台比较好
  • 网站建设php文件html文件seo优化招商
  • 网站建设视频超云seo优化
  • 管理登陆网站开发软件青岛seo优化
  • pc网站转wap网站微信营销的10种方法技巧
  • 找外地的做网站制作网站教程
  • 秦皇岛建设网站公司b2b平台营销
  • 广州有网站建设学校百度推广运营这个工作好做吗
  • 站长工具网站提交搜索引擎优化英文简称
  • wordpress区块链主题青岛神马排名优化