欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载
     

    2.jsp基础和内置对象.ppt

    • 资源ID:3548736       资源大小:8.75MB        全文页数:48页
    • 资源格式: PPT        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2.jsp基础和内置对象.ppt

    JSP简介 JSP的优势 JSP页面构成 JSP的生命周期 JSP的处理过程 JSP异常处理机制,本章内容,1.JSP简介,以下的Servlet代码有何缺陷?, out.print(“部门信息管理“); out.print(“); out.print(“); out.print(“在线招聘系统注册“); out.print(“”); ,所有的内容必须在Java代码中完成,包括HTML代码同样需要嵌入到程序代码中来生成静态内容,不利于分工,因HTML代码出现的小问题也需要由熟悉Java Servlet的程序员来解决,1.1 为什么需要JSP?,JSP(Java Server Pages)是指: 在HTML中嵌入Java脚本语言 由应用服务器中的JSP引擎来编译和执行嵌入的Java脚本语言命令 将生成的整个页面信息返回给客户端,1.2 什么是JSP,JSP页面,数据库 服务器,应用 服务器,客户端,Java脚本语言,1,2,3,4,JSP技术解决界面显示问题 Servlet主要解决内部逻辑问题,1.3 JSP与Servlet的适用场合,商品显示列表功能,内容动态生成与静态表示分离 可重复使用的组件 简化页面开发 跨平台,2. JSP的优势, JSP基础入门 今天是: ,3.JSP页面构成,静态内容,指 令,表达式,Scriptlet,HTML静态文本,以“ ” 结束,例如:,声 明,标准动作,以“”结束,例如:,注释,JSP页面构成, 输出当前日期 你好,jack!今天是 ,指令,静态内容,Scriptlet,表达式,注释,在浏览器中观看运行结果,JSP页面构成,查看网页源文件,可以通过源代码查看HTML注释的内容,所有注释内容都不可见,合理、详细的注释有利于代码后期的维护和阅读 在JSP文件的编写过程中,共有3种注释方法 HTML的注释方法: JSP注释标记: 在JSP脚本中使用 ,JSP页面构成,缺点:不安全,加重了网络传输的负担,页面初始化 处理客户端请求并做出应答 退出JSP,4.JSP的生命周期,该方法中可以进行一些资源的分配,或者初始化变量和属性,JSP处理客户请求并应答时会调用_jspService()方法,JSP在页面结束之前(主要是关闭服务器)会调用_jspDestroy()方法,服务器根据接收到的客户请求来加载被请求的JSP文件 Web服务器中的JSP引擎将被加载的JSP文件转化为Servlet代码 JSP引擎将生成的Servlet代码编译成class文件 服务器执行这个class文件 服务器将执行结果发送到浏览器进行显示,5.JSP的处理过程,客 户 端,JSP文件,Servlet文件,class文件,Servlet实例,JSP容器,JSP执行过程,6. JSP异常处理机制,不捕获异常时的显示结果,软件用户感到突然,不知所措,改进之后显示友好的界面,6.1 在Java Web中的异常,出现错误页面的异常通常是同一种类型,为每个页面书写相同的捕获异常代码,不利于代码重用 有一些异常的处理无法通过页面设置完成,例如:用户输入网站中一个不存在的文件,这时应告诉用户文件不存在,6.2 Java Web处理异常步骤,在Web应用程序中trycatch捕获异常有什么缺陷?,如何解决这些问题?,Java Web处理异常步骤, java.lang.NullPointerException /nullPointer.jsp . . . 500 /500.jsp . . . ,1.配置web.xml,为每个类型配置异常处理,为每个错误代码配置异常处理,400错误:错误请求 401错误:访问被拒绝 403错误:文件被禁止访问 404错误:文件没有找到 405错误:文件在运行过程中发生末知错误,Java Web处理异常步骤, 空指针错误 HIS系统 对象没有实例化 ,2.编写异常处理页面,加入isErrorPage page指令,3.编写测试页面,4.运行结果,JSP表达式 表达式(Expression)用于向页面中输出信息 格式: JSP表达式 普通变量 含返回值的方法 Java表达式,1.1 JSP表达式,普通变量 可以返回值的方法 Java表达式,JSP表达式, 产生的随机变量值是:,/定义一个Test类 public class Test /定义一个返回值的方法doWith public static String doWith(String people) return “+people+“; 本次幸运之星是: , =家家乐超市收银系统= 应付款: =家家乐超市收银系统=,表达式可以应用在JSP页面中的如下位置 生成动态的链接地址 使form表单提交到不同的页面 为通过循环语句生成的元素命名,JSP表达式, “链接到,链接到, ”, file:” ,file1: file2:,声明标识 格式: 注意几点 在“%”与“!”之间无须加空格 声明的语法与在Java语言中声明变量和方法时一样 在页面中通过“声明标识”声明的变量和方法,在整个页面内都有效,它们将成为JSP页面被转换为类文件中的属性和方法,并且会被多个线程即多个用户共享 变量或方法的生命周期从创建到服务器关闭后结束,1.2 声明标识,实现一个简单的网页计数器,1.2 声明标识, 网页计数器 你是第位访客 ,关闭浏览器,关闭Tomcat,如果把代码修改如下 : 你是第位访客 能实现网页计数器吗?,脚本程序(Scriptlet) 格式: 注意 它在形式上与表达式的区别在于“”中没有“=” 中间是一段Java代码,不是表达式,每条Java语句要以分号结尾 位于Scriptlet中定义的变量和方法不会被其他线程共享,当前用户对该变量的操作不会影响到其它用户 当变量所在的页面关闭后就会被销毁,1.3 脚本程序(Scriptlet),通过“声明标识”声明的变量与位于Scriptlet中变量的区别,脚本程序(Scriptlet), num的值是: num1的值是: ,第一次运行结果,刷新3次运行结果,什么是指令标识 通过指令标识可以使服务器按照指令的设置来执行动作 通过指令可设置在整个JSP页面范围内有效的属性 在一个指令中可以设置多个属性,这些属性的设置可以影响到整个页面 page指令 page指令称为页面指令,利用页面指令可以定义在整个JSP页面范围内有效的属性 include指令 include指令用于在运行时将HTML文件或JSP页面嵌入到另一个JSP页面 taglib指令 taglib指令的作用是在JSP页面中,将标签库描述符文件(TLD)引到该页面中,并设置前缀,利用标签的前缀去使用标签库描述符文件中的标签,2. JSP指令标识,Page指令 格式: page指令可以放在JSP页面中的任意位置,但习惯上放在文件的开始部分,提高程序的可读性 page指令具有多种属性,通过这些属性的设置可以影响到当前的JSP页面,2.1 Page指令,2.2 include指令,include指令 格式: include指令只支持file属性,该属性指定要在编译时嵌入的文件名 页面的名称应当在编译时已知,文件的内容将被嵌入include指令所在的 JSP页面 为什么要使用include指令 使用include指令引用外部文件,可减少代码冗余,遇到这样的页面模板怎么办?,在JSP中,因为对部分Java对象做了声明,因此即使不声明这些对象,也可以使用。 这些内建对象在JSP页面初始化时生成,由容器实现和管理,不需要由JSP开发人员进行实例化。 在所有的JSP页面中都能使用这些内建对象,起到简化页面的作用。,1.JSP内建对象概述,out对象主要用来向客户端输出各种数据类型的内容,并且管理应用服务器上的输出缓冲区。 缓冲区默认值一般是8KB,可以通过页面指令page来改变默认值。 在使用out对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他输出让出缓冲空间。 out对象被封装为javax.servlet.jsp.JspWriter类的对象,在实际应用中out对象会通过JSP容器变换为java.io.PrintWriter类的对象。 out对象的常用方法:,2. 输入和输出对象,2.1 out输出对象,out对象的print()方法: out对象的print()方法是把数据输出到页面。 输出的数据可以是整型、字符型、布尔型等。print()方法既可输出单纯的文字,例如:“你好”,也可以输出HTML标记。,out输出对象,out.print()方法示例“); out.print(“我是一只“); out.print(“); out.print(“小“); out.print(“小“); out.print(“小“); out.print(“); out.print(“鸟“); out.print(“想要飞也飞不高“); out.print(“=out.print()方法示例=“); %,out对象的clearBuffer()方法: out对象的clearBuffer()方法可清除缓冲区数据。,out输出对象,“); out.print(“ hello!hello!hello!hello!“); out.print(“); out.clearBuffer(); %,没有任何输出结果,out对象的flush()方法: out对象的flush()方法可把缓冲区中的数据输出到网页上。 数据送入缓冲区后,需要清除缓冲区中的数据,但在清除缓冲区前,还需将缓冲区数据送入页面中显示,此时可使用flush()方法。,out输出对象,“); out.print(“ hello!hello!hello!hello!“); out.print(“); out.flush();/在清除缓冲区之前,先输出缓冲区的数据 out.clearBuffer();/清空缓冲区 %,out对象的close()方法: out对象的close()方法是关闭输出流。如果out对象的输出流已经关闭,则不能再向页面输出数据。,out输出对象,=1;j-) out.print(“ “); for(int j=1;j“); out.print(“ok“); out.print(“输出流已经关闭!“); out.close();/关闭输出流 out.print(“再次输入数据,该数据不会显示“); %,2.2 request对象,request对象表示客户端的请求,包含了所有的请求信息。例如:请求的来源,Cookies和客户端请求相关的数据。 可以在JSP页面中直接使用request对象,通过它的方法来获取请求相关数据。 request对象常用方法 :,request对象,request对象应用举例:, 用 户 名: 性 别: 男 女 ,学 历: 高中 大专 本科 研究生 认知途径: 报纸 网络 媒体 其它 ,. . . /获取提交过来的用户名 String uid=new String(request.getParameter(“txtUid“).getBytes(“iso-8859-1“); /获取性别 String sex=new String(request.getParameter(“radSex“).getBytes(“iso-8859-1“); /获取学历 String graduate=new String(request.getParameter(“selGraduate“).getBytes(“iso-8859-1“); /获取认知途径 String cognitions=request.getParameterValues(“chkCognition“); /获取服务器名 String serviceName=request.getServerName(); /获取IP地址 String ip=request.getRemoteAddr(); . . .,2.3 response对象,response内建对象处理JSP生成的响应,然后将响应结果发送给客户端。 response对象常用方法:,response对象,response对象应用举例 实现将表格中的内容,导入excel。 实现浏览器定时刷新。, 条码 名称 单价 出产地 , 62109876543 牙膏 ¥3.4 上海 62109876786 手机 ¥500 深圳 ,3. 作用域通信对象,session对象表示用户的会话状况。用此项机制可以轻易识别每一个用户,能保存和跟踪用户的会话状态。 购物车最常使用session的概念,当用户把商品放入购物车时,再去添加另外的商品到购物车时,之前选购的商品仍然在购物车内,且用户不用反复去做身份验证。 如果用户关闭浏览器,则会终止会话。 session对象常用方法:,3.1 session对象,session对象,用session对象重构购物车 为购物车增加退回商品、减少数量、清空购物车等功能。 运行效果:,session对象,编写产生商品并放入购物车的页面putCarjsp, % /如果用户点击放入商品到购物车按 if (request.getParameter(“flag“)!=null) Map car=(Map)session.getAttribute(“car“); /从session中获取car(购物车对象) if (car=null) /如果购物车为空 car=new HashMap(); /创建一个购物车对象 session.setAttribute(“car“, car); /把购物车放入session中 /获取10之内的随机数,来模拟商品 Integer shop=new Integer(new Random().nextInt(10);,if(car.containsKey(shop) /如果产生的商品已经存在于购物中 CarItem carItem=(CarItem)car.get(shop); /取出购物车项 carItem.setQuantity(carItem.getQuantity()+1); /修改数量加1 else /如果不存在 CarItem carItem=new CarItem(shop,1);/则创建一个购物车项 car.put(shop,carItem);/把购物车项放入购物车中 % 放入购物车 进入购物车 ,session对象,编写显示购物车showCar.jsp页面, 购物车中的商品如下: 商品数量操作 ,“退回商品 “减少数量 清空购物车 返回 ,session对象,编写用于实现“退回商品”功能的Serlvet命名为BackShopServlet.java,/获取要退回的商品 int shop=Integer.parseInt(request.getParameter(“shop“); /从session中获取购物车 Map car=(Map)request.getSession().getAttribute(“car“); /从购物车中删除该商品 car.remove(shop); /转发到显示购物车页面 request.getRequestDispatcher(“showCar.jsp“).forward(request, response);,编写用于实现“减少数量”功能的Servlet命名为DecreaseServlet.java,int shop=Integer.parseInt(request.getParameter(“shop“); /获取要退回的商品 Map car=(Map)request.getSession().getAttribute(“car“); /从session中获取购物车 CarItem carItem=(CarItem)car.get(shop); /获取购物车项 if(carItem.getQuantity()1)/如果数量大于1 carItem.setQuantity(carItem.getQuantity()-1); /则把数量减少1 else /否则数量等于1,直接在购物车中删除 car.remove(shop); /转发到显示购物车页面 request.getRequestDispatcher(“showCar.jsp“).forward(request, response);,session对象,编写用于实现“清空购物车”功能的Servlet命名为ClearCarServlet.java,public class ClearCarServlet extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException this.doPost(request, response); public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException response.setContentType(“text/html;charset=gbk“); PrintWriter out = response.getWriter(); /移除session中的购物车 request.getSession().removeAttribute(“car“); /转发到显示购物车页面 request.getRequestDispatcher(“showCar.jsp“).forward(request, response); ,3.2 application对象,application对象用于保存所有应用系统中的公有数据,服务器启动并且自动创建application对象。 只要没有关闭服务器,application对象将一直存在,所有用户可以共享application对象。 session对象和用户会话相关,不同用户的session是完全不同的对象,而用户的application对象都是相同的一个对象,即共享这个内建的application对象。 application对象常用方法:,application对象,application对象实现网页计数器, “+number+“次“); /输出目前的访问次数 % ,第一次运行该页面时,关闭浏览器再次运行,关闭Web服务器再次运行,用application对象完成的网页计数器在Web服务器关闭或重启之后 数据会丢失,怎样去实现一个真正的网页计数器?,3.3 pageContext对象,pageContext对象使用户可以访问页面作用域中定义的所有内建对象。 pageContext对象提供方法以访问内建对象在页面上定义的所有属性。 pageContext对象作用范围仅仅在页面内。 pageContext对象常用方法 :,pageContext对象,在一个页面中分别完成“会话计数”、“应用程序计数”、“页面计数”, % /初始化页面计数器 if(pageContext.getAttribute(“pageCount“)=null) pageContext.setAttribute(“pageCount“,new Integer(0); /初始化会话计数器 if(session.getAttribute(“sessionCount“)=null) session.setAttribute(“sessionCount“,new Integer(0); /初始化应用程序计数器 if(application.getAttribute(“appCount“)=null) application.setAttribute(“appCount“,new Integer(0); ,/获取页面计数器,并加1 Integer pageCount=(Integer)pageContext.getAttribute(“pageCount“); pageContext.setAttribute(“pageCount“,new Integer(pageCount.intValue()+1); /获取会话计数器,并加1 Integer sessionCount=(Integer)session.getAttribute(“sessionCount“); session.setAttribute(“sessionCount“,new Integer(sessionCount.intValue()+1); /获取应用程序计数器,并加1 Integer appCount=(Integer)application.getAttribute(“appCount“); application.setAttribute(“appCount“,new Integer(appCount.intValue()+1); %, 使用application、session、pageContext对象显示会话计数 页面计数: 会话计数: 应用程序计数: 当前时间: ,第一次运行该页面时,刷新页面后,关闭浏览器再次运行,4. Servlet对象,page对象是为了执行当前页面应答请求而设置的Servlet类的实体。 page对象表示页面本身,只有在JSP页面内才是合法的。 page内建对象本质上包含当前Servlet接口引用的变量,可以看作是this变量的别名。 page对象应用举例:,4.1 page对象,4.2 config对象,config对象存储Servlet的一些初始信息。 config对象是javax.servlet.ServletConfig接口的一个实例。ServletConfig接口提供方法以检索Servlet初始化参数。 config对象表示编译JSP页面的Servlet初始化数据的配置。 config对象读取初始化参数配置数据应用举例:, test /configDemo.jsp title 在线音乐点歌台 test /configDemo.jsp ,Web.xml配置信息, “+ config.getInitParameter(“title“)+“); % ,JSP页面代码,运行结果,5.错误对象,错误对象用于处理JSP页面中的错误,错误对象只提供了一个称为exception的对象,利用exception对象处理执行过程中引发的异常。 JSP中page指令的isErrorPage属性用于指定错误页面。 错误对象应用举例:, 下面将要发生错误! 结果: ,编写发生异常的JSP页面, 获取发生的错误! “+errorMessage+“); % ,编写捕获异常的 JSP页面,

    注意事项

    本文(2.jsp基础和内置对象.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开