收藏 分享(赏)

隐含对象.ppt

上传人:myw993772 文档编号:8027876 上传时间:2019-06-05 格式:PPT 页数:36 大小:305KB
下载 相关 举报
隐含对象.ppt_第1页
第1页 / 共36页
隐含对象.ppt_第2页
第2页 / 共36页
隐含对象.ppt_第3页
第3页 / 共36页
隐含对象.ppt_第4页
第4页 / 共36页
隐含对象.ppt_第5页
第5页 / 共36页
点击查看更多>>
资源描述

1、JSP隐式对象,第十一章,2,回顾,JSP简介 JSP注释 JSP指令 JSP脚本元素,3,目标,输入/输出对象 作用域通信和控制对象 Servlet 相关对象 错误处理,4,隐式对象 2-1,JSP 机制自动创建的 Java 类实例 即:不用声明就可以在jsp脚本中使用的对象 与 Servlet 环境交互 因为:Servlet自动支持 功能: 从客户端获得数据 向客户端发回数据 控制传输数据的缓冲,5,隐式对象 2-2,隐式对象的类型: 输入/输出对象:request,response,out 作用域通信和控制对象: session ,application,pageContext Serv

2、let 相关对象:page,config 错误处理:exception,6,JSP隐含对象,JSP根据servlet API而提供了某些隐含对象。可以使用标准的变量来访问这些对象。,7,输入/输出对象,用于 JSP 页面的输入和输出 http协议规定了信息在internet上的传输,特别是浏览器与服务器交互方法。 可分为: request 对象 response 对象 out 对象,8,输入/输出对象,request 对象 表示 HTTP 请求 是实现 javax.servlet.HttpServletRequest 接口的类的一个实例 它包含请求行,头域和可能的信息体。如: GET/hell

3、o.htm HTTP/1.1 Host: 头的信息有很多 request 对象主要方法(继承的): Boolean isSecure() Returns a boolean indicating whether this request was made using a secure channel, such as HTTPS. java.util.Locale getLocale() Returns the preferred Locale that the client will accept content in, based on the Accept-Language header

4、.,9,输入/输出对象,request 对象主要方法(继承的):-public abstract String getContentType() /返回请求数据类型-public abstract int getContentLength() /返回请求数据长度-public abstract String getProtocol() /返回请求协议和版本-public abstarct String getScheme() / 返回使用的URL类型-public abstract String getRemoteAddr() /返回发出请求的IP地址-public abstract Stri

5、ng getRemoteHost() /返回完整主机名-public abstract ServletInputStream getInputStream() /返回-public abstract String getParameter(String name) /返回指定参数值-public abstract String getParameterValues(String name) /返回指定参数的一组值-public abstract Enumeration getParameterNames() /返回所有参数名-public abstract Object getAttribut

6、es(String name) /为了与其它servlet或jsp通信,还有set,remove等,10,输入/输出对象,request 对象主要方法(自己的):-public abstract String getQueryString() /-public abstract Enumeration getHeaders() /请求头信息值的枚举-public abstract String getHeader(String name)-public abstract Enumeration getHeaderNames()-public abstract String getMethod(

7、) /返回get或post等-public abstract StringBuffer getRequestUrl() -public abstract long getDateHeader(String name) 重要方法: String getParameter (name) String getHeader (name),11,输入/输出对象,request 对象举例 书p151 simple.jsp example3_1.jsp(request.getParameter(),tree.jsp)request2.jsp(-空对象request22.jsp)request3.jsp(tr

8、ee3_3.jsp汉字处理,是对example3_1.jsp的修正,可重新运行之)example3_4.jsp(其他方法,tree2.jsp)Login1,Login2.jsp(综合,注册,先检测是否有同名,hashtable) login1_2.jsp,login2_2 改进,避免丢失hashtable, name的位置),12,request举例:radio.jsp(form表单单选按钮,简单网上试题,answer.jsp)select.jsp(form表单滚动列表,求不同的和,sum.jsp)tableform.jsp(表单),输入/输出对象,13,输入/输出对象,response 对象

9、 表示 HTTP 响应 是实现 javax.servlet.HttpServletResponse 接口的类的一个实例 响应也有结构:状态行,头,信息体 如:200ok,14,主要方法(继承ServletResponse接口的),public void setContentType(String type)如: response.setContentType(“text/html”); public ServletOutputStream getOutputStream() Public String getCharacterEncoding() public java.io.PrintWri

10、ter getWriter() 比如:PrintWriter out = response.getWriter();out.println(“.”);,15,public void sendError(int status) 比如response.sendError(404);public void sendRedirect(String location) 比如response.sendRedirect(“/abc.html”); Public void setStatus(int code) Void addHeader(name,value) Void addCookie(cookie)

11、 Boolean containsHeader(name) Void setHeader(name,value),主要方法(自己的),16,输入/输出对象,Void addIntHeader(name,int value) Void setIntHeader(name,int value) Void setDateHeader(name,Date value) Void addDateHeader(name, Datevalue) 重要方法: void setContentType (type) void sendRedirect (url),17,输入/输出对象,response对象举例 书

