JSP的内置对象

来源:互联网 发布:whatsapp电脑版 mac 编辑:程序博客网 时间:2024/05/21 10:19

jsp有四种属性范围:

            page:页面级别,只在一个页面内可用。

         Request:请求级别 服务器跳转,一次请求之后消失。

         Session :会话级别 客户端跳转(服务器跳转),与浏览器有关,ie是在重新打开ie时才会不同。

         Application:应用级别,当重启服务器时才会消失

 

名词了解:

        客户端跳转:

           使用的是HttpServletResponse的SendRedirect方法,也就是我们所说的重定向。

        服务器跳转:

                 使用的是RequestDispather对象的forward方法,也就是我们所说的转发。

 

二者的流程:

             客户端跳转:客户端发送一个请求给服务端,服务端会先给客户端一个响应,客户端根据这个响应中锁包含的地址再次向服务器发起一个请求。


         服务端跳转:客户端发送一个请求给服务端资源,该资源将请求发送给另一个服务端资源,处理完毕后再给客户端做出响应。


二者的区别:

         1、重定向使用不同的request,转发过程共享一个request。

         2、 重定向完毕后浏览器地址栏中的地址会发生改变变为最后一次请求的URL,转发则不会。

        开始了解JSP的九个内置对象,JSP主要是用来做显示用的,它所有的内置对象是为了免去实例化过程方便开发

对象

含义

类型

作用域

out               

 输出对象

javax.servlet.jsp.JspWriter            

Page

request           

请求对象

javax.servlet.ServletRequest  

Request

response         

响应对象      

javax.servlet.SrvletResponse      

Page

session

会话对象 

javax.servlet.http.HttpSession   

Session

application      

应用程序对象

javax.servlet.ServletContext         

Application

page              

页面对象 

javax.lang.Object                     

Page

pageContext   

页面上下文对象 

javax.servlet.jsp.PageContext       

Page

config             

配置对象

javax.servlet.ServletConfig           

Page

exception       

例外对象

javax.lang.Throwable                    

page

 

1、 out:向客户端输出内容常用的对象

使用:主要功能是输出,简单使用 <%out.append("呵呵,要登录了!");%>,直接可以在浏览器中输出内容。

 

2、 request:封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,就是用该对象可以获取用户提交的信息。当Request对象获取客户提交的汉字字符时,会出现乱码问题,必须进行特殊处理。在一般的项目中都会配置filter进行控制,比如DRP里,自己现在的公司也是配置的filter。

 

3、 response:对客户的请求做出动态的响应,向客户端发送数据。这个对象有一个setContentType()方法,可以动态的这只jsp页面的contentType类型,参考的类型有text/html,application/x-msexcel,application/msword等。既然说到了contentType那就就来顺便了解一下相关字段的含义。

在每个JSP页面中都会有如下的一行代码设置:

<span style="font-size:18px;"><%@ page language="java"contentType="text/html; charset=UTF-8"  pageEncoding="GBK"%></span>

pageEncoding="GBK":jsp文件本身的编码,它是要告诉JVM这个jsp本身是采用GBK编码,在将该jsp编译为servlet是会以GBK的编码形式翻译成UTF-8形式的java文件。

charset=UTF-8:服务端发给客户端时的编码格式,也是网页展示到浏览器的编码格式。

contentType中的text/html:这是设置的MIME,MIME是设置打开文件应用程序的类型,当文件被访问时浏览器自动制定应用程序打开。Text/html为jsp的指定编码,application/msword将会使用word进行显示,自己做了一个测试页面不在浏览器显示而是给一个提示框,问是否下载,载下来后是页面的样式。

 

总:response和request使用的比较多,response需要注意的就是汉字乱码的问题。


4、session:它在第一个JSP页面被装载时自动创建,完成会话期管理。从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间切换,服务器应当通过Session对象知道这是同一个客户。

JSP引擎产生一个Session对象,同时分配一个String类型的ID号,JSP引擎同时将这换个ID号发送到客户端,存放在Cookie中,这样Session对象,直到客户关闭浏览器后,服务器端该客户的Session对象才取消,并且和客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的Session对象。详细见博客《》。


5、application:服务器启动后就产生了这个Application对象,当客户再所访问的网站的各个页面之间浏览时,这个Application对象都时同一个,直到服务器关闭。但是与Session对象不同的时,所有客户共用一个Application对象。服务器对象才会消失。


6、page:是jsp页面转为servlet类的实例,指向当前JSP页面本身,对应类中的this指针。


7、pageContext:表示jsp页面的上下文,使用它可以方位页面中的共享数据,它可以访问除自己本身以外的8个jsp对象,它也可以方位设置到application、session、request、response对象上的其他java对象。他相当于页面中所有功能的集大成者,它的本 类名也叫pageContext。


8、exception:当一个页面在运行过程中发生了错误是就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true(<%@ page isErrorPage="true" %>),否则无法编译。在DRP中有一个Error页面就使用了这个对象。


9、config:是在一个Servlet初始化时,JSP引擎向它传递信息时使用的。

 

小结

         对jsp的9个内置对象有个大概的了解,有的已经在drp中简单的实践过了,有的只是知道还没有用过,整体的了解大概知道以后遇到什么样的情况会用这些内置对象解决。

0 0