JSP常用内置对象_第1页
JSP常用内置对象_第2页
JSP常用内置对象_第3页
JSP常用内置对象_第4页
JSP常用内置对象_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JSPWeb应用技术第4讲JSP常用内置对象2了解内置对象的主要作用了解九个内置对象及其对应的类型掌握几大对象的主要使用outrequestresponsesessionApplication掌握对象的作用范围本讲目标JSP中的九个内置对象No.内置对象类型描述1outjavax.servlet.jsp.JspWriter页面输出2requestjavax.servlet.http.HttpServletRequest得到用户的请求信息3responsejavax.servlet.http.HttpServletResponse服务器向客户端的回应信息4sessionjavax.servlet.http.HttpSession用来保存每一个用户的信息5applicationjavax.servlet.ServletContext表示所有用户的共享信息6configjavax.servlet.ServletConfig服务器配置,可以取得初始化参数7pageContextjavax.servlet.jsp.PageContextJSP的页面容器8pagejava.lang.Object表示从该页面中表示出来的一个Servlet实例9exceptionjava.lang.Throwable表示JSP页面所发生的异常,在错误页中才起作用response对象response对象的主要作用是用于对客户端的请求进行回应,将WEB服务器处理后的结果发回给客户端。response对象属于javax.servlet.http.HttpServletResponse接口的实例,HttpServletResponse接口的定义如下:publicinterfaceHttpServletResponseextendsServletResponseresponse对象的常用方法No.方法类型描述1publicvoidsetHeader(Stringname,Stringvalue)普通设置回应的头信息2publicvoidsendRedirect(Stringlocation)throwsIOException普通页面跳转3publicvoidaddCookie(Cookiecookie)普通向客户端增加Cookie设置刷新头信息JAVA的WEB开发使用的是HTTP协议,主要的操作就是基于请求和回应,但是在请求和回应的同时也会包含一些其他的信息(例如:客户端的IP、Cookie、语言等),那么这些信息就称为头信息。服务器端也可以根据需要向客户端设置头信息,在所有的头信息的设置中,定时刷新页面的头信息使用的是最多的,直接使用setHeader()方法,将头信息名称设置为refresh,同时指定刷新的时间。设置定时刷新的头信息<%@pagecontentType="text/html"pageEncoding="GBK"%><html><head><title>高端Java培训</title></head><body>

<h3>现在的时间是:</h3>

<%=newDate()%><% response.setHeader("refresh","2");//设置两秒一刷新%></body></html>3秒后跳转到其他页面<%@pagecontentType="text/html"pageEncoding="GBK"%><html><head><title>高端Java培训</title></head><body><h3>3秒后跳转到hello.htm页面,如果没有跳转请按<ahref="hello.htm">这里</a>!</h3><% response.setHeader("refresh","3;URL=hello.htm"); //3秒后跳转到hello.htm%></body></html>页面跳转在JSP中除了可以通过头信息的方式完成跳转,也可以使用response对象的sendRedirect()方法直接完成页面的跳转。使用sendRedirect()跳转到hello.htm页<%@pagecontentType="text/html"pageEncoding="GBK"%><html><head><title>高端Java培训</title></head><body><% response.sendRedirect("hello.htm"); //直接跳转到hello.htm%></body></html>例5-8(P113)<%response.setBufferSize(10240);

%>

<%=response.getBufferSize()%>

<br/>

<%response.setCharacterEncoding("UTF-8");

%>

<%=response.getCharacterEncoding()%>

<br>网站友情链接:<hr>

<form

action="responseHandle.jsp"

method="post">

<select

name="link">

<option

value="qhdxcbs"

selected>清华大学出版社</option>

<option

value="jyb"

>中华人民共和国教育部</option>

</select>

<input

type="submit"

name="submit"

value="确定">

</form>

两种跳转的区别是什么?<jsp:forward>属于服务器端跳转,跳转之后地址栏的信息并不会有任何的改变,而response.sendRedirect()属于客户端跳转,跳转之后地址栏是会改变的,变为跳转之后的页面地址。在使用request范围属性的时候,只有是服务器端跳转才能够将request属性保存到跳转页,而如果是客户端跳转,则无法进行属性的传递。如果使用的是服务器端跳转的话,则执行到跳转语句之后会立刻进行跳转,如果使用的是客户端跳转,则是在整个页面执行完之后才执行跳转。小结1response表示的是服务器端对客户端的回应可以通过setHeader()方法设置一个响应的头信息response对象属于的sendRedirect()方法属于客户端跳转,而<jsp:forward>属于服务器端跳转session对象实际上在开发中session对象最主要的用处就是完成用户的登陆(login)、注销(logout)等常见功能的,每一个session对象都表示不同的访问用户,session对象是javax.servlet.http.HttpSession接口的实例化对象,所以session只能应用在HTTP协议中。HttpSession接口的主要方法No.方法类型描述1publicStringgetId()普通取得SESSIONID2publiclonggetCreationTime()普通取得SESSION的创建时间3publiclonggetLastAccessedTime()普通取得SESSION的最后一次操作时间4publicbooleanisNew()普通判断是否是新的SESSION(新用户)5publicvoidinvalidate()普通让SESSION失效6publicEnumerationgetAttributeNames()普通得到全部属性的名称setAttribute(java.lang.String

name,java.lang.Object

value)getAttribute(java.lang.String

name)