12、p152 simplelogin.jsp(authenticate.jsp, example3_10.jsp(动态设定ContentType,用指定的word形式保存页面) Example3_12.jsp(添加refresh响应头)example3_13.jsp(sentRedirect(),tree4.jsp,不输入名字不行) Example3_14.jsp(bird1,bird2,bird3,setStatus) Status.txt(对状态码的解释),18,输入/输出对象,out 对象 将内容写入输出流 javax.servlet.jsp.JspWriter 类的一个实例 重要方法: p

13、rint() println() newLine() flush() close() boolean isAutoFlush() Int getBufferSize() Int getRemaining()/的缓冲区中未用字节数 Void clear()/清缓冲区 举例:out.jsp(p154), time.jsp(calanda),19,作用域通信和控制对象,分为: session 对象 application 对象 pageContext 对象,20,作用域通信和控制对象,session 对象 http协议无状态,一次request和response连接就关闭 会话:从客户打开浏览器连接

14、到服务器开始,到客户关闭浏览器离开这个服务器结束。 每个客户对应一个session对象,即是客户的一对一关系 sessionID:session的唯一标示 会话的生存期:客户首次访问服务器上的jsp页面时,jsp引擎产生session对象,分配ID,将其存入Cookie.客户在该服务器不同网页间转换或从其他服务器回到该服务器时,不分配新session,直到关闭浏览器。,21,作用域通信和控制对象,session 对象 在访问Web 站点时同一用户在多个页面间共享信息 是 javax.servlet.http.HttpSession 类的一个实例 存储有关会话的属性 主要方法: String g

15、etId () void invalidate () Boolean isNew() Long getCreationTime() Long getLastAccessedTime() Long getMaxInactiveInterval() Long setMaxInactiveInterval(),22,作用域通信和控制对象,session 对象 重要方法: String getId () void invalidate () isNew() 举例: 书p154 simplesession.jsp(setAttribute)session,tom0,jerry(sessionID)ses

16、sion1,tom1,jerry1(encodeURL,对上题的改进 ) example3_17.jsp,first.jsp,count.jsp(购物setAttribute(),getAttribute()example3_18.jsp,resule,success,large,small (getCreateTime(),getLastAssessedTime()example3_19.jsp(计数器,isNew(),避免刷新增值),23,作用域通信和控制对象,application 对象 存储有关文档运行环境的信息 服务器启动时就创建一个application对象,各个客户共享,直到服务

17、器关闭。 是 javax.servlet.ServletContext 类的一个实例 主要方法: String GetServerInfo() Int getMajorVersion() /返回servlet api的主要版本 Int getMiniVersion()/返回servlet api的次要版本 String getRealPath (path)/将url转成文件系统路径名,24,作用域通信和控制对象,主要方法: String getMimeType() String getResource(path)/返回制定路径的url InputStream getResourceAsStre

18、am() ServletContext getContext()/得到指定路径的ServletContext RequestDispatcher getRequestDispatcher(path) Void log(message) Void log(message,exception)/日志中写消息和异常的堆栈跟踪 重要方法: String GetServerInfo (), getAttribute() setAttribute() String getRealPath (path),25,Application举例:p157 application.jsp(常用方法)P157 setA

19、tribute.jsp getAttribute.jsp(session和application) example3_20.jsp (用application实现计数器)submit.jsp, messagePane.jsp, showMessage.jsp(向量,留言板 ),作用域通信和控制对象,26,作用域通信和控制对象,pageContext 对象 A PageContext instance provides access to all the namespaces associated with a JSP page, provides access to several page

20、attributes, as well as a layer above the implementation details. Implicit objects are added the pageContext automatically. The PageContext class is an abstract class, designed to be extended to provide implementation dependent implementations thereof, by conformant JSP engine runtime environments. A

21、 PageContext instance is obtained by a JSP implementation class by calling the JspFactory.getPageContext() method, and is released by calling JspFactory.releasePageContext().,27,作用域通信和控制对象,pageContext 对象 描述 JSP 文档的运行环境 提供对所有其他隐式对象及其属性的访问 是页面中对象功能的最大集成者 是 javax.servlet.jsp.PageContext 类的一个实例 主要方法: Ht

22、tpSession getSession () Objetc getPage () ServletRequest getRequest() ServletResponse getResponse() JspWriter getOut(),28,作用域通信和控制对象,主要方法:ServletConfig getConfig()ServletContext getContext()Exception getException()void forward(path)void include(path)void setAttribute(key,value,scope)Objetc getAttrib

23、ute(key,scope)void removeAttribute(key,scope),29,作用域通信和控制对象,主要方法:Object findAttribute(key)int getAttributeScope(name) Scope取一下静态常量:PAGE_SCOPE , REQUEST_SCOPE , SESSION_SCOPE , APPLICATION_SCOPE 举例: 书p159 scopeexample1.jsp 书p160 scopeexample2.jsp,30,Servlet相关对象,基于 JSP 页面作为 Servlet 的实现可分为: page 对象表示 S

24、ervlet 本身 config 对象存储 Servlet 的初始化参数,31,Servlet相关对象,page 对象 表示 JSP 页面本身 是 Servlet 类的一个实例,就是转换后的类 可以调用servlet中的任何方法 实现了javax.servlet.jsp.HttpJspPage接口 config 对象 存储 Servlet 配置对象ServletConfig 在jsp中很少用到 是 javax.servlet.servletConfig 接口的一个实例 重要方法: Enumeration getInitParameterNames() String getInitParamet

25、er(name) ServletContext getServletContext(),32,错误处理,只有一个对象,exception 对象 JSP 错误页面 在某个 JSP 页面抛出异常时,处理将被转发的页面 主要方法: getMessage() toString() printStackTrace(),33,错误处理,exception 对象 只适用于 JSP 错误页面 目的是在 JSP 内处理错误 是 java.lang.Throwable 类的一个实例 举例: 书p162 dividedexample.jsp,error.jsp,34,演示,JSP的错误处理,35,中文的显示,JSP页面缺省情况:charset = ISO-8859-1,中文显示出现乱码要正确显示中文 ,36,总结,输入/输出对象 作用域通信和控制对象 Servlet 相关对象 错误处理,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报