JSP(2)----------九大内置对象

1、request:用于处理HTTP请求中的各项参数。

   常用方法:

       1.1) request.getParameter("参数")  获取传递的参数的时候,如果指定的参数不存在,将返回null;如果指定了参数名,没有指点参数值,返回空的字符串“”;

    注意 : getParameter()编码乱码

               String str = new String(request.getParameter("name").getBytes("IOS-8859-1"),"utf-8");

       1.2)request.setAttribute("String name","Object object")  将数据报存在request的范围内的变量中

               request.getAttribute("String name")  获取request的范围内的变量值(name在request范围内有效)

       1.3)cookie:一小段文本信息,在网络服务器上生成,并发给浏览器。通过cookie可以标识用户的身份,记录用户名和密码,跟踪重复用户等。浏览器以key--value的形式,保存在客户机的某个指定目录中。

            方法:request.getCookies()可以获得所有的cookie对象集合,通过getName()可以获取到指定名称的cookie;通过getValue()方法可以获取到cookie对象的值,将cookie发送到客户端,需要response.addCookie("name","value");

注意:cookie中如果保存的是中文信息,需要调用java.net.URLEncoder类的encode()方法将要保存到cookie中的信息进行编码,在读取cookie内容时,还要用java.net.URLDecoder类中的decode()方法进行解码。

     1.4)request可以获取客户端的相关信息

            getHeader(String name) 、getMethod() 、getProtocol()、getRequestURI()、getRequestURL、getRealPath等

     1.5)显示国际化信息

            浏览器可以通过request.getHeader("accept-language")获取文件的accept-language信息

            通过request.getLocale()和request.getLocales()可以获取它使用的本地语言。

            信息属于java.util.Local类型。(java.util.Locale类型封装了一个国家和一个国家所使用一种语言)

            如:(java.util.Locale)(request.getLocal()).equals(java.util.Locale.US)

          

2、response对象:用于响应客户请求,向用户输出信息。

     处理HTTP文件头,常用的是禁用缓存、设置页面自动刷新和定时跳转 页面;

    2.1)禁用缓存:默认情况下,网页是有缓存现象,当一个浏览器再次访问相关网页时,首先判断改网页有没有变化,如果没有,则直接显示缓存中的内容,可以提高网页显示的速度。

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

        response.setDateHeader("Expires",0);

    2.2)设置页面自动刷新

        response.setHeader("refresh","10");

    2.3)设置跳转网页(5秒后跳转)

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

    2.4)设置输出缓冲

        通常情况下,为了增强用户体验,一般在网页上设置缓冲区,服务器先将内容输出到一个缓冲区,然后在写入客户端。(缓冲区:被定义为暂时存放信息的一块的内容。)

        写入客户端的时机:1)jsp信息全部写入缓冲区。2)缓冲区满了。3)调用out对象中的flush()方法或者response中的flushBuffer()方法。

        相关设置方法:response.flushBuffer()      强制将缓冲区中的内容输除到客户端

                               response.getBufferSize()  获取响应所使用的缓冲区的大小,如果没有缓冲区返回0

                               response.setBufferSize(int size) 设置缓冲的大小

                               response.reset()         清楚缓冲区的内容,同时清楚状态码和报头

                               isCommitted()    检测服务器端是否已经把数据写入客户端


3、session对象

        由于HTTP协议天生无状态,也就是当一个客户向服务器发出请求,服务器接收请求,并返回响应后,该连接就结束了,而服务器并不保存相关的信息。session的出现是为了弥补这一缺陷。

        session可以在应用程序的web页面间进行跳转,保存用户的状态,使整个用户会话一直存在,直至关闭浏览器。如果长时间不向服务发送请求,session会自动消失;(生命周期:用户最后一次请求服务器开始,自动销毁或者手动销毁终止);

        方法:HttpSession session = request.getSession(true);创建session

                  session.setAttribute(String name,Object obj);保存session信息

                  session.getAttribute(String name)获取session信息

                  session.remove(String name) 移除session对象

                  session.invalidate() 销毁session对象

4、application对象

        application对象用于保存所有应用程序的共有的数据;服务器启动时创建,服务器关闭时销毁;

        实例:通过配置web.xml中的<context-param>标记配置应用程序的初始化参数;

          配置连接mysql数据中的url参数:

<context-param>
	<param-name>url</param-name>
	<param-value>jdbc:mysql://127.0.0.1:3306/db_datebase</param-value>
</context-param>

        application提供两个访问应用程序初始化参数的方法:

        application.getInitParameter(String name)方法

        application.getAttributeNames()方法,返回web.xml中的所有初始化参数

   其余常用方法:getAttributeName(String name)、setAttribute(String key,Object obj),removeAttribute(String name)

5、out对象

        见名知义,out是一个输出对象,它可以对缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。数据输出完毕后,要及时关闭输出流。

        主要应用是向客户端输出信息,在输出的非字符串时候,会自动转换为字符串输出。

        方法:print()  println()

        管理缓冲区:如果用clear()方法,响应提交了,会产生IOException异常

                            如果用clearBuffer()方法,即使内容提交了,也没关系

          其余方法:fluse()刷新流,isAutoFlush()检测当前缓冲区已满时是否自动清空,还是抛出异常,getBufferSize()获得缓冲区大小;

6、pageContext对象

        它可以获取JSP页面的request、response、session、application、exception等对象;pageContext对象创建和初始化都是由容器来完成;

        原理:在启动服务器的时候,jsp页面会被编译为.java文件,在这个文件里面会有pageContext对象

7、config对象

        主要用于取的服务器的配置信息,通过pageContext对象的getServletConfig()方法可以获取一个config对象。当一个servlet对象初始化时,容器把某些信息通过config对象传递给这个Servlet.

        常用方法:getServletContext()、getServletName()、getInitParameter()、getInitParameterNames()

8、page对象

        page对象代表JSP本身,只有在JSP页面中才是合法的。本质上是包含当前Servlet接口引用变量,可以看做this关键字别名

9、exception对象

        主要用来处理JSP文件执行错误时发生的所有的异常和错误。只有在page指令中设置isErrorPage=“true”的页面才能使用。





        

猜你喜欢

转载自blog.csdn.net/qq_36115651/article/details/80022866
今日推荐