欢迎光临
我们一直在努力

Java Servlet API说明文档(2.1a版)(三)-JSP教程,Jsp/Servlet

建站超值云服务器,限时71元/月

软件包:javax.servlet.http

所包含的接口:httpservletrequest;httpservletresponse;httpsession;httpsessionbindinglistener;httpsessioncontext。

所包含的类:cookie;httpservlet;httpsessionbindingevent;httputils。

一、httpservletrequest接口

定义\

public interface httpservletrequest extends servletrequest;

用来处理一个对servlet的http格式的请求信息。

方法

1、getauthtype

public string getauthtype();

返回这个请求的身份验证模式。

2、getcookies

public cookie[] getcookies();

返回一个数组,该数组包含这个请求中当前的所有cookie。如果这个请求中没有cookie,返回一个空数组。

3、getdateheader

public long getdateheader(string name);

返回指定的请求头域的值,这个值被转换成一个反映自1970-1-1日(gmt)以来的精确到毫秒的长整数。

如果头域不能转换,抛出一个illegalargumentexception。如果这个请求头域不存在,这个方法返回-1。

4、getheader

public string getheader(string name);

返回一个请求头域的值。(译者注:与上一个方法不同的是,该方法返回一个字符串)

如果这个请求头域不存在,这个方法返回-1。

5、getheadernames

public enumeration getheadernames();

该方法返回一个string对象的列表,该列表反映请求的所有头域名。

有的引擎可能不允许通过这种方法访问头域,在这种情况下,这个方法返回一个空的列表。

6、getintheader

public int getintheader(string name);

返回指定的请求头域的值,这个值被转换成一个整数。

如果头域不能转换,抛出一个illegalargumentexception。如果这个请求头域不存在,这个方法返回-1。

7、getmethod

public string getmethod();

返回这个请求使用的http方法(例如:get、post、put)

8、getpathinfo

public string getpathinfo();

这个方法返回在这个请求的url的servlet路径之后的请求url的额外的路径信息。如果这个请求url包括一个查询字符串,在返回值内将不包括这个查询字符串。这个路径在返回之前必须经过url解码。如果在这个请求的url的servlet路径之后没有路径信息。这个方法返回空值。

9、getpathtranslated

public string getpathtranslated();

这个方法获得这个请求的url的servlet路径之后的额外的路径信息,并将它转换成一个真实的路径。在进行转换前,这个请求的url必须经过url解码。如果在这个url的servlet路径之后没有附加路径信息。这个方法返回空值。

10、getquerystring

public string getquerystring();

返回这个请求url所包含的查询字符串。一个查询字串符在一个url中由一个“?”引出。如果没有查询字符串,这个方法返回空值。

11、getremoteuser

public string getremoteuser

返回作了请求的用户名,这个信息用来作http用户论证。

如果在请求中没有用户名信息,这个方法返回空值。

12、getrequestedsessionid

public string getrequestedsessionid();

返回这个请求相应的session id。如果由于某种原因客户端提供的session id是无效的,这个session id将与在当前session中的session id不同,与此同时,将建立一个新的session。

如果这个请求没与一个session关联,这个方法返回空值。

13、getrequesturi

public string getrequesturi();

从http请求的第一行返回请求的url中定义被请求的资源的部分。如果有一个查询字符串存在,这个查询字符串将不包括在返回值当中。例如,一个请求通过/catalog/books?id=1这样的url路径访问,这个方法将返回/catalog/books。这个方法的返回值包括了servlet路径和路径信息。

如果这个url路径中的的一部分经过了url编码,这个方法的返回值在返回之前必须经过解码。

14、getservletpath

public string getservletpath();

这个方法返回请求url反映调用servlet的部分。例如,一个servlet被映射到/catalog/summer这个url路径,而一个请求使用了/catalog/summer/casual这样的路径。所谓的反映调用servlet的部分就是指/catalog/summer。

如果这个servlet不是通过路径匹配来调用。这个方法将返回一个空值。

15、getsession

public httpsession getsession();

