第5章使用JSP内置对象.ppt
《第5章使用JSP内置对象.ppt》由会员分享,可在线阅读,更多相关《第5章使用JSP内置对象.ppt(112页珍藏版)》请在三一办公上搜索。
1、2023年8月6日,1,第5章使用JSP内置对象,2023年8月6日,2,所谓JSP内置对象,是指不需要声明而直接可以在JSP网页中使用的对象。需要注意的问题是对象名的写法,包括这些对象方法的调用时也要书写正确,因为Java语言本身是大小写敏感的。,2023年8月6日,3,教学目标和重点,了解和掌握request 请求对象方法了解和掌握response 响应对象方法了解和掌握session会话对象方法了解和掌握out 输出对象的方法 了解和掌握pageContext 页面上下文对象方法了解和掌握application 应用程序对象的方法 了解和掌握config 配置对象的方法 了解和掌握pag
2、e 页面对象的方法了解和掌握exception 例外对象的方法,2023年8月6日,4,隐式对象,输入输出对象,2023年8月6日,5,JSP内建对象概观,2023年8月6日,6,JSP内置对象简单概述:(1)HttpServletRequest类的request对象 作用:代表请求对象,主要用于接受客户端通过HTTP协议连接传输到服务器端的数据。,2023年8月6日,7,(2)HttpServletResponse类的respone对象 作用:代表响应对象,主要用于向客户端发送数据(3)JspWriter类的out对象 作用:主要用于向客户端输出数据;out的基类是JspWriter,202
3、3年8月6日,8,(4)HttpSession类的session对象 作用:主要用于来分别保存每个用户信息,与请求关联的会话;会话状态维持是Web应用开发者必须面对的问题。,2023年8月6日,9,(5)ServletContext类的application对象 作用:主要用于保存用户信息,代码片段的运行环境;它是一个共享的内置对象,即一个容器中的多个用户共享一个application对象,故其保存的信息被所有用户所共享.,2023年8月6日,10,(6)PageContext类的pageContext对象 作用:管理网页属性,为JSP页面包装页面的上下文,管理对属于JSP中特殊可见部分中已命
4、名对象的访问,它的创建和初始化都是由容器来完成的。,2023年8月6日,11,(7)ServletConfig类的config对象 作用:代码片段配置对象,表示Servlet的配置。当一个 Servlet初始化时,容器把某些信息通过此对象传递个这个Servlet。(8)Object类的page(相当于this)对象 作用:处理JSP网页,是Object类的一个实例,指的是JSP实现类的实例,即它也是JSP本身,只有在JSP页面范围之内才是合法的。,2023年8月6日,12,(9)exception 作用:处理JSP文件执行时发生的错误和异常 只有在错误页面里才可以使用,前提是:在page指令里
5、要有isErrorPage=“true”在出错页面中,使用获得错误信息。,2023年8月6日,13,5.1 Request对象,HTTP通信协议是客户与服务器之间一种提交(请求)信息与响应信息(request/respone)的通信协议。在JSP中,内置对象request封装了用户提交的信息,那么该对象调用相应的方法可以获取封装的信息,即使用该对象可以获取用户提交的信息。Request内置对象代表了客户端的请求信息,主要用于接受客户端通过HTTP协议传送给服务器端的数据。Request对象封装请求信息的内容:请求的头信息(Header)、系统信息(比如:编码方式)、请求的方式(比如:GET或P
6、OST)、请求的参数名称和参数值等信息;还提供了获取cookie和session等对象、数据的方法。通过request对象可以获取用户的请求信息,2023年8月6日,14,Request对象方法1,Request对象包括很多方法,主要有:获取请求参数的方法(重点)getParameter(String name):以字符串的形式返回客户端传来的某一个请求参数的值,该参数名由name指定。当传递给此方法的参数名没有实际参数与之对应时,返回null。getParameterValues(String name):以字符串数组的形式返回name参数所有值。getParameterNames():返回
7、客户端传送给服务器端的所有的参数名,结果集是一个Enumeration(枚举)类的实例。当传递给此方法的参数名没有实际参数与之对应时,返回null。,2023年8月6日,15,常用方法(一)String request.getParameter(“parameterName”)用表单和超链接、传递参数的时候,使用getParameter返回给定参数的值,如果参数不存在则返回空值。注意使用getParameter取得的值都是字符串类型,需要转换为需要的类型。例:String name=request.getParameter(name);,2023年8月6日,16,注意:如果request.ge
8、tParameter(“名字”)为null JSP引擎在运行JSP页面生成的字节码文件时,会认为使用了空对象,因为在这个字节码被执行时(客户请求页面时),客户可能还没有提交数据,textContent还没有被创建如果使用了空对象,即还没有创建对象,Java解释器就会提示出现了NullPointerException异常,当然如果你不使用空对象就不会出现异常。为了避免在运行时Java认为使用了空对象,使用如下代码:,String textContent=request.getParameter(girl);if(textContent=null)textContent=;,2023年8月6日,1
9、7,复习表单标记,Form表单标记 各种表单控件(文本框、密码框、复选框等)至少一个提交按钮注意比较:get和post两种提交方式的区别内容传输形式、安全性取值方式和中文乱码处理方式,2023年8月6日,18,2023年8月6日,19,2023年8月6日,20,2023年8月6日,21,outInfo.jsp,2023年8月6日,22,注:如在地址栏中写入http:/localhost:8080/ch04m/checklogin.jsp?name=mjh(例ch04m checklogin.jsp)或是在页面的链接中%”(例ch04m jsp_include.jsp)同样可以使用getPara
10、meter(“a1”)以字符串形式返回给定参数的值。,2023年8月6日,23,常用方法(二)public String getParameterValues(Stringname)返回值类型:字符串数组 String能够取出变量的多个值,主要用于复选框值的获取或是下拉列表带multiple属性的。使用getParameterValues能够取出变量的多个值,2023年8月6日,24,读取复选框例子hobby.htmlhobbyInfo.jsp读取下拉列表带multiple属性的例子city.htmlcityInfo.jsp,2023年8月6日,25,常用方法(三)public Enumera
11、tion getParameterNames()返回值类型:枚举Enumeration得到客户端提交的所有参数的名称获取客户端提交的所有参数的名字:,2023年8月6日,26,常用方法(四)request.setCharacterEncoding(“gbk”)例:setCharacterEncoding(“GB2312”)在form表单采用post方式提交请求时,需要设置request对象的编码方式,保证能够正确地取到数据。,2023年8月6日,27,Request对象方法2,getMethod():返回客户端向服务器端传送数据的方法,一般方法有GET、POST、PUT等类型。getReque
12、stURI():获得发出请求字符串的客户端地址。如/ch05/request.jspgetProtocol():获取客户端向服务器端传送数据所依据的协议名称,如http/1.1。getServletPath():获得客户端所请求的脚本文件的相对路径。getQueryString():返回查询字符串,该字符串由客户端以GET方法向服务器端传送。,Request对象的其它方法,主要有:,2023年8月6日,28,Request对象的主要方法3,getContentLength():以字节为单位返回客户端请求的大小。如果无法得到该请求的大小,则返回-1。getContentType():获取客户端请
13、求的MIME类型。如果无法得到该请求的MIME类型,那么返回-1。,2023年8月6日,29,Request对象的主要方法 4,getServerName():获得服务器的名字,如果没有设定服务器名,则返回服务器IP地址。getServerPort():获得服务器的端口号。如8080,2023年8月6日,30,Request对象的主要方法 5,getRemoteAddr():获得客户端的IP地址。getRemoteHost():获得客户端主机的名字,若失败,则返回客户端电脑的IP地址。getRemoteUser():取得用户名getHeader(“Use-Agent”):客户端所用的浏览器的有
14、关信息。,2023年8月6日,31,Request对象的主要方法 6,setAttribute(String name):返回name属性的值。getAttributeNames():返回request对象所有属性的名字,结果集是一个Enumeration(枚举)类的实例。setAttribute(String name,object value):设置name属性的值。例request.jsp使用了request的常用方法。(程序中有一个错误enum改一下名字即可),2023年8月6日,32,5.2 Response对象方法,Response对象实现HttpServletResponse接口
15、,可对客户的请求做出动态的响应,向客户端发送数据,如Cookie、HTTP文件头信息等,一般是HttpServlet.Response类或其子类的一个对象。,2023年8月6日,33,Response对象方法1,addCookie(Cookie cookie):添加一个Cookie对象,用来保存客户端的用户信息,用request的getCookies()方法可以获得这个Cookie。addHeader(String name,String value):添加HTTP文件头,该header将会传到客户端去,如果有同名的header存在,那么原来的header将会被覆盖掉。containsHead
16、er(String name):判断指定名字的HTTP文件头是否存在,并返回布尔值。,2023年8月6日,34,Response对象方法2,sendError(int sc):向客户端发送错误信息,例如,505指示服务器内部错误;404指示网页找不到的错误。setHeader(String name,String value):设定指定名字的HTTP文件头的值,如果该值存在,那么它会被新的值覆盖。如response.SetHeader(“Refresh”,”10”),客户浏览器会隔10秒刷新一次。setContenType(String type):设置响应的MIME类型。,2023年8月6日
17、,35,Response对象方法3,sendRedirect(URL):可以将用户重定向到一个不同的页面(URL)。sendRedirect(URL)方法通过返回特定的状态代码而起作用,当它被调用时,返回一个状态代码,然后在响应中定位,给新页面一个新地址。状态代码和定位头会自动把浏览器重定位到新页面。不过,用户通常不能被顺利重定位到新的页而,特别是老一些的浏览器,而且一些新版本的浏览器在自动响应定向作用状态代码时会有些问题,当浏览器无法自动响应状态代码时,会收到一些字段信息。,2023年8月6日,36,Response对象方法4,setContentLength(“attribute”):设置
18、实体数据的大小。getOutputStream():获得到客户端的输出流对象。encodeURL(String url):把session作为URL的参数返回给客户端,实现URL重写。flushBuffer():强制把缓冲区的内容发送到客户端。,2023年8月6日,37,Response的应用1,1.动态响应contenType属性当一个用户访问一个jsp页面时,如果该页面用page指令设置页面的contentType属性是text/html,那么jsp引擎将按照 这种属性值作出反映。如果要动态改变这个属性值来响应客户,就需要使用response对象的setContentType(String
19、 s)方法来改变contentType的属性值。public void setContentType(Stringtype)设置输出数据的类型text/html:网页text/plain:纯文本application/x-msexcel:Excel文件application/msword:Word文件将当前页面转换为word文档 例 response.jsp,2023年8月6日,38,response.jsp,response对象示例,2023年8月6日,39,我正在学习response对象将当前页面保存为word文档吗?,2023年8月6日,40,Response的应用2,设置刷新publi
20、c void setHeader(Stringname,String value)设置HTTP应答报文的首部字段和值利用setHeader方法可以设置页面的自动刷新reponse.setHeader(“Refresh”,”5”)5秒种后自动刷新本页面reponse.setHeader(“Refresh”,“5;URL=http:/”)5秒种后自动跳转到新页面,2023年8月6日,41,2023年8月6日,42,response应用实例,2023年8月6日,43,Response的应用3,Response重定向:在某些情况下,当响应客户时,需要将客户重新引导至另一个页面,可以使用response
21、的sendRedirect(URL)方法实现客户的重定向。,2023年8月6日,44,sendRedirect和完全是在服务器上进行,浏览器地址栏中的地址保持不变使用不能将请求发到其他的web应用上,SendRedirect可以,2023年8月6日,45,Response的应用3,例,2023年8月6日,46,2023年8月6日,47,2023年8月6日,48,redirect.jsp 姓名:,2023年8月6日,49,例如第四章的例子login.jspchecklogin.jsp success.jsp做一下更改,把改为response.sendRedirect()比较两者不同的效果resp
22、onse.sendRedirect(login.jsp?user=+name);例 response对象中使用cookie的应用实例response2.jsp,2023年8月6日,50,Response的应用4,设定状态显示码的方法response 的状态行当服务器对可以请求进行响应时,发送的首行被称为状态行。状态行包括3位数字的状态代码和对状态代码的描述。下面给出对5类状态代码的大概描述。1*(1开头的3位数字:主要是实验性质的)2*:用来表示请求成功。3*:用来表示在请求满足之前应该采取进一步的行动。4*:当浏览器做出无法满足的请求时,返回该状态码。5*:用来表示服务器出现的问题。可以通过
23、response对象的setStatus(int n)方法来增加状态行的内容。,2023年8月6日,51,2023年8月6日,52,2023年8月6日,53,2023年8月6日,54,2023年8月6日,55,2023年8月6日,56,状态代码表1,下面是服务器响应客户时,发送到客户端的状态代码描述。,2023年8月6日,57,状态代码表2,2023年8月6日,58,状态代码表3,2023年8月6日,59,状态代码表4,2023年8月6日,60,状态代码表5,2023年8月6日,61,5.3 Out对象的方法,Out对象主要用来向客户端输出各种数据类型的内容,并且管理应用服务器上的输出缓冲区,
24、其基类是JspWriter。与“response”对象不同,通过“out”对象发送的内容将是浏览器需要显示的内容,是文本级的,可以通过“out”对象直接向客户端写一个有程序动态生成的HTML文件。,2023年8月6日,62,Out对象方法成员,2023年8月6日,63,输出数据,newLine在网页中输出一行空白,例如下面的程序代码:out.newLine();Print和println这2个方法成员被引用的时候均接受一个特定型态的参数,並且将这个参数输出到网页上:out.print(Hello JSP);out.println(Hello JSP);第一行程序代码将Hello JSP直接输出
25、到客户端的缓冲区上,第二行则在输出Hello JSP之后,紧接着加上一个换行。但这换行符在浏览器中会被忽略,要想真正在页面中实现换行,就需要在输出内容的最后加上换行标签“”,2023年8月6日,64,JSP程序利用out对象将网页内容输出时,都要和客户端做一次连接,并且会为此消耗不少的资源;因此可以将要输出的内容放在一个固定大小的缓冲区中,等到缓冲区满时再一次将内容送往客户端,这就要将autoFlush设为true,否则缓冲区满时将产生IOException错误。,2023年8月6日,65,缓冲区操作,缓冲区是数据输出到浏览器之前,用来暂存数据的一块区域。,2023年8月6日,66,缓冲区操作
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 使用 JSP 内置 对象
链接地址:https://www.31ppt.com/p-5652595.html