JSP基础:(2)JSP的9大对象和4大作用域

JSP隐含对象:

            表单的基本格式:

                         <form method=“get” action=“”></form>
            说明
                       method:信息请求中使用的传输方法
                      actoin:为表单递交后处理该请求的页面 所有的控件内容都必须放在<form>标签中        
        目前常用的两种提交方式:
                     GET:将数据加在指定好的URL之后,中间用问号连接,然后传送到指定的程序做处理。
                     http://specurl?name=tom&password=admin
                     传送中字符串的最大长度为2084字节(255个字符数)
                     信息会在地址栏显示,不安全;是发送请求的默认方式

                    POST:数据和URL是分开传送
                    传送的数据量无限制
                    能够上传文件
                    信息不会在地址栏显示,安全性高
                    只有表单Method=post,其他情况都是get

     只有以下三种控件可以传递参数到服务器:

                1、<input>控件    type=text|password|radio|checkbox|hidden|file
                2、<select>控件
                3、<textarea>控件     

                注意:当使用复选框传递参数,或者使用
                <select multiply size=n>传递参数时,在服务器端必须使用:String[] request.getParameterValues("name")
            其他表单组件传递参数,在服务器端取出时均采用:String request.getParameter("name") 

        HTTP协议是基于请求/响应的运作方式:
            建立连接 :连接的建立是浏览器通过创建套接字(Socket)实现的。浏览器打开一个套接字并把它约束在一个端口上,就可以在该端口上写数据并通过网络向外传送 
            发送请求 :打开一个连接后,浏览器把请求消息送到服务器的端口上,完成提出请求动作 
            发送响应 :  服务器在处理完客户的请求之后,向浏览器发送响应消息 。
            关闭连接:客户和服务器双方都可以通过关闭套接字来结束TCP/IP对话
        点击链接、提交表单、地址栏键入Web页面地址就会发出一个请求,请求的服务器及资源由一个HTTP URL来指定

9种隐含对象:

        JSP页面中不须做任何声明就可以直接使用的对象,JSP中共9种隐含对象,分别是:          

page 页面对象 Object类型 作用域:page
 config 配置对象 ServletConfig类型 作用域:page
out 输出对象 PrintWriter类型 作用域:page
request 请求对象 HttpServletRequest类型 作用域:request
response 响应对象 HttpServletResponse类型 作用域:page
session 会话对象 HttpSession类型 作用域:session
application 应用程序对象 ServletContext类型 作用域:application
pageContext 页面上下文对象,表示此JSP的page上下文 PageContext类型 作用域:page
exception 异常对象,用于异常处理 Exception类型 作用域:page

4大作用域:

 作用域是指变量使用的有效范围。这个周期可以是当前页面的执行时间,或是一次请求从创建到消亡的这段时间。

         pageContext:当前页面作用域

                    pageContext相当于Java中的this,它代表着当前页面作用域。在这个作用域中存放的属性值,只能在当前页面中取出。

        request:从请求创建到请求消亡这段时间

                  浏览器从发起请求开始,到服务器处理完成,返回响应的这段时间。request作用域可以跨越多个页面 。
             另外,还可以使用<jsp:forward>和<jsp:include>两个方法转向或包含另一个页面, 这个时候request对象中保存的信息对另一个页面也是有效的

        session:一段客户端和服务器持续连接的时间

                  当客户端浏览器第一次向服务器发出请求,服务器会为这个客户端分配一定的内存空间,这个客户端能在其中存取数据,任何客户端都不能操作其他客户端的内存空间中的数据,这块内存空间就称为session,它也是JSP的九大内置对象之一。
                  存放于session中的对象,将属于session作用域,或者叫会话作用域 

        application:服务器开始到服务器关闭为止

                  当服务器开启时,会创建一个公共内存区域,任何客户端都可以在这个公共内存区域存取值,这个公共内存区域,就称为application,它也是JSP的九大内置对象之一

隐含对象--属性与作用范围

             方法&说明

 void setAttribute(String,Object) 定义name属性的值为value
Object getAttribute(String) 取得name属性的值
 void removeAttribute(Sting) 移除name属性的值
getAttributeNames(String name) 得到一个数组的值,但pageContext无此方法。如果找不到对象,则返回null;

             注意注意注意:存入的对象时,类型自动被转换成Object类型,在取出时则需要将Object类型转换成原类型