JSP内置对象sessionsession对象用来存储有关用户会话的所有信息session对象常用方法:voidsetAttribute(Stringkey,Objectvalue):以键/值的方式,将一个对象的值存放到session中ObjectgetAttribute(Stringkey):根据名称去获取session中存放对象的值session.setAttribute("name","admin");Stringname=(String)session.getAttribute("name");取得SessionId当一个用户连接到服务器之后,服务器会自动为此session自动分配一个不会重复的SessionId,服务器依靠这些不同的SessionId来区分每一个不同的用户,在WEB中可以使用HttpSession接口中的getId()方法取得这些编号。取得SessionId<%@pagecontentType="text/html"pageEncoding="GBK"%><html><head><title>高端Java培训</title></head><body><% Stringid=session.getId(); //取得SessionId%><h3>SESSIONID:<%=id%></h3><h3>SESSIONID长度:<%=id.length()%></h3></body></html>

例5-9(P116)制作站点计数器

<%

intnumber=10000;

//从session对象获取numberObjectobj=session.getAttribute("number");

if(obj==null){

//设定session对象的变量的值session.setAttribute("number",String.valueOf(number));}

else{

//取得session对象中的number变量number=Integer.parseInt(obj.toString());

//统计页面访问次数number+=1;

//设定session对象的number变量值session.setAttribute("number",String.valueOf(number));}

%>你是第<%=number%>个用户访问本网站。生活中的访问控制(登录验证)下载电子书时,系统会提示用户登录网站点击下载,系统转入登录页面每次下载之前,系统如何判断用户是否已经登录?如何实现访问控制系统如何保存不同用户的登录信息?12访问控制流程图:用户登录进入用户注册页面系统保存该用户的登录信息进入欲访问的页面是否是注册用户否是用户直接访问某个页面进入用户登录页面显示该页面内容系统是否保存了该用户登录信息否是登录验证(访问控制)就是基于session来完成的增加登录验证No.表达式描述1loginCheck.jsp数据提交,以完成登陆的验证,如果登陆成功(用户名和密码固定:qq/123),则保存属性;如果登陆失败,则显示登陆失败的信息,页面跳转回login.jsp,等待用户继续登陆。2welcome.jsp此页面要求在用户登陆完成之后才可以显示登陆成功的信息,如果没有登陆,则要给出未登陆的提示,同时给出一个登陆的连接地址。3logout.jsp此功能完成登陆的注销,注销之后,页面要跳转回login.jsp,等待用户继续登陆。判断是否是新的用户<%@pagecontentType="text/html"pageEncoding="GBK"%><html><head><title>高端Java培训</title></head><body><%

if(session.isNew()){ //用户是第一次访问%>

<h3>欢迎新用户光临!</h3><% }else{ //用户再次访问本页面%>

<h3>您已经是老用户了!</h3><% }%></body></html>取得用户的操作时间在session对象中,可以通过getCreationTime()方法取得一个session的创建时间,也可以使用getLastAccessedTime()方法取得一个session的最后一次操作时间,那么通过这两种操作,就可以计算出一个session的操作时间。取得一个session的操作时间<%@pagecontentType="text/html;charset=GBK"%><%

longstart=session.getCreationTime(); //取得创建时间

longend=session.getLastAccessedTime(); //取得最后一次操作时间

longtime=(end-start)/1000; //得出操作的秒%><h3>您已经停留了<%=time%>秒!</h3>例5-10(P117)小结2session对象最主要的功能就是用于登陆验证操作当用户第一次连接到服务器上时会自动分配一个新的sessionidapplication对象application对象是javax.servlet.ServletContext接口的实例化对象,从单词上翻译表示的是整个Servlet的上下文,ServletContext代表了整个容器的操作4StringgetRealPath(Stringpath)普通得到虚拟目录对应的绝对路径No.方法类型描述1publicvoidsetAttribute(Stringname,Objecto)普通设置属性的名称及内容2publicObjectgetAttribute(Stringname)普通根据属性名称取得属性3publicvoidremoveAttribute(Stringname)普通删除指定的属性例5-14(P124)制作站点计数器

<%

//获取一个Object对象StringstrNum=(String)application.getAttribute("count");

intcount=0;

//如果一个Object对象存在说明有用户访问

if(strNum!=null)

//类型转化后值加1count=Integer.parseInt(strNum)+1;

//人数值加1后重新对count赋值application.setAttribute("count",String.valueOf(count));

%>您是第<%=application.getAttribute("count")%>位访问者!application对象application对象保存Web应用程序中公有的数据,可存放全局变量。服务器启动后自动创建application对象,此对象将一直有效,直到服务器关闭。不同用户可以对该对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此对象的访问。application对象和session对象的区别是:在使用session对象时,一个客户端对应一个session对象,而使用application对象时,为多个应用程序保存信息,对于一个容器而言,在同一个服务器中的JSP文件中共享一个application对象。

例5-15(P125)<%@pagecontentType="text/html"pageEncoding="UTF-8"%><html><head><metahttp-equiv="Content-Type"content="text/html;charset=UTF-8"><title>application对象应用实例2</title></head><body><br>JSP引擎名及Servlet版本号:<%=application.getServerInfo()%><br><%application.setAttribute("name","Java程序设计与项目实训教程");out.print(application.getAttribute("name")+"<br>");application.removeAttribute("name");out.print(application.getAttribute("name")+"<br>");%></body></html>例5-15(P125)pageContext对象是javax.servlet.jsp.PageContext类的实例,主要表示的是一个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论