ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:24.77KB ,
资源ID:10493246      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10493246.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(JSP内置对象下.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

JSP内置对象下.docx

1、JSP内置对象下1、课程名称:JSP内置对象2、知识点2.1、上次课程的主要知识点1、 JSP中的四种属性范围:page、request、session、application;2、 request对象的使用:getParameter()、getParmeterValues()、getContextPath()、getRemoteAddr()、setCharacterEncoding();3、 完全是围绕着JSP + JDBC的开发,可以发现代码极其重复。2.2、本次预计讲解的知识点1、 response对象的使用;2、 session对象的使用,并且使用session修改登陆程序;3、 co

2、nfig及application对象的使用。3、具体内容3.1、response对象(重点) 服务器端接收客户端的请求使用的是request对象,而服务器端对客户端请求的回应使用的就是response对象,response对应的类型是:javax.servlet.http.HttpServletResponse,而在实际的工作之中,response对象主要有以下三个作用:设置头信息、请求重定向(跳转)、操作Cookie。3.1.1、设置头信息 头信息:头信息是附加在请求和回应上的一些内容。范例:观察请求的头信息 既然要想取得头信息,现在依靠的肯定是request对象,在request对象之中提

3、供了如下的几个方法; |- 取得全部头信息的名字:public Enumeration getHeaderNames() |- 取得头信息的内容:public String getHeader(String name) - 但是在这些头信息之中有一个头信息是最需要关注的,那么就是定时刷新,可以使用refresh的头信息完成。 现在声明了一个全局变量,之后每次一刷新,变量的内容就自增,一般的刷新频率都是2秒一刷新。 除了定时刷新之外,设置此类的头信息也可以完成定时跳转的操作功能。恭喜您,注册成功,两秒后将跳转到首页!如果没有跳转,请按这里! 定时跳转之后的地址栏发生了改变,所以此跳转属于客户端跳

4、转。3.1.2、页面重定向 在respose对象之中有一个跳转的操作:public void sendRedirect(String location) throws IOException范例:观察跳转面试题:请解释JSP中两种跳转的区别? 在JSP中存在两种跳转: :服务器端跳转,可以传递request属性,无条件跳转,执行之后立刻跳转; response.sendRedirect():客户端跳转,不能传递request属性,整个页面执行完之后才进行跳转。3.1.3、设置Cookie Cookie是服务器端保留在客户端上的一组数据,例如:经常可以在某些论坛上发现有记住密码的功能,实际上这些

5、密码都是保存在客户端上的,而保存的数据就称为Cookie。 但是由于Cookie是保存在客户端,所以安全性是相当的差的,在JSP之中专门提供了Cookie的操作类。 构造:public public Cookie(String name,String value),直接传入要设置的Cookie的名称和内容; 取得Cookie的名称:public String getName() 取得Cookie的内容:public String getValue() 设置Cookie的保存时间:public void setMaxAge(int expiry),单位是秒 当Cookie的对象准备完成之后,下面

6、可以直接利用response对象的方法:public void addCookie(Cookie cookie) 现在的Cookie设置到了客户端之后,如果服务器要想取得,则依靠request对象,之所以要使用request对象,主要的原因是因为所有的Cookie会随着用户的请求头信息一起发送到服务器端。 在request对象中提供了接收Cookie的方法:public Cookie getCookies()% / 取得全部的Cookie Cookie c = request.getCookies() ; for(int x=0;x - 以上的程序运行之后发现可以取得了所设置的Cookie,但

7、是同时又增加了以下一个Cookie:JSESSIONID - CC2B62B3293C76BA7B9FF3F9B209AD81 此字符串为服务器端自动设置到客户端上的一个标记,这个标记就是SESSION ID,而且是32位。 在默认的情况下,一个Cookie只会保存在客户端浏览器上,而没有真正的保存在了系统文件之中,所以要想保存,就必须设置Cookie的保存时间,使用setMaxAge()方法完成。 要想真正保存,必须设置保存的时间。3.3、session对象(重点) session在web中表示的是每一个用户的操作,session是javax.servlet.http.HttpSession

8、接口的实例,而此接口没有任何的继承关系,因为session只是HTTP协议的范畴。3.3.1、session id session表示的是每一个用户,那么服务器端如何去区分每一个用户呢? 在每一个用户第一次连接到服务器上的时候,服务器会为这个用户分配一个唯一的编号,而这个编号就称为SESSION ID,每个用户的ID不一样,所以服务器端就根据这些ID的不同来区分不同的用户。 如果要想取得ID方法:public String getId(),此方法没有对应的setter,因为session id如果让用户设置了就会出现重复的问题。范例:观察SESSION ID 可以发现每一个SESSION ID

9、的长度都是32位,而且这个SESSION ID的内容与自动设置到浏览器中Cookie的内容是一样的,所以SESSION实际上是利用到了Cookie的处理机制,每次客户端发送请求的时候都会将自己对应的SESSION ID发送到服务器端上,服务器端接收到此ID之后,与服务器端自己保留的SESSION ID相比较,如果成功了,则取出用户的信息,如果没有成功,则认为是一个新的SESSION。3.3.2、登陆检查 在实际的应用之中,session的最大用处就是完成用户的登陆验证及注销的操作,session中存在着属性的设置方法,而且使用session属性范围保存的对象不管是何种跳转都能够保留下来,如果是

10、新的用户则没有,那么就可以根据此特性完成用户的登陆检查。范例:编写login.jsp用于用户的登陆操作 用户名: 密  码: 您已登陆成功,欢迎回来! 两秒后跳转到首页,如果没有跳转,请按这里! 错误的用户名和密码! 由于登陆成功之后可以设置session属性,而此属性又不受跳转的限制,所以无论如何跳转,都可以取得,随后就通过此属性是否存在来判断用户是否已登陆。范例:欢迎页 welcome.jsp 欢迎的光临! 注销登陆! 您还未登陆,请先登陆! 既然用户可以登陆,那么也就可以注销,在session对象中提供了一个方法:public void invalidate()范例:

11、注销页 logout.jsp 这种代码就是一个典型的用户的登陆验证操作,可是从现实的生活中来讲,这种登陆操作往往还会增加一个验证码功能,之所以会有此功能,主要是防止机器人程序。3.3.3、判断是否是新的session 在session对象之中提供了一个方法,用于判断一个session是否是新的(就是刚创建的) 方法:public boolean isNew() 您好,欢迎您的光临! 您已经来过了,别来了! 而在实际的工作之中,session的最大功能就是登陆的验证及注销的实现。3.4、application对象(重点) application是javax.servlet.ServletCont

12、ext接口的实例,此对象表示的是Servlet上下文,如果按照通俗的理解来讲,就是表示的整个WEB容器的操作,在application对象之中属性操作也是一个经常使用到的操作,但是之前也强调了由于此类属性保存在服务器上,所以这种属性越少越好,另外在这个对象之中有一个最常用的方法: 取得虚拟目录对应的真实路径:public String getRealPath(String path)范例:观察取得真实路径 现在找到的是在“”中配置的“docBase”属性的内容,另外需要注意的是,在实际的工作之中,很少会有人直接使用application进行操作,而都会使用getServletContext()

13、方法来代替application。 以后只要是看见了getServletContext()方法肯定表示调用的就是application对象。 既然现在已经可以取得真实路径了,那么下面就可以利用此操作完成文件的输出。范例:定义一个输入的文本框,输入文件名称及文件内容 JavaScript程序 输入文件名称: 输入文件内容: 范例:接收文件内容并保存文件,使用PrintStream输出最方便。 现在文件已经成功的保存了,如果要想显示则需要输入流,使用Scanner类完成。范例:读取hello.txt文件% File file = new File(this.getServletContext().

14、getRealPath(/) + File.separator + myfile + File.separator + hello.txt) ; / 输出文件路径 StringBuffer buf = new StringBuffer() ; Scanner scan = new Scanner(new FileInputStream(file) ; scan.useDelimiter(n) ; / 设置分割符 while(scan.hasNext() buf.append(scan.next().append() ;/ 手工处理换行操作 scan.close() ;% 一定要记住在HTML之

15、中,所有的换行是会被忽略掉的,所以必须手工设置“”以完成换行的操作。 既然已经可以操作文件了,那么下面就可以继续完成一个网站计数器的操作,如果要想完成此类程序要考虑: 本计数的操作即使服务器关闭了也应该可以将数字保存,所以肯定利用文件; 当一个用户第一次访问的时候我才应该开始计数,使用session对象的isNew()方法; 还要考虑如果访问的数据量过大应该使用BigInteger类操作。范例:完成网站的计数器 在开发目录之中,建立一个count.txt的文本,用于保存每次的增长的数值% BigInteger num = load() ; / 读取已有的内容 if(session.isNew() / 是新的session,则处理 synchronized(this) num = num.add(new BigInte

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1