JSP内置对象

一、request对象

1、访问请求参数

2、在作用域中管理属性

3、获取Cookie

4、解决中文乱码

5、获取客户端信息

6、显示国际化信息

是一个javax.servlet.http.HttpServletRequest对象

request封装了用户浏览器提交的信息,因此可以调用相应的方法可以获取这些封装的信息。例如:请求的头信息(Header)、系统信息(比如:编码方式)、请求的方式(比如:GETPOST)、请求的参数名称和参数值等信息;

用户的HTTP请求有某种结构,包含请求、头域和可能的信息体

如:post/hello.html/HTTP.1.1

        Host:localhost:8080

        <form ...></form>

首行是请求行,规定了请求的方法

第二行是头(header)Host规定了hello.htmlinternet地址。可以有多个头。

第三行是信息体,包含了提交信息的表单等。

1 访问请求参数

我们知道request对象用于处理HTTP请求中的各项参数。在这些参数中,最常用的就是获取访问请求参数。

当我们通过超链接的形式发送请求时,可以为该请求传递参数,这可以通过在超链接的后面加上问号“?来实现。注意这个问号为英文半角的符号。

在页面中定义超链接:<a href=”delete.jsp?id=1”>删除</a>

格式:request.getParameter(“parameterName”)

作用:用表单超链接传递参数的时候,使用getParameter方法可以返回给定参数的值,如果参数不存在则返回空值。

例:String name=request.getParameter("name");

表单文件:user.html

<form action="getuser.jsp"method=“get">

<input type="text" name="user">

<input type="submit">

</form>

获取表单信息:getuser.jsp

<%

String u=request.getParameter("user");

out.println(u);

%>

如在地址栏中写入http://localhost:8080/MyProject/1.jsp?id=1&name=2;

或是在页面的链接中<a href=“1.jsp?id=1&name=2”>

同样可以在1.jsp中使用getParameter(“id”)getParameter(“name”)获得对应的值

汉字乱码问题

JSP在表单传输过程中,使用的默认编码是ISO-8859-1,因此如果传输汉字,会导致乱码。

解决办法(getBytes()方法是得到一个系统默认或规定的编码格式的字节数组)

方法一post): String str=request.getParameter(“name”);

                           byte b[]=str.getBytes(“ISO-8859-1”);

                           str=new String(b);   

 等价于   String str123=new String(str.getBytes("ISO-8859-1"),"gb2312");

方法二   (post):在getParameter方法前,加入:request.setCharacterEncoding("gb2312");

2 在作用域中管理属性

在进行请求转发时,需要把一些数据传递到转发后的页面进行处理。这时,就需要使用request对象的setAttribute()方法将数据保存到request范围内的变量中。

request对象的setAttribute()方法的语法格式如下:

request.setAttribute(String name,Object object);

参数说明:

name: 变量名,为String类型

object:用于指定需要在request范围内传递的数据

getAttribute()方法获取该变量的值:

request.getAttribute(String name);

3、获取cookie

在互联网中,cookie是小段的文本信息,在网络服务器上生成,并发送给浏览器的。

通过使用cookie可以标识用户身份,记录用户名和密码,跟踪重复用户等。浏览器将cookiekey/value的形式保存到客户机的某个指定目录中。

       getCookies(): 获取到所有cookie对象的集合;

       getName()获取到指定名称的cookie

       getValue(): 获取到cookie对象的值。

另外将一个cookie对象发送到客户端使用了response对象的addCookie()方法。

Cookie是服务器暂存在客户机上的一些信息,用来记录用户的身份或访问网站的记录。当客户再次访问同一个服务器时,浏览器会将这些信息发给服务器,服务器从而能够识别用户并显示用户的访问记录。

Cookie信息保存在客户机的硬盘上,位于

C:\Documents and Settings\登录用户名\Cookies

C:\Documents and Settings\登录用户名\Local Settings\Temporary Internet Files

public String getName()获取Cookie的名字

public String getValue()获取Cookie的值

public void setMaxAge(int maxAge):设置Cookie的有效时间,以秒为单位

                        maxAge如果为正数,在有效期内,用户关闭浏览器后再重新启动Cookie仍有效

                        maxAge如果为负数,只在当前浏览器有效,当关闭浏览器时Cookie失效

                        maxAge如果为0,会删除过去有效的Cookie

public int getMaxAge():获取cookie在失效以前的最大时间,以秒计算