public httpsession getsession(boolean create);

返回与这个请求关联的当前的有效的session。如果调用这个方法时没带参数,那么在没有session与这个请求关联的情况下,将会新建一个session。如果调用这个方法时带入了一个布尔型的参数,只有当这个参数为真时,session才会被建立。

为了确保session能够被完全维持。servlet开发者必须在响应被提交之前调用该方法。

如果带入的参数为假,而且没有session与这个请求关联。这个方法会返回空值。

16、isrequestedsessionidvalid

public boolean isrequestedsessionidvalid();

这个方法检查与此请求关联的session当前是不是有效。如果当前请求中使用的session无效,它将不能通过getsession方法返回。

17、isrequestedsessionidfromcookie

public boolean isrequestedsessionidfromcookie();

如果这个请求的session id是通过客户端的一个cookie提供的,该方法返回真,否则返回假。

18、isrequestedsessionidfromurl

public boolean isrequestedsessionidfromurl();

如果这个请求的session id是通过客户端的url的一部分提供的,该方法返回真,否则返回假。请注意此方法与isrequestedsessionidfromurl在url的拼写上不同。

以下方法将被取消\\r

19、isrequestedsessionidfromurl

public boolean isrequestedsessionidfromurl();

该方法被isrequestedsessionidfromurl代替。

二、httpservletresponse接口

定义\\r

public interface httpservletresponse extends servletresponse

描述一个返回到客户端的http回应。这个接口允许servlet程序员利用http协议规定的头信息。

成员变量

public static final int sc_continue = 100;

public static final int sc_switching_protocols = 101;

public static final int sc_ok = 200;

public static final int sc_created = 201;

public static final int sc_accepted = 202;

public static final int sc_non_authoritative_information = 203;

public static final int sc_no_content = 204;

public static final int sc_reset_content = 205;

public static final int sc_partial_content = 206;

public static final int sc_multiple_choices = 300;

public static final int sc_moved_permanently = 301;

public static final int sc_moved_temporarily = 302;

public static final int sc_see_other = 303;

public static final int sc_not_modified = 304;

public static final int sc_use_proxy = 305;

public static final int sc_bad_request = 400;

public static final int sc_unauthorized = 401;

public static final int sc_payment_required = 402;

public static final int sc_forbidden = 403;

public static final int sc_not_found = 404;

public static final int sc_method_not_allowed = 405;

public static final int sc_not_acceptable = 406;

public static final int sc_proxy_authentication_required = 407;

public static final int sc_request_timeout = 408;

public static final int sc_conflict = 409;

public static final int sc_gone = 410;

public static final int sc_length_required = 411;

public static final int sc_precondition_failed = 412;

public static final int sc_request_entity_too_large = 413;

public static final int sc_request_uri_too_long = 414;

public static final int sc_unsupported_media_type = 415;

public static final int sc_internal_server_error = 500;

public static final int sc_not_implemented = 501;

public static final int sc_bad_gateway = 502;

public static final int sc_service_unavailable = 503;

public static final int sc_gateway_timeout = 504;

public static final int sc_http_version_not_supported = 505;

以上http产状态码是由http/1.1定义的。

方法

1、addcookie

public void addcookie(cookie cookie);

在响应中增加一个指定的cookie。可多次调用该方法以定义多个cookie。为了设置适当的头域,该方法应该在响应被提交之前调用。

2、containsheader

public boolean containsheader(string name);

检查是否设置了指定的响应头。

3、encoderedirecturl

public string encoderedirecturl(string url);

对sendredirect方法使用的指定url进行编码。如果不需要编码,就直接返回这个url。之所以提供这个附加的编码方法,是因为在redirect的情况下,决定是否对url进行编码的规则和一般情况有所不同。所给的url必须是一个绝对url。相对url不能被接收,会抛出一个illegalargumentexception。

所有提供给sendredirect方法的url都应通过这个方法运行,这样才能确保会话跟踪能够在所有浏览器中正常运行。

4、encodeurl

public string encodeurl(string url);

