资源描述
,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第,7,章,JSP,开发中的常用技巧,理论,掌握,JSP,中数据共享、错误处理和文件操作的方法,技能,学会使用一些,JSP,的高级开发技术,要求,了解并会运行一些,JSP,的高级开发技术,本节将讨论,JSP,开发经常要使用的技术和技巧。通过学习本章,读者不仅可以掌握一些技巧,也可以巩固,JSP,、,Servlet,的基础语法知识。本章的主要内容有:,1.,在不同页面或者用户之间共享数据,2.,创建错误处理页面,3.,在,JSP,中操作文件,7.1,在不同页面或者用户之间共享数据,在,JSP,中共享数据,大体上分为两种情况,第一种是在同一个用户的不同页面之间共享数据,另一种是在不同用户之间共享数据。,对于同一个用户的会话,要想在不同的页面之间共享数据,可有的选择,把数据保存在,session,中,(,这是比较常见的方式,),;通过,Cookie,;通过隐含的表单把数据提交到下一个页面;通过,ServletContext,对象;通过,Application,对象;通过文件系统或者数据库。,要在不同用户之间共享数据,通常方法,通过,ServletContext,对象;通过,Application,对象;通过文件系统或者数据库。,可见,对于在不同用户之间共享数据的实现方法,同样适用于在同一个用户的不同页面实现数据共享。,7.1.1,在不同页面之间共享数据,使用,Session,共享数据,用户在浏览网页时,由于,Http,协议是一种无状态的协议,往往在不同的页面之间存在数据交换的问题,这就需要在这些不同的页面之间共享数据。最常见的实现方法是把要共享的数据保存到,Session,中。将,x:tomcatWebappsexamplesfile77_1_1com,目录复制到,x:tomcatWebappsexamplesWeb,-INFclasses,下。一个实际的用户登录例子。,文件名,功能,userSession.java,验证成功,就把登录的信息保存在一个,userSession,的类中,在其他的页面可以读取这个值,文件,login.html,登录界面,login.jsp,登录界面,实现,userSession,类,welcome.jsp,欢迎界面,把,userSession,对象读取出来,login_userBean.jsp,共享,userSession,的,bean,数据,welcome_userBean.jsp,共享,userSession,的,bean,数据,使用,Cookie,创建,Cookie,,然后通过,response.addCookie,(),方法把,Cookie,添加到客户端。,文件,setCookie.jsp,客户端的所有,Cookie,,然后从这些,Cookie,中获得目标的,Cookie,以读取它的值。,文件,getCookie.jsp,使用隐含的表单,使用方法:,在另一个页面中,通过以下的方式来获得这些数据:,String test=request.getParameter(test1);,String test2=request.getParameter(test2);,7.1.2,在不同的用户之间共享数据,使用,ServletContext,在,JSP,页面中可以通过,getServletContext,(),方法来获得,ServletContext,对象。在这种情况下,不同用户的页面之间可以通过,ServletContext,来共享数据。文件,servletContext_chat.jsp,使用,application,对象,application,对象对于每个,Web,应用来说只有一个。,文件,testApplication.jsp,7.2,创建错误处理页面,程序运行难免会发生异常和错误。当处理,JSP,页面时,遇到的异常分为两个基本类型:,编译时的错误,运行时的错误,7.2.1,在,JSP,中声明出错页面,由于,JSP,文件被编译成,Servlet,执行,出现异常的默认操作就是显示异常的堆栈。,JSP,页面提供了重写这个默认行为的功能,并且将异常处理转到另一个文件中:,这样在这个,JSP,页面中,如果遇到任何未捕获到的,Throwable,对象,那么就会显示指定的出错页面。,例子一文件,mustBeError.jsp,error.jsp,例子二 文件,AddJavaBean.java,add.jsp,7.3 JSP,操作文件,本节介绍在,JSP,中操作文件的例子。由于,JSP,能使用,Java,的,IO,系统,所以在,JSP,中对文件的操作和一般,Java,程序没有什么大的区别。,操作文件主要有两种类型,:,读取内容,写入内容或者更改文件的属性,7.3.1,读取文件内容,在读取文件时,可以有两种选择方式,通过,ServletContext,来读取,将,x:tomcatWebappsexamplesfile77_3_1file.txt,文件,复制到,x:tomcatWebappsexamples,下。只能获得,Servlet,上下文之内的资源 文件,readFile.jsp,使用带缓冲的输入流来读取文件资源 文件,readFile2.jsp,使用,FileReader,可以在,JSP,页面中使用,FileReader,和,FilelnputStream,等类来读取文件的内容。使用一个,BufferedReader,来封装,FileReader,,这样就可以每次读取一行数据。将,x:tomcatWebappsexamplesfile77_3_1UserSession.java,文件复制到,c:,下。,文件,readFile3.jsp,7.3.2,写入内容到文件,可以通过,FileWriter,对象或者,FileOutputStream,把内容输出到文件中。,文件,writeFile.jsp,在,FileWriter,构造方法中增加一个“,true”,关键字。这样新写入的内容就可以追加到原来的文件后面。,
展开阅读全文