JSP内置对象(普通)

  • 格式:doc
  • 大小:62.50 KB
  • 文档页数:5

一、本章要求掌握的知识点:

二、本章知识点:

(一)out对象

Out对象专门用于向客户端输出内容。

1、out对象的常用方法(参照书籍)

(1)public abstract void clear()

清除缓冲区中的内容,不将数据发送至客户端。

(2)public abstract void clearBuffer()

将数据发送至客户端后,清除缓冲区中的内容。

(3)public abstarct void close()

关闭输出流。

(4)public abstract void flush()

输出缓冲区中的数据。

(5)public int getBufferSize()

获取缓冲区的大小。缓冲区的大小可用<%@ page buffer="size" %>设置。

(6)public abstract int getRemainning()

获取缓冲区剩余空间的大小

(7)public boolean isAutoFlush()

获取用<%@ page is AutoFlush="true/false"%>设置的AutoFlush值。

(8)public abstract void newLine()

输出一个换行字符,换一行。

(9)public abstract void print()

显示各种数据类型的内容。

(10)public abstract void println()

分行显示各种数据类型的内容。

2、实例:JSP_Test/ jsp_neizhiduixiang_test/out/out_test1.jsp

(二)request对象

request对象是和请求相关的HttpServletRequest类的一个对象,该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以查看请求参数的配置情况(调用getParameter来实现)、请求的类型(如Get、Post、Head等)和已经请求的HTTP头(如cookie、Referer等)。

1、request对象的常用方法(参照书籍)

2、使用request获取表单信息

(1)实例:JSP_Test/ jsp_neizhiduixiang_test/request/1/index.jsp

(2)实例:JSP_Test/ jsp_neizhiduixiang_test/request/2/index.jsp

(3)实例:JSP_Test/ jsp_neizhiduixiang_test/request/3/index.jsp

(4)实例:JSP_Test/ jsp_neizhiduixiang_test/request/5/index.jsp

3、实训:制作一个网站的登录系统,要求能判断用户输入的账户和密码功能,如果输入正确,将进入登录页面,如果输入错误,将进入错误提示页面。

参照:JSP_Test/ jsp_neizhiduixiang_test/request/4/index.jsp

(三)HTML相应机制 当用户通过浏览器访问一个Web站点时,首先向服务器发送一个连接请求,请求内容包括服务器的地址和请求页面的路径。服务器根据用户请求的路径以及页面路径组合起来查找到相应的页面,然后返回客户端。客户端在向服务器端提交数据时有多种数据提交机制,最常用的是GET方法和POST方法。

1、GET提交

安全性较小,数据量较小

2、POST提交

安全性较高,数据量较大

3、案例:JSP_Test/jsp_neizhiduixiang_test/xiangyingjizhi_test/login.jsp

从该例中了解GET和POST的区别。

(四)Response对象

response是和应答相关的HttpServletResponse类的一个对象,封装了服务器对客户端的响应,然后被发送到客户端以响应客户请求。response对象产生的对客户的请求做出动态的响应,并向客户端发送数据。HttpServletResponse对象具有页面作用域。

1、response对象的常用方法(参照书籍)

2、案例1:使用response设置相应头属性。

JSP_Test/jsp_neizhiduixiang_test/response/1/index.jsp

扩展:JSP_Test/jsp_neizhiduixiang_test/response/2/index.jsp

3、案例3:使用response实现重定向

JSP_Test/jsp_neizhiduixiang_test/response/3/index.jsp

知识点补充:forward()仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;redirect()则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接!

4、案例4:使用response实现刷新页面

JSP_Test/jsp_neizhiduixiang_test/response/4/index.jsp

(五)Session对象

session对象是与请求相关的HttpSession对象,它封装了属于客户会话的所有信息。

session对象也是一个JSP内置对象,在第一个JSP页面被装载时自动创建,完成会话期管理。

从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,服务器应当通过某种办法知道这是同一个客户,这就需要session对象。