对包含session id的url进行编码。如果不需要编码,就直接返回这个url。servlet引擎必须提供url编码方法,因为在有些情况下,我们将不得不重写url,例如,在响应对应的请求中包含一个有效的session,但是这个session不能被非url的(例如cookie)的手段来维持。

所有提供给servlet的url都应通过这个方法运行,这样才能确保会话跟踪能够在所有浏览器中正常运行。

5、senderror

public void senderror(int statuscode) throws ioexception;

public void senderror(int statuscode, string message) throws

ioexception;

用给定的状态码发给客户端一个错误响应。如果提供了一个message参数,这将作为响应体的一部分被发出,否则,服务器会返回错误代码所对应的标准信息。

调用这个方法后,响应立即被提交。在调用这个方法后,servlet不会再有更多的输出。

6、sendredirect

public void sendredirect(string location) throws ioexception;

使用给定的路径,给客户端发出一个临时转向的响应(sc_moved_temporarily)。给定的路径必须是绝对url。相对url将不能被接收,会抛出一个illegalargumentexception。

这个方法必须在响应被提交之前调用。调用这个方法后,响应立即被提交。在调用这个方法后,servlet不会再有更多的输出。

7、setdateheader

public void setdateheader(string name, long date);

用一个给定的名称和日期值设置响应头,这里的日期值应该是反映自1970-1-1日(gmt)以来的精确到毫秒的长整数。如果响应头已经被设置,新的值将覆盖当前的值。

8、setheader

public void setheader(string name, string value);

用一个给定的名称和域设置响应头。如果响应头已经被设置,新的值将覆盖当前的值。

9、setintheader

public void setintheader(string name, int value);

用一个给定的名称和整形值设置响应头。如果响应头已经被设置,新的值将覆盖当前的值。

10、setstatus

public void setstatus(int statuscode);

这个方法设置了响应的状态码,如果状态码已经被设置,新的值将覆盖当前的值。

以下的几个方法将被取消\

11、encoderedirecturl

public string encoderedirecturl(string url);

该方法被encoderedirecturl取代。

12、encodeurl

public string encodeurl(string url);

该方法被encodeurl取代。

13、setstatus

public void setstatus(int statuscode, string message);

这个方法设置了响应的状态码,如果状态码已经被设置,新的值将覆盖当前的值。如果提供了一个message,它也将会被作为响应体的一部分被发送。

三、httpsession接口

定义\

public interface httpsession

这个接口被servlet引擎用来实现在http客户端和http会话两者的关联。这种关联可能在多外连接和请求中持续一段给定的时间。session用来在无状态的http协议下越过多个请求页面来维持状态和识别用户。

一个session可以通过cookie或重写url来维持。

方法

1、getcreationtime

public long getcreationtime();

返回建立session的时间,这个时间表示为自1970-1-1日(gmt)以来的毫秒数。

2、getid

public string getid();

返回分配给这个session的标识符。一个http session的标识符是一个由服务器来建立和维持的唯一的字符串。

3、getlastaccessedtime

public long getlastaccessedtime();

返回客户端最后一次发出与这个session有关的请求的时间,如果这个session是新建立的,返回-1。这个时间表示为自1970-1-1日(gmt)以来的毫秒数。

4、getmaxinactiveinterval

public int getmaxinactiveinterval();

返加一个秒数,这个秒数表示客户端在不发出请求时,session被servlet引擎维持的最长时间。在这个时间之后,servlet引擎可能被servlet引擎终止。如果这个session不会被终止,这个方法返回-1。

当session无效后再调用这个方法会抛出一个illegalstateexception。

5、getvalue

public object getvalue(string name);

返回一个以给定的名字绑定到session上的对象。如果不存在这样的绑定,返回空值。

当session无效后再调用这个方法会抛出一个illegalstateexception。

6、getvaluenames

public string[] getvaluenames();

以一个数组返回绑定到session上的所有数据的名称。

当session无效后再调用这个方法会抛出一个illegalstateexception。

7、invalidate