request对象的方法   

getContextPath()  获取站台路径
 getMethod()  获得客户端提交请求的方式
 getRealPath("/") 获得站点在服务器的真实路径
getRemoteAddr() 获得客户端主机IP地址
getRequestedSessionId() 获得sessionID
getSession() 获取session对象
 getLocale().getCountry() 获取客户端浏览器所属国家代码

处理HTTP请求报头:

       在读取请求报头的时候,我们通常用的方法是HttpServletRequest的getHeader(String name)方法、 getHeaderNames( )方法和getHeader(String name)。

常见的HTTP请求报头域:

                Accept:用于指定客户端接受哪些类型的信息。
                Accept-Encoding:类似Accept,但是它是用于指定可接受的内容编码。如果请求消息中没有设置这个域,服务器假定客户端对各种内容编码都可接受
                Accept-Language:类似于Accept,但是它是用于指定一种自然语言。如果请求消息中没有设置这个域,服务器假定客户端对各种语言都可接受。
                Host:主要用于指定被请求资源的Internet主机和端口号,它通常是从HTTP URL中提取出来的。
                User-Agent:允许客户端将它的操作系统浏览器和其他属性告诉服务器。
                Connnection:标明客户是否能够处理持续性HTTP连接。持续性连接允许客户或者浏览器在单个socket中读取多个文件,从而节省协商几个独立连接所需的开销。
                Cookie:向服务器返回cookie,这些cookie是之前由服务器发送给浏览器的:request.getCookies()。

response对象的方法:

主要将JSP处理数据后的结果传回到客户端。对应的javax.servlet.http.HttpServletResponse接口

setContentType(String) 设置返回客户信息的对象类型
 void addCookie(Cookie cookie) 新增cookie
void setHeader(String name,String value) 新增String类型的值到标头
   getWriter()  获取out对象
 getOutputStream()   获取对客户端的输出流
String sendRedirect (String url)  重定向到新的UTL

请求转发与重定向

                请求转发与重定向的区别:
                    请求转发是将收到的请求原封不动再发出去,可以加参数或属性。
                    重定向转发是原请求周期结束,重新创建新请求出去。
                    <jsp:forward>转发需要用<jsp:param>来传递参数,response.sendRedirect()重定向可以直接在url后面编码增加参数。
                        例如:response.sendRedirect(“example.jsp?aa=123)

response对象设置响应头参数

                对客户端的响应参数可以在response中进行参数设置。
                需求:
                    需要每间隔3分钟重新响应1次,则可以通过如下方法:
                    response.setIntHeader(“Refresh”,180)让页面自己每隔3分钟自动刷新。
                    需要等10秒钟后,再响应,则可以通过如下方法:
                    response.setHeader(“refresh”, “10;URL=http://www.sina.com”)让页面过10秒钟后自动重定向到新的页面           

     Out对象的方法:

print(String) 显示
 println( ) 显示并换行
close( ) 关闭输出流,清楚所有的内容

         application对象:

            application对象实现javax.servlet.ServletContext接口,它主要功用在于取得或更改Servlet的设定。
            getRealPath(String)获取某个文件在服务器上的绝对地址,参数如果是/,表示获取站点的真实路径

        config对象:

            config对象则存放一些Servlet的初始化的数据结构。该对象实现于javax.servlet.
            点击链接<a href="fig">测试config</a>            

               <servlet>
                    <servlet-name>con</servlet-name>
                    <jsp-file>/fig.jsp</jsp-file>
                    <init-param>
                        <param-name>name</param-name>
                        <param-value>paramvalue</param-value>
                    </init-param>
                </servlet>
                <servlet-mapping>
                    <servlet-name>con</servlet-name>
                    <url-pattern>/fig</url-pattern>
                </servlet-mapping>

前台jsp页面:          

            <%
                String v=config.getInitParameter("name");
                out.println("从配置文件中获取的参数值:"+v);
             %>     

 exception对象

            当JSP网页有错误产生异常的时候调用该对象进行处理      和session对象一样,只有当<%@page isErrorPage=“true”%>的时候才能使用该对象。     errorPage=“a.jsp”
                    

猜你喜欢

转载自blog.csdn.net/u012060033/article/details/82697847