Cookie的发送和接收

服务器向客户程序发送Cookie,3个步骤

创建Cookie对象,给出Cookie的名称和值,Cookie cookie=new Cookie("text",textname);

设置最大时效(以秒为单位)如:cookie.setMaxAge(60*60*24*7);//一周

注:如果不设置,将存储在浏览器的内存上

将Cookie放入HTTP响应报头    response.addCookie(cookie);

从客户端读取Cookie

调用request.getCookies()这个调用返回Cookie对象数组

使用循环语句对Cookie数组进行遍历

在循环中使用判断语句找出所需要的Cookie

示例:

<%   Cookie a[]=request.getCookies();

for(int i=0;i<a.length;i++){

if(a[i].getName().equal(“”))

…}%>

Cookie的设置和获取

setCookie.jsp

<%

Cookie c=new Cookie("season","spring");

c.setMaxAge(30);

response.addCookie(c);

Cookie d=new Cookie("nextseason","summer");

d.setMaxAge(10);

response.addCookie(d);

%>

getCookie.jsp

<%

Cookie a[]=request.getCookies();

for(int i=0;i<a.length;i++)

{

out.println(a[i].getName()+" "+a[i].getValue()+"<br>");

}

%>

Cookie是服务器暂存在客户机上的一些信息,用来记录用户的身份或访问网站的记录。当客户反复多次访问同一个服务器时,服务器需要某种手段来识别用户并显示用户的访问记录,即cookie。

Cookie信息保存在客户机的硬盘上,位于C:\Documents and Settings\登录用户名\Cookies

和 C:\Documents and Settings\登录用户名\Local Settings\Temporary Internet Files

获取cookie

通过cookie保存并读取用户登录信息

编写deal.jsp文件,用于向cookie中写入注册信息

4 解决中文乱码

在上面的代码中我们为id参数传递了一个字符串类型的值“001”,如果将这个参数的值更改为中文,则在show.jsp就会发生大家都不愿意看到的问题——在显示参数值时中文内容变成了乱码。这是因为请求参数的文字编码方式与页面中的不一致所造成的,所有的request请求都是iso-8859-1的,而在此页面采用的是UTF-8的编码方式。

要解决此问题,只要将获取到的数据通过String的构造方法使用指定的编码类型重新构造一个String对象即可正确地显示出中文信息。汉字乱码问题

JSP在表单传输过程中,使用的默认编码是ISO-8859-1,因此如果传输汉字,会导致乱码。

解决办法(getBytes()方法是得到一个系统默认或规定的编码格式的字节数组)

方法一post)String str=request.getParameter(“name”);

byte b[]=str.getBytes(“ISO-8859-1”);

str=new String(b);     

等价于   String str123=new String(str.getBytes("ISO-8859-1"),"gb2312")

方法二(post):在getParameter方法前,加入:request.setCharacterEncoding("gb2312");

5.获取客户端信息

方  法    说  明
getHeader(String name)    获得HTTP协议定义的文件头信息
getHeaders(String name)返回指定名字的request Header的所有值,其结果是一个枚举型的实例
getHeadersNames()    返回所有request Header的名字,其结果是一个枚举型的实例
getMethod()    获得客户端向服务器端传送数据的方法,如get,post,header,trace等
getProtocol()    获得客户端向服务器端传送数据所依据的协议名称
getRequestURI()    获得发出请求字符串的客户端地址,不包括请求的参数
getRequestURL()    获取发出请求字符串的客户端地址
getRealPath()    返回当前请求文件的绝对路径
getRemoteAddr()    获取客户端的IP地址
getRemoteHost()    获取客户端的主机名
getServerName()    获取服务器的名字
getServerPath()    获取客户端所请求的脚本文件的文件路径
getServerPort()    获取服务器的端口号

例 使用request对象的相关方法获取客户端信息

6 显示国际化信息

浏览器可以通过accept-languageHTTP报头Web服务器指明它所使用的本地语言。request对象中的getLocale()getLocales()方法允许JSP开发人员获取这一信息,获取的信息属于java.util.Local类型。

java.util.Local类型的对象封装了一个国家和一种国家所使用的语言。使用这一信息,JSP开发者就可以使用语言所特有的信息作出响应。

P121 例 页面信息国际化,根据所在区域显示不同语言

如果所在区域为中国,将显示"您好!欢迎访问我们公司网站!"