public void invalidate();

这个方法会终止这个session。所有绑定在这个session上的数据都会被清除。并通过httpsessionbindinglistener接口的valueunbound方法发出通告。

8、isnew

public boolean isnew();

返回一个布尔值以判断这个session是不是新的。如果一个session已经被服务器建立但是还没有收到相应的客户端的请求,这个session将被认为是新的。这意味着,这个客户端还没有加入会话或没有被会话公认。在他发出下一个请求时还不能返回适当的session认证信息。

当session无效后再调用这个方法会抛出一个illegalstateexception。

9、putvalue

public void putvalue(string name, object value);

以给定的名字,绑定给定的对象到session中。已存在的同名的绑定会被重置。这时会调用httpsessionbindinglistener接口的valuebound方法。

当session无效后再调用这个方法会抛出一个illegalstateexception。

10、removevalue

public void removevalue(string name);

取消给定名字的对象在session上的绑定。如果未找到给定名字的绑定的对象,这个方法什么出不做。 这时会调用httpsessionbindinglistener接口的valueunbound方法。

当session无效后再调用这个方法会抛出一个illegalstateexception。

11、setmaxinactiveinterval

public int setmaxinactiveinterval(int interval);

设置一个秒数,这个秒数表示客户端在不发出请求时,session被servlet引擎维持的最长时间。

以下这个方法将被取消\

12、getsessioncontext

public httpsessioncontext getsessioncontext();

返回session在其中得以保持的环境变量。这个方法和其他所有httpsessioncontext的方法一样被取消了。

四、httpsessionbindinglistener接口

定义\

public interface httpsessionbindinglistener

这个对象被加入到http的session中,执行这个接口会通告有没有什么对象被绑定到这个http session中或被从这个http session中取消绑定。

方法

1、valuebound

public void valuebound(httpsessionbindingevent event);

当一个对象被绑定到session中,调用此方法。httpsession.putvalue方法被调用时,servlet引擎应该调用此方法。

2、valueunbound

public void valueunbound(httpsessionbindingevent event);

当一个对象被从session中取消绑定,调用此方法。httpsession.removevalue方法被调用时,servlet引擎应该调用此方法。

五、httpsessioncontext接口

定义\

此接口将被取消\

public interface httpsessioncontext

这个对象是与一组http session关联的单一的实体。

这个接口由于安全的原因被取消,它出现在目前的版本中仅仅是为了兼容性的原因。这个接口的方法将模拟以前的版本的定义返回相应的值。

方法

1、getsession

public httpsession getsession(string sessionid);

当初用来返回与这个session id相关的session。现在返回空值。

2、getids

public enumeration getids();

当初用来返回这个环境下所有session id的列表。现在返回空的列表。

六、cookie类\

定义\

public class cookie implements cloneable

这个类描述了一个cookie,有关cookie的定义你可以参照netscape communications corporation的说明,也可以参照rfc 2109。

构造函数

public cookie(string name, string value);

用一个name-value对定义一个cookie。这个name必须能被http/1.1所接受。

以字符$开头的name被rfc 2109保留。

给定的name如果不能被http/1.1所接受,该方法抛出一个illegalargumentexception。

方法

1、getcomment

public string getcomment();

返回描述这个cookie目的的说明,如果未定义这个说明,返回空值。

2、getdomain

public string getdomain();

返回这个cookie可以出现的区域,如果未定义区域,返回空值。

3、getmaxage

public int getmaxage();

这个方法返回这个cookie指定的最长存活时期。如果未定义这个最长存活时期,该方法返回-1。

4、getname

public string getname();

该方法返回cookie名。

5、getpath

public string getpath();

返回这个cookie有效的所有url路径的前缀,如果未定义,返回空值。

6、getsecure

public boolean getsecure();

如果这个cookie只通过安全通道传输返回真,否则返回假。

7、getvalue

public string getvalue();

该方法返回cookie的值。

8、getversion

public int getversion();

返回cookie的版本。版本1由rfc 2109解释。版本0由netscape communications corporation的说明解释。新构造的cookie默认使用版本0。