session对象的Id是指当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个session对象,同时分配一个字符类型的Id号,JSP引擎同时将这个Id号发送到客户端,存放在Cookie中,这样session对象和客户之间就建立了一一对应的关系。

当客户再访问连接该服务器的其他页面时,不再分配给客户新的session对象,直到客户关闭浏览器后,服务器端将该客户的session对象取消,服务器与该客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的session对象。

另外,一般默认session对象存在的时间为20分钟,即如果在这20分钟内你没有刷新页面或打开该网站其他页面,则该session对象自动销毁。

1、session对象的常用方法(参照书籍)

2、实例1:使用session实现用户登录,当用户输入账户密码正确时,转到登录成功页面,当用户输入账户密码错误时,转到错误页面

JSP_Test/jsp_neizhiduixiang_test/session/1/index.jsp

(六)application对象

application对象提供了对javax.servlet.ServletContext对象的访问,用于多个程序或者多个用户之间共享数据。

服务器启动后就产生了这个application对象,当客户在所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到服务器关闭。与session不同的是,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。

1、application对象的常用方法(参照书籍)

2、application对象与session对象的区别

(1)application存在于服务器端,随服务器关闭而消失;session存在于客户端浏览器,随浏览器关闭而消失

(2)Session针对单个访问者,也就是每个访问者的Session都是独立的,保存在Session中的值都不相同;Application针对整个应用程序,保存在Application变量中的值对所以访问者都是一样的,因为他们用的都是同一个对象。

例如:Session相当于个人邮箱,只能一个人看,Application相当于告示栏,每个人都能看。

3、实例1:使用application制作站点计数器(也是最常用的计数器)

JSP_Test/jsp_neizhiduixiang_test/application/1/index.jsp

操作练习:先在一个网页运行,然后关闭浏览器,再打开浏览器运行该网页,可以发现计数器一直在增加。这就证明了application对象中的数据一直在重新服务器后,才会重新进行初始化。

(七)cookie对象

Cookie是Web服务器保存在用户硬盘上的一段文本,Cookie允许一个Web站点在用户的计算机上保存信息并且随后再将其取回。

服务器读取Cookie的时候,只能够读取到这个服务器相关的信息。而且,浏览器一般只允许存放300个Cookie,每个站点最多存放20个,并且每个站点只能读取自己的cookie。

另外,每个Cookie的大小为4KB,根本不会占用多少空间。同时,Cookie是有时效性质的。例如,设置了Cookie的存活时间为1min,则1min后当前Cookie就会被浏览器删除。因此,使用Cookie不会带来太大的安全威胁 。

1、cookie对象的基本操作

(1)创建Cookie对象 Cookie c=new Cookie("cookieNam","cookieValue");

其中cookieName为Cookie对象的名称,未来获取Cookie的时候需要使用。cookieValue为Cookie对象的值也就是储存用户的信息如用户名、 密码等。

这步完成了只是实例化了对象

(2)传送Cookie对象

response.addCookie(c);

(3)读取Cookie对象,注意或得到的是所有Cookie的数组对象,需要循环遍历使用。

Cookie[] c=request.getCookies();

if(c!=null)

for(int I=0;I

if("username".equals(c[I].getName()))

out.println(c[I].getValue());

(4)设置Cookie对象有效时间,单位为秒,负值表示当浏览器关闭时,Cookie将会被删除。零值则是要删除该Cookie。如:

c.setMaxAge(3600);

2、实例1:当用户登录成功后,使用cookie保存用户名和密码,然后登录到系统页面;如果登录失败,则重新返回登录界面重新登录。(三个页面,登陆页面、判断登陆页面、登陆成功页面)

JSP_Test/jsp_neizhiduixiang_test/coonkie/1/index.jsp

操作练习:

(1)首先输入正确的用户名和密码登陆,然后退出浏览器,直接在网址输入登陆成功页面的网址,结果如何?