如果所在区域为应该,则显示"hello, welcome to access our company's web!"

二、response

1、重定向网页

2、处理HTTP文件头

3设置输出缓冲

是一个javax.servlet.http.HttpServletReponse对象。与request相对应,Response对象用来提供给客户端浏览器的参考信息,比如响应的头行,响应的message body(HTML文本内容)以及服务端的状态码信息。

注意:任何标头的设定都应在本体回传前设定好,否则设定的值将不起任何作用

response 动态响应contentType

response.setContentType(Stringtype)

设置输出数据的类型

text/html:网页

text/plain:纯文本

application/x-msexcel:Excel文件

application/msword:Word文件

例:将当前页面转换为word文档

<% response.setContentType (“application/msword;charset=gb2312”); %>

response 设置http文件头

作用设置HTTP应答报文的首部字段和值格式:response.setHeader(String name, String value)例如:利用setHeader方法可以设置页面的自动刷新时间

reponse.setHeader(“Refresh”,”5”)

每5秒种用户自动刷新该网页

reponse.setHeader(“Refresh”, “5;URL=http://www.163.com”)

5秒种后自动跳转到新页面

1 重定向网页

使用response对象提供的sendRedirect()方法可以将网页重定向到另一个页面。

重定向操作支持将地址重定向到不同的主机上,这一点与转发不同。在客户端浏览器上将会得到跳转的地址,并重新发送请求链接。用户可以从浏览器的地址栏中看到跳转后的地址。进行重定向操作后,request中的属性全部失效,并且开始一个新的request对象。

sendRedirect()方法的语法格式如下:response.sendRedirect(String path);

指定目标路径:相对路径,不同主机的其他URL地址

作用浏览器重定向,把当前响应返回到浏览器。在通过浏览器发送到新的指定地址

格式response.sendRedirect(“url”)

例如: response.sendRedirect(“http://www.163.com”);

response.sendRedirect(“aa.jsp”);

response.sendRedirect(“aa.jsp?user=tom”);

 response 的状态行

服务器对用户响应时,发送的首行称为状态行

设定状态显示码的方法

void sendError(int sc)   传送状态码(status code)

void sendError(int sc,String msg) 传送状态码和错误信息.用给定的状态码发给客户端一个错误响应 在发生错误时使用,如400表示无效的请求服务器将返回一个预设信息。

void setStatus(int sc) 设置状态码没有错误发生时使用,如状态码200表示成功

例4.10 通过sendRedirect()方法重定向页面到用户登录页面response综合实例1: 登录 默认情况下, SendRedirect 不会保留请求对象中参数,除非用“?参数名=值”;需要保存请求的相关信息时要用forward,因为用的是同一个request

SendRedirect 会在客户端呈现跳转后的URL地址使用<jsp:forward>完全是在服务器上进行,浏览器地址栏中的地址保持不变

使用<jsp:forward>实际是一个request内置对象 SendRedirect是两个。

2 处理HTTP文件头

通过response对象可以设置HTTP响应报头,其中,最常用的是禁用缓存设置页面自动刷新定时跳转网页。下面分别进行介绍。

1、禁用缓存

<%

response.setHeader(“Cache-Control”, no-store”);

response.setDateHeader(“Expires”,0);

%>

2、设置页面自动刷新

<%

response.setHeader(“refresh”, 10”);

%>

3、定时跳转网页

<%

response.setHeader(“refresh”, 5; URL=login.jsp”);

%>

3 设置输出缓冲

服务器要输出到客户端的内容不会直接写到客户端,而是先写到一个输出缓冲区,在计算机术语中,缓冲区被定义为暂时放置输入或输出资料的内存。

当满足以下三种情况之一,就会把缓冲区的内容写到客户端。

JSP页面的输出信息已经全部写入到了缓冲区;

缓冲区已满;

在JSP页面中,调用了response对象的flushBuffer()方法或out对象的flush()方法

例:设置缓冲区的大小为32KB

response.setBufferSize(32)

0KB,则表示不缓冲。

三、session对象

1、创建及获取客户的会话

2、从会话中移动指定的绑定对象

3销毁Session

4、会话超时的管理

5session对象的应用

session对象表示 “会话一次会话是浏览器和服务器的一次交互过程。

JSP页面中,可以用session对象来保存特定用户的会话信息,session 的类型是javax.servlet.http.HttpSession

session对象在客户端向该页面发出请求时建立,在session到期或者关闭浏览器时撤销

session对象常用来在不同的页面之间传递数据

session的工作原理:客户首次访问服务器的一个页面时,服务器就会为该客户分配一个session对象同时为该session对象指定一个唯一的ID并将该ID号发送到客户端并写入到Cookie中,使得客户端与服务器的session建立一一对应关系

当客户继续访问服务上的其他资源时,不再为该客户分配新的session直到客户端浏览器关闭超时调用sessioninvalidate()方法使其失效,客户端与服务器的会话结束。

当客户端重新打开浏览器访问网站时,服务器会重新为客户分配一个session对象,重新分配session id

常见功能: 保存用户的登录信息,购物车等

session对象

HTTP协议是一种无状态协议。

 一个用户向服务器发出请求(request),然后服务器返回响应(response),连接就被关闭了,在服务器端不保留连接的有关信息,因此当下一次连接时,服务器已没有以前的连接信息了,无法判断这一次连接和以前的连接是否属于同一用户。 内置session(会话)对象记录有关连接的信息.Tomcat服务器负责创建。

session对象的Id

当一个用户首次访问Web服务目录中的某个JSP页面时,JSP引擎为其产生一个session对象。

为用户产生的session对象调用相应的方法可以存储用户在访问各个页面期间提交的各种信息。为用户产生的session对象中含有一个String类型的Id号,JSP引擎同时将这个Id号发送到用户端、存放在用户的浏览器的Cookie中。。每个用户都对应着一个session对象(该用户的会话),不同用户的session对象互不相同,即具有不同的Id号码。

session对象存储数据

session对象使用下列方法处理数据:

(1) public void setAttribute(String key, Object obj)

session对象可以调用该方法将参数Object指定的对象obj添加到session对象中,并为添加的对象指定了一个索引关键字,如果添加的两个对象的关键字相同,则先前添加的对象被清除。

(2public Object getAttibute(String key)

获取session对象含有的关键字是key的对象。由于任何对象都可以添加到session对象中,因此用该方法取回对象时,应强制转化为原来的类型

(3public Enumeration getAttributeNames()

session对象调用该方法产生一个枚举对象,该枚举对象使用nextElemets()遍历session中的各个对象所对应的关键字。

(4public long getCreationTime()  

session对象调用该方法可以获取该对象创建的时间,单位是毫秒。

5public void removeAttribute(String name)

session对象调用该方法移掉关键字key对应的对象.

 session对象的生存期限

一个用户在某个web服务目录的session对象的生存期限

依赖于session对象是否调用invalidate()方法使得session无效

依赖于session对象达到了设置的最长的“发呆”状态时间

依赖于服务器是否被关闭。

重新设置各个Web服务目录下的session对象的最长“发呆”时间。打开Tomcat安装目录conf目录下的配置文件web.xml,找到

<session-config>

<session-timeout>30</session-timeout>

</session-config>

将其中的30修改成所要求的值即可,如果时间修改为负数,发呆时间不受限制。

session对象可以使用下列方法获取或设置和生存时间有关的信息:

public long getCreationTime() 获取session创建的时间,单位是毫秒。

public long getLastAccessedTime() 获取session最后一次被操作的时间。

public int getMaxInactiveInterval() 获取session最长的“发呆”时间(单位是秒)。

public void setMaxInactiveInterval(int interval) 设置session最长的“发呆”时间

public boolean isNew() 判断session是否是一个新建的对象。

invalidate() 使session无效。

 使用session设置时间间隔                    

为了限制用户在很短的时间间隔内不断地使用某页面所提供的某种功能,而影响其他用户使用该页面所提供的功能,因此我们可以利用用户的session来设置用户使用当前页面所提供功能的间隔时间,从而限制该用户等待若干“时间”后,再次使用该页面所提供的功能。

1、 创建及获取客户的会话

通过session对象可以存储或读取客户相关的信息。例如,用户名或购物信息等。这可以通过session对象的setAttribute()方法和getAttribute()方法实现。

1. setAttribute()

response.setAttribute(String name, Object obj); (“username”, 绿草”)

name:用于指定作用域在session范围内的变量名

obj: 保存在session范围内的对象。

2. getAttribute()

response.getAttribute(String name); (“username”)

name:用于保存在session范围内的关键字

2 、从会话中移除指定的绑定对象

对于存储在session会话中的对象,如果想将其从session会话中移除,可以使用session对象的removeAttribute()方法,该方法的语法格式如下:removeAttribute(String name)

参数说明如下:

name:用于指定作用域在session范围内的变量名。一定要保证该变量在session范围内有效,否则将抛出异常。

例:将保存在session会话中的username对象移除的代码如下:

<%response.removeAttribute(“username”);%>

3、 销毁session

虽然当客户端长时间不向服务器发送请求后,session对象会自动消失,但对于某些实时统计在线人数的网站(例如,聊天室),每次都等session过期后,才能统计出准确的人数,这是远远不够的。所以还需要手动的销毁session。通过session对象的invalidate()方法可以销毁session,其语法格式如下:session.invalidate();

 session对象被销毁后,将不可以再使用该session对象了。如果在session被销毁后,再调用session对象的任何方法,都将报出“Session already invalidated异常。

4、 会话超时管理

在应用session对象时应该注意session的生命周期。一般来说,session的生命周期在2030分钟之间。当用户首次访问时将产生一个新的会话,以后服务器就可以记住这个会话状态,当会话生命周期超时时,或者服务器端强制使会话失效时,这个session就不能使用了。

在开发程序时应该考虑到用户访问网站时可能发生的各种情况,比如用户登录网站后在session的有效期外进行相应操作,用户会看到一张错误页面。这样的现象是不允许发生的。为了避免这种情况的发生,在开发系统时应该对session的有效性进行判断。

设置会话生命周期的方法:

pgetLastAccessedTime():返回客户端最后一次与会话相关联的请求时间

pgetMaxInactiveInterval():以秒为单位返回一个会话内两个请求最大时间间隔

psetMaxInactiveInterval()以秒为单位设置session的有效时间

例:设置session的有效期为10000秒,超出这个范围session将失效

session.setMaxInactiveInterval(10000);

cookie和session区别

在某种程度上,cookiesession内置对象有些相似,但二者存在本质的差别

Cookie存在于客户端,session存在于服务器

Cookie主要用户保存脱机数据,而session内置对象主要用于跟踪用户会话

但他们也存在一些共同点,那就是不论是cookie还是session内置对象都需要浏览器支持cookie并且没有禁用cookie

5、session对象的应用

session是较常用的内置对象之一,与requeset对象相比其作用范围更大。下面通过实例介绍session对象的应用。   session对象与URL重写

如果用户端不支持Cookie,那么用户在不同网页之间的session对象可能是互不相同的,因为如果服务器无法将Id存放到用户端,就不能建立session对象和用户的一一对应关系。可以通过URL重写来实现session对象的惟一性。

所谓URL重写,就是当用户从一个页面重新链接到另一个页面时,通过向这个新的URL添加参数,把session对象的Id传带过去,这样就可以保障用户在该网站各个页面中的session对象是完全相同的。

可以使用response对象调用encodeURL()encodeRedirectURL()方法实现URL重写.

如果用户浏览器不支持Cookie,则不能建立session对象与用户的一一对应关系,因此需要url重写。

格式String str=response.encodeRedirectURL(“new.jsp”); 然后链接目标写成<%=str%>

session对象存储数据

session可以保存用户访问web服务目录期间的有关数据。

格式public void setAttribute(name, value)

public Object getAttribute(String name)

例:session.setAttribute(“item”,“钢笔);(购买页面)

String 商品=(String)session.getAttribute(“item”); (结账页面)

out.println(“<%=商品%>”);                    

四、application对象

1、访问应用程序初始化参数

2、管理应用程序环境属性

application对象代表一个Web应用,负责提供应用程序在服务器运行时的一些全局信息,它在服务器启动时创建直到服务器关闭时消失

application对象的类型是javax.servlet.ServletContext

所有访问这个应用的用户都共享一个application对象,application对象可以用来存储与应用相关的信息.

有关属性操作的方法:

public void setAttribute(namevalue)设置请求对象中的一个属性。

public java.lang.Object getAttribute(String key)返回name指定的属性值,若name不存在则返回null

public java.util.Enumeration getAttributeNames()返回request对象所有属性的名称,并将其封装在Enumeration对象中。

public void removeAttribute(String name)通过指定名,移除application中的某个对象

application对象的常用方法

1public void setAttribute(String key, Object obj)

application对象可以调用该方法将参数Object指定的对象 obj添加到application对象中,并为添加的对象指定了一个索引关键字,如果添加的两个对象的关键字相同,则先前添加对象被清除。2public Object getAttibue(String key)

获取application对象含有的关键字是key的对象。由于任何对象都可以添加到application对象中,因此用该方法取回对象时,应强制转化为原来的类型。

3public Enumeration getAttributeNames()

application对象调用该方法产生一个枚举对象,该枚举对象使用nextElemets()遍历application中的各个对象所对应的关键字。

4public void removeAttribue(String key)

从当前application对象中删除关键字是key的对象。

5public String getServletInfo()

application对象可以调用该方法获取Servlet编译器的当前版本的信息。

1 访问应用程序初始化参数

application对象提供了对应用程序初始化参数进行访问的方法。

应用程序初始化参数在web.xml文件中进行设置,web.xml文件位于Web应用所在目录下的WEB-INF子目录中。在web.xml文件中通过<context-param>标记配置应用程序初始化参数

2 管理应用程序环境属性

与session对象相同,也可以在application对象中设置属性。

与session对象不同的是,session只是在当前客户的会话范围内有效,当超过保存时间,session对象就被收回;而application对象在整个应用区域中都有效。application对象管理应用程序环境属性的方法分别介绍如下。

getAttributeNames()获得所有application对象使用的属性名。

getAttribute(String name)application对象中获取指定对象名。

setAttribute(String key,Object obj):使用指定名称和指定对象在application对象中进行关联。     removeAttribute(String name)application对象中去掉指定名称的属性。

利用App.对象统计访问页面的用户数

count.jsp

<%@ page language="java" contentType="text/html;charset=gb2312"%>

<html>

<% int n;

   if(application.getAttribute("count")==null)

   {   application.setAttribute("count","1");  }

   else

   {   n=Integer.parseInt((String)application.getAttribute("count"));

      n++;

      application.setAttribute("count",Integer.toString(n)); }

%>

这个页面已经被浏览了<%=(String)application.getAttribute("count")%>次</h>

</html>

五、 out对象

1、向客户端输出数据

out对象一个最基本的应用就是向客户端浏览器输出信息。可以输出各种数据类型的数据,在输出非字符串类型的数据时,会自动转换为字符串进行输出。

out对象提供了print()println()两种向页面中输出信息的方法,

print()方法输出完后,不换行

println()方法在输出完后,换行。

print和println可以输出各种格式的数据类型,但最终都转换成字符串。

2.管理响应缓冲

方法说明
clear()    清除缓冲区中的内容
clearBuffer()    清除当前缓冲区中的内容
flush()    刷新流
isAutoFlush()    检测当前缓冲区已满时是自动清空,还是抛出异常
getBufferSize()    获取缓冲区的大小

out对象是一个输出流,用来向用户端输出数据。

out对象可调用如下的方法用于各种数据的输出,

out.print(Boolean)out.println(Boolean) 用于输出一个布尔值。

out.print(char)out.println(char)  输出一个字符。

out.print(double)out.println(double) 输出一个双精度的浮点数。

out.print(float)out.println(float) 用于输出一个单精度的浮点数。

out.print(long)out.println(long)  输出一个长整型数据。

out.print(String)out.println(String) 输出一个字符串对象的内容。

out.newLine()  输出一个换行符。

out.flush() 输出缓冲区里的内容。

out.close() 关闭流。

JSP程序利用out对象将网页内容输出时,都要和客户端做一次连接,并且会为此消耗不少的资源;

因此可以将要输出的内容放在一个固定大小的缓冲区中,等到缓冲区满时再一次将内容送往客户端,这就要将autoFlush设为true否则缓冲区满时将产生IOException错误

out对象对缓冲区进行操作常用方法

public abstract void clear()清空缓冲区中的内容,不将数据发送至客户端。

public abstract void clearBuffer()清空缓冲区中的内容,并将缓冲区中的数据发送到客户端。

public abstract void getBuffersize()获得缓冲区的大小,对比回顾page指令

public abstract void getRemaing()返回缓冲区剩余空间的大小

public abstract void flush()输出缓冲区中的数据。

public abstract void isAutoFlush()获取AutoFlush的取值

其它内置对象

六、获取会话范围的pageContext对象

方法说明
forward(java.lang.String relativeUtlpath)    把页面转发到另一个页面
getAttribute(String name)    获取参数值
getAttributeNamesInScope(int scope)    获取某范围的参数名称的集合,返回值为java.util.Enumeration对象
getException()    返回exception对象
getRequest()    返回request对象
getResponse()    返回response对象
getSession()    返回session对象
getOut()    返回out对象
getApplication    返回application对象

setAttribute()    为指定范围内的属性设置属性值
removeAttribute()    删除指定范围内的指定属性

七、读取Web.xml配置信息的config对象

方法说明
getServletContext()    获取Servlet上下文
getServletName()    获取Servlet服务器名
getInitParameter()    获取服务器所有初始参数名称,返回值为java.util.Enumeration对象
getInitParameterNames()    获取服务器中name参数的初始值

八、应答或请求的page对象

方法说明
getClass()    返回当前Object的类
hashCode()    返回该Object的哈希代码
toString()    把该Object类转换成字符串
equals(Object o)    比较该对象和指定的对象是否相等

九、获取异常信息的exception对象

方法说明
getMessage()    返回exception对象的异常信息字符串
getLocalizedmessage()    返回本地化的异常错误
toString()    返回关于异常错误的简单信息描述
fillInStackTrace()    重写异常错误的栈执行轨迹

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/160618.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

优先经验回放(prioritized experience replay)

prioritized experience replay 思路 优先经验回放出自ICLR 2016的论文《prioritized experience replay》。 prioritized experience replay的作者们认为&#xff0c;按照一定的优先级来对经验回放池中的样本采样&#xff0c;相比于随机均匀的从经验回放池中采样的效率更高&…

UML建模图文详解教程——类图

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl本文参考资料&#xff1a;《UML面向对象分析、建模与设计&#xff08;第2版&#xff09;》吕云翔&#xff0c;赵天宇 著 类图概述 类图用来描述系统内各种实体的类型以及不同…

Unsupervised MVS论文笔记

Unsupervised MVS论文笔记 摘要1 引言2 相关工作3 实现方法 Tejas Khot and Shubham Agrawal and Shubham Tulsiani and Christoph Mertz and Simon Lucey and Martial Hebert. Tejas Khot and Shubham Agrawal and Shubham Tulsiani and Christoph Mertz and Simon Lucey and …

JAVA小游戏拼图

第一步是创建项目 项目名自拟 第二部创建个包名 来规范class 然后是创建类 创建一个代码类 和一个运行类 代码如下&#xff1a; package heima; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import …

10、信息打点——APP小程序篇抓包封包XP框架反编译资产提取

APP信息搜集思路 外在——抓包封包——资产安全测试 抓包&#xff08;Fiddle&茶杯&burp&#xff09;封包&#xff08;封包监听工具&#xff09;&#xff0c;提取资源信息 资产收集——资源提取——ICO、MAD、hash——FOFA等网络测绘进行资产搜集 外在——功能逻辑 内在…

国际版Amazon Lightsail的功能解析

Amazon Lightsail是一项易于使用的云服务,可为您提供部署应用程序或网站所需的一切,从而实现经济高效且易于理解的月度计划。它是部署简单的工作负载、网站或开始使用亚马逊云科技的理想选择。 作为 AWS 免费套餐的一部分&#xff0c;可以免费开始使用 Amazon Lightsail。注册…

【Python进阶】近200页md文档14大体系第4篇:Python进程使用详解(图文演示)

本文从14大模块展示了python高级用的应用。分别有Linux命令&#xff0c;多任务编程、网络编程、Http协议和静态Web编程、htmlcss、JavaScript、jQuery、MySql数据库的各种用法、python的闭包和装饰器、mini-web框架、正则表达式等相关文章的详细讲述。 Python全套笔记直接地址…

028 - STM32学习笔记 - ADC结构体学习(二)

028 - STM32学习笔记 - 结构体学习&#xff08;二&#xff09; 上节对ADC基础知识进行了学习&#xff0c;这节在了解一下ADC相关的结构体。 一、ADC初始化结构体 在标准库函数中基本上对于外设都有一个初始化结构体xx_InitTypeDef&#xff08;其中xx为外设名&#xff0c;例如…

YOLO目标检测——卫星遥感多类别检测数据集下载分享【含对应voc、coco和yolo三种格式标签】

实际项目应用&#xff1a;卫星遥感目标检测数据集说明&#xff1a;卫星遥感多类别检测数据集&#xff0c;真实场景的高质量图片数据&#xff0c;数据场景丰富&#xff0c;含网球场、棒球场、篮球场、田径场、储罐、车辆、桥、飞机、船等类别标签说明&#xff1a;使用lableimg标…

2023年【上海市安全员C证】考试及上海市安全员C证找解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年上海市安全员C证考试为正在备考上海市安全员C证操作证的学员准备的理论考试专题&#xff0c;每个月更新的上海市安全员C证找解析祝您顺利通过上海市安全员C证考试。 1、【多选题】2017年9月颁发的《中共上海市委…

基于STM32的烟雾浓度检测报警仿真设计(仿真+程序+讲解视频)

这里写目录标题 &#x1f4d1;1.主要功能&#x1f4d1;2.仿真&#x1f4d1;3. 程序&#x1f4d1;4. 资料清单&下载链接&#x1f4d1;[资料下载链接](https://docs.qq.com/doc/DS0VHTmxmUHBtVGVP) 基于STM32的烟雾浓度检测报警仿真设计(仿真程序讲解&#xff09; 仿真图prot…

SkyWalking配置报警推送到企业微信

1、先在企业微信群里创建一个机器人&#xff0c;复制webhook的地址&#xff1a; 2、找到SkyWalking部署位置的alarm-settings.yml文件 编辑&#xff0c;在最后面加上此段配置 &#xff01;&#xff01;&#xff01;一定格式要对&#xff0c;不然一直报警报不出来按照网上指导…

JVM 堆外内存详解

Java 进程内存占用除了JVM 运行时数据区&#xff0c;还有直接内存&#xff08;Direct Memory&#xff09;区域及 JVM 程序自身也会占用内存 直接内存&#xff08;Direct Memory&#xff09;区域&#xff1a;直接内存通过使用Native堆外内存来存储数据&#xff0c;这意味着数据…

大数据平台实践之CDH6.2.1+spark3.3.0+kyuubi-1.6.0

前言&#xff1a;关于kyuubi的原理和功能这里不做详细的介绍&#xff0c;感兴趣的同学可以直通官网&#xff1a;https://kyuubi.readthedocs.io/en/v1.7.1-rc0/index.html 下载软件版本 wget http://distfiles.macports.org/scala2.12/scala-2.12.16.tgz wget https://archi…

pikachu_php反序列化

pikachu_php反序列化 源代码 class S{var $test "pikachu";function __construct(){echo $this->test;} }//O:1:"S":1:{s:4:"test";s:29:"<script>alert(xss)</script>";} $html; if(isset($_POST[o])){$s $_POST[…

基于python人脸性别年龄检测系统-深度学习项目

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介简介技术组成1. OpenCV2. Dlib3. TensorFlow 和 Keras 功能流程 二、功能三、系统四. 总结 一项目简介 # Python 人脸性别年龄检测系统介绍 简介 该系统基…

Android studio 迁移之后打开没反应

把Android studio由d盘迁移到c盘&#xff0c;点击没反应&#xff1b; 需要把C:\Users\xxxx\AppData\Roaming\Google\AndroidStudio2022.3 目录下的studio64.exe.vmoptions 修改为C:&#xff0c;删除该文件会导致无法安装app。 里面配置了一个

SpringMVC问题

文章目录 SpringMVC运行流程MVC的概念与请求在MVC中的执行路径&#xff0c;ResponsBody注解的用途SpringMVC启动流程 SpringMVC运行流程 • 客户端&#xff08;浏览器&#xff09;发送请求&#xff0c;直接请求到 DispatcherServlet 。 • DispatcherServlet 根据请求信息调用 …

【React-Router】路由导航

1. 概念 路由系统中的多个路由之间需要进行路由跳转&#xff0c;并且在跳转的同时有可能需要传递参数进行通信。 2. 声明式导航 // /page/Login/index.jsimport { Link } from react-router-dom const Login () > {return <div>登录页{/* 解析成 a 链接 */}<Li…

Windows平台如何实现RTSP流二次编码并添加动态水印后推送RTMP或轻量级RTSP服务

技术背景 我们在对接RTSP播放器相关的技术诉求的时候&#xff0c;遇到这样的需求&#xff0c;客户做特种设备巡检的&#xff0c;需要把摄像头拍到的RTSP流拉下来&#xff0c;然后添加动态水印后&#xff0c;再生成新的RTSP URL&#xff0c;供平台调用。真个流程需要延迟尽可能…