9、setcomment

public void setcomment(string purpose);

如果一个用户将这个cookie提交给另一个用户,必须通过这个说明描述这个cookie的目的。版本0不支持这个属性。

10、setdomain

public void setdomain(string pattern);

这个方法设置cookie的有效域的属性。这个属性指定了cookie可以出现的区域。一个有效域以一个点开头(.foo.com),这意味着在指定的域名解析系统的区域中(可能是www.foo.com但不是a.b.foo.com)的主机可以看到这个cookie。默认情况是,cookie只能返回保存它的主机。

11、setmaxage

public void setmaxage(int expiry);

这个方法设定这个cookie的最长存活时期。在该存活时期之后,cookie会被终目。负数表示这个cookie不会生效,0将从客户端删除这个cookie。

12、setpath

public void setpath(string uri);

这个方法设置cookie的路径属性。客户端只能向以这个给定的路径string开头的路径返回cookie。

13、setsecure

public void setsecure(boolean flag);

指出这个cookie只能通过安全通道(例如https)发送。只有当产生这个cookie的服务器使用安全协议发送这个cookie值时才能这样设置。

14、setvalue

public void setvalue(string newvalue);

设置这个cookie的值,对于二进制数据采用base64编码。

版本0不能使用空格、{}、()、=、,、“”、/、?、@、:以及;。

15、setversion

public void setversion(int v);

设置cookie的版本号

七、httpservlet类\

定义\

public class httpservlet extends genericservlet implements

serializable

这是一个抽象类,用来简化http servlet写作的过程。它是genericservlet类的扩充,提供了一个处理http协议的框架。

在这个类中的service方法支持例如get、post这样的标准的http方法。这一支持过程是通过分配他们到适当的方法(例如doget、dopost)来实现的。

方法

1、dodelete

protected void dodelete(httpservletrequest request,

httpservletresponse response) throws servletexception,

ioexception;

被这个类的service方法调用,用来处理一个http delete操作。这个操作允许客户端请求从服务器上删除url。这一操作可能有负面影响,对此用户就负起责任。

这一方法的默认执行结果是返回一个http bad_request错误。当你要处理delete请求时,你必须重载这一方法。

2、doget

protected void doget(httpservletrequest request,

httpservletresponse response) throws servletexception,

ioexception;

被这个类的service方法调用,用来处理一个http get操作。这个操作允许客户端简单地从一个http服务器“获得”资源。对这个方法的重载将自动地支持head方法。

get操作应该是安全而且没有负面影响的。这个操作也应该可以安全地重复。

这一方法的默认执行结果是返回一个http bad_request错误。

3、dohead

protected void dohead(httpservletrequest request,

httpservletresponse response) throws servletexception,

ioexception;

被这个类的service方法调用,用来处理一个http head操作。默认的情况是,这个操作会按照一个无条件的get方法来执行,该操作不向客户端返回任何数据,而仅仅是返回包含内容长度的头信息。

与get操作一样,这个操作应该是安全而且没有负面影响的。这个操作也应该可以安全地重复。

这个方法的默认执行结果是自动处理http head操作,这个方法不需要被一个子类执行。

4、dooptions

protected void dooptions(httpservletrequest request,

httpservletresponse response) throws servletexception,

ioexception;

被这个类的service方法调用,用来处理一个http option操作。这个操作自动地决定支持哪一种http方法。例如,一个servlet写了一个httpservlet的子类并重载了doget方法,dooption会返回下面的头:

allow: get,head,trace,options

你一般不需要重载这个方法。

5、dopost

protected void dopost(httpservletrequest request,

httpservletresponse response) throws servletexception,

ioexception;

被这个类的service方法调用,用来处理一个http post操作。这个操作包含请求体的数据,servlet应该按照他行事。

这个操作可能有负面影响。例如更新存储的数据或在线购物。

这一方法的默认执行结果是返回一个http bad_request错误。当你要处理post操作时,你必须在httpservlet的子类中重载这一方法。

6、doput

protected void doput(httpservletrequest request,

httpservletresponse response) throws servletexception,

ioexception;

被这个类的service方法调用,用来处理一个http put操作。这个操作类似于通过ftp发送文件。

这个操作可能有负面影响。例如更新存储的数据或在线购物。

这一方法的默认执行结果是返回一个http bad_request错误。当你要处理put操作时,你必须在httpservlet的子类中重载这一方法。

7、dotrace

protected void dotrace(httpservletrequest request,

httpservletresponse response) throws servletexception,

ioexception;

被这个类的service方法调用,用来处理一个http trace操作。这个操作的默认执行结果是产生一个响应,这个响应包含一个反映trace请求中发送的所有头域的信息。

当你开发servlet时,在多数情况下你需要重载这个方法。

8、getlastmodified

protected long getlastmodified(httpservletrequest request);

返回这个请求实体的最后修改时间。为了支持get操作,你必须重载这一方法,以精确地反映最后修改的时间。这将有助于浏览器和代理服务器减少装载服务器和网络资源,从而更加有效地工作。返回的数值是自1970-1-1日(gmt)以来的毫秒数。

默认的执行结果是返回一个负数,这标志着最后修改时间未知,它也不能被一个有条件的get操作使用。

9、service

protected void service(httpservletrequest request,

httpservletresponse response) throws servletexception,

ioexception;

public void service(servletrequest request, servletresponse response)

throws servletexception, ioexception;

这是一个servlet的http-specific方案,它分配请求到这个类的支持这个请求的其他方法。

当你开发servlet时,在多数情况下你不必重载这个方法。

八、httpsessionbindingevent类\

定义\

public class httpsessionbindingevent extends eventobject

这个事件是在监听到httpsession发生绑定和取消绑定的情况时连通httpsessionbindinglistener的。这可能是一个session被终止或被认定无效的结果。

事件源是httpsession.putvalue或httpsession.removevalue。

构造函数

public httpsessionbindingevent(httpsession session, string name);

通过引起这个事件的session和发生绑定或取消绑定的对象名构造一个新的httpsessionbindingevent。

方法

1、getname

public string getname();

返回发生绑定和取消绑定的对象的名字。

2、getsession

public httpsession getsession();

返回发生绑定和取消绑定的session的名字。

九、httputils类\

定义\

public class httputils

收集http servlet使用的静态的有效的方法。

方法

1、getrequesturl

public static stringbuffer getrequesturl(httpservletrequest

request);

在服务器上重建客户端用来建立请求的url。这个方法反映了不同的协议(例如http和https)和端口,但不包含查询字符串。

这个方法返回一个stringbuffer而不是一个string,这样url可以被servlet开发者有效地修改。

2、parsepostdata

public static hashtable parsepostdata(int len,

servletinputstream in);

解析一个包含mime类型application/x-www-form-urlencoded的数据的流,并创建一个具有关键值-数据对的hash table。这里的关键值是字符串,数据是该字符串所对应的值的列表。一个关键值可以在post的数据中出现一次或多次。这个关键值每出现一次,它的相应的值就被加入到hash table中的字符串所对应的值的列表中。

从post数据读出的数据将经过url解码,+将被转换为空格以十六进制传送的数据(例如%xx)将被转换成字符。

当post数据无效时,该方法抛出一个illegalargumentexception。

3、parsequerystring

public static hashtable parsequerystring(string s);

解析一个查询字符串,并创建一个具有关键值-数据对的hash table。这里的数据是该字符串所对应的值的列表。一个关键值可以出现一次或多次。这个关键值每出现一次,它的相应的值就被加入到hash table中的字符串所对应的值的列表中。

从查询字符串读出的数据将经过url解码,+将被转换为空格以十六进制传送的数据(例如%xx)将被转换成字符。

当查询字符串无效时,该方法抛出一个illegalargumentexception。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » Java Servlet API说明文档(2.1a版)(三)-JSP教程,Jsp/Servlet
分享到: 更多 (0)