`

JSP动态网页程序设计(II)

阅读更多

response对象与out对象:

response对象:

      主要用于将JSP处理后的结果传回到客户端,以便作为HTML代码的动态内容。亦即response对象用于对客户的请求做出动态的响应,向客户端发送数据。response对象源于javax.servlet.http.HttpServletRespone和javax.servlet.ServletResponse。

      该对象的功能与request正好相反:

      request对象用于提交用户信息;

      response对象用于将服务器端数据发送到客户端浏览器。

常用方法:

void sendRedirect(String locating)      把响应发送到另外一个位置进行处理。

String encodeRedirectURL(String url)  对sendRedirect()方法使用的URL进行编码。

void setBufferSize(int size)    设置以kb为单位的缓冲区大小。

void reset()                            清空buffer中的所有内容。

void setCharacterEncoding(String charset)   设置响应使用的字符编码格式。

String getCharacterEncoding()                       获取响应的字符编码格式。

void setContentType(String type)     设置响应的类型。

String getContentType()                    获取响应的类型。

void setContentLength(int length)    设置数据传输的长度(bytes)

void setHeader(String name, String value)       设置指定名称的HTTP头的值。

void setDateHeader(String name, long value)  设置指定名称的Data类型的HTTP头的值。

void setIntHeader(String name, int value)        设置指定名称的Int类型的HTTP头的值。

void addCookie(Cookie Cookie)  添加一个Cookie对象,保存客户端信息。

String encodeURL(String url)       将URL进行编码,回传包含session ID的URL。

void sendError(int xc, String msg)  发送错误,包含状态码和错误信息。

boolean isCommitted()  判断服务器端是否已经将数据输出到客户端。

例如:

response.setContentType("application/msword; charset=utf-8");

    setContentType()方法可以动态地进行文档响应类型的设定,若设置响应的类型为application/msword,则当前网页将以MSWord文档类型进行存储。

response.setHeader("Refresh", "5");  //指定了页面每过5s自动刷新。

response.setHeader("Refresh", "10; url=http://www.sina.com");//在网页打开后10s将跳转到指定的网页。

response.sendRedirect("http://www.sun.com");//实现客户的重定向。

 

out对象:

     out对象的方法 是控制缓冲区数据输出的操作。源于javax.servlet.jsp.jspWriter,它表示一个输出流,可用来向客户端输出数据。

常用方法:

void clear()            清除输出缓冲区的内容,不输出到客户端。

void clearBuffer()   清除输出缓冲区的内容,输出到客户端

void close()   关闭输出流,清除所有的内容。

void flush()    输出缓冲区中的数据,然后清空缓冲区。会在屏幕上输出数据后再清空缓冲区。

int getBufferSize()    获取以KB为单位的目前缓冲区大小。

int getRemaining()    获取以KB为单位的缓冲区中空闲空间大小。

void newLine()          输出一个换行符。

void print(data)         将指定类型的数据输出到HTTP流中,不换行。

void println(data)      将指定类型的数据输出到HTTP流中,换行。

boolean isAutoFlush()  是否可以自动刷新缓冲区,结果取决于page指令的AutoFlush属性。

 

session对象与application对象:

session对象:(表示目前个别用户的会话状态,用来识别每个用户)

    为了跟踪用户的操作状态。(当用户登录网站,系统将为其生成一个独一无二的session对象,用以记录修改用户的个人信息。)

    session对象一般在服务器上设置一个30分钟的过期时间,当客户停止活动后自动失效。

    session对象是一个JSP内置对象,它在第一个JSP页面被转载时自动创建,完成会话期管理。(从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束为一个会话。)

    源于javax.servlet.http.HttpSession,它是一个建立Cookie机制上的友好界面,session对象的信息保存在服务器端,session对象的id保存在客户机的Cookie中。

常用方法:

Object getAttribute(String name)                   获取与指定名称相关联的session属性值。

void setAttribute(String name, String value)  设置指定名称的session属性值。

boolean isNew()    判断一个session是否由服务器产生,客户端并没有使用。

Enumeration getAttributeNames()     取得session对象内所有属性的集合。

long getCreationTime()                      获取session对象的创建时间。

String getId()                                     获取session标识。(唯一标识)

long getLastAccessedTime()              获取与当前session相关的客户端最后一次访问的时间。

int getMaxInactiveInterval(int interval)      获取总时间(秒),-1为永不过期。

void setMaxInactiveInterval(int interval)   设置session的有效期。

void invalidate()                                销毁session对象。

void removeAttribute(String name)   移除指定名称的session属性。

ServletContext getServletContext()  获取一个该JSP页面对应的ServletContext对象实例。

 

application对象:

      当服务器启动后就产生了application对象,一旦创建直到服务器关闭消失。

      在JSP服务器运行时刻,仅有一个application对象,它由服务器创建,也由服务器自动清除,不能被用户创建和清除,只能创建这个application对象的同步副本。 

      当客户在所访问网站的各个页面之间浏览时,所使用的都是同一个application对象。

      源于javax.servlet.ServletContext类,该对象主要用于存储应用程序信息。

常用方法:
Object getAttribute(String name)                     获取由name指定的application属性。

void setAttribute(String name, Object value)   设置指定的application属性的值,属性值必须是对象

Enumeration getAttributes()             获取所有的application属性。

void removeAttribute(String name)   移除指定名称的application属性。

ServletContext getContext(String uripath)     获取当前应用的ServletContext对象。

String getInitParameter(String name)    获取由name指定的application属性的初始值。

Enumeration getInitParamerters()         获取所有的application属性的初始值的集合。

RequestDispatcher getNamedDispatcher(String name)为指定名称的Servlet对象返回一个RequestDispatcher对象实例。

RequestDispatcher getRequestDispatcher(String path)获取一个RequestDispatcher对象实例。

String getServerInfo()                  获取应用服务器版本信息。

String getServletContextName()  获取当前Web应用的名称。

 

异同:

1、都可以实现Web应用中信息的存储。

2、作用域不同:

      session对象是针对用户的,进入网站时,每一个用户都会分配到一个单独的session对象,即使该用户设置了与其他用户名称的session属性,也不会发生冲突。

      所有用户的application对象都是同一个,即所有用户共享这个内置的application对象,每一个用户都可以从各自浏览的JSP页面访问这个对象。

 

Cookie对象:

      Cookie对象不是JSP的内置对象。作用与session对象类似,只是Cookie保存在客户端,session保存在服务器端。

      Cookie是Web 保存在客户端的一段数据文本。Cookie允许一个Web站点在客户端的计算机上保存信息并在以后再取回它。可以用Cookie保存用户的帐号和口令,JSP可以随时读取,验证用户的合法性;也可以将用户的浏览状态包才在Cookie中,下次用户再访问网页时,由JSP向浏览器显示个性化页面。

      源于javax.servlet.http.Cookie类。

常用方法:
getMaxAge()  setMaxAge() 读取或设置Cookie的有效时间(秒)。

                         未设置,Cookie只适用与当前的浏览会话。

                         为负值,代表浏览器关闭Cookie,即消失。

                         为0,表示删除Cookie。

                         为正值,代表Cookie有效时间的秒数。

getName()    读取Cookie的名称。

getPath()       setPath()      读取或设置Cookie使用的路径。

getSecure()   setSecure()   读取或设置标志,标示Cookie是否只应适用于SSL连接,或者适用于所有连接。

getValue()     setValue()     读取或设置与指定的Cookie关联的值。

getDomain()  setDomain()  允许我们指定Cookie适用的域。

向客户端发送Cookie:

    1、创建Cookie对象:通过Cookie类的构造函数创建。

         Cookie 对象名称 = new Cookie("名称","值");

    2、设置Cookie最大时效:

         c.setMaxAge(60*60*24*7);

    3、将Cookie发送到客户端中:使用response对象的addCookie()方法可以将设置完成的Cookie对象通过HTTP发送到客户端。

         response.addCookie(c);

从客户端读取Cookie:

     1、使用request对象的getCookie()方法读取保存到客户端的Cookie。

          Cookie [] cookies=request.getCookies(); //获取Cookie对象数组。

     2、执行getName()方法对比每个Cookie对象的名称,直到找到需要的Cookie为止。

     3、然后调用所获得的Cookie对象的getValue()方法,获取找到的Cookie的值。

例如:

Cookie [] cookies=request.getCookies();//获取Cookie对象数组
if(cookies!=null)
{
        for(int i=0; i<cookies.length; i++) //循环取出数组中每个Cookie
        {
                Cookie c=cookies[i];
                if("username".equals(c.getName())) //比较要查找的Cookie名与数组中的Cookie
                {
                         out.print(c.getValue());  //输出找到的Cookie的值
                 }
         }
}

 

修改Cookie的值:

      使用setValue()进行修改,调用response.addCookie()将修改后的Cookie发送到客户端。

      c.setValue("admin");  //设置Cookie的值

      response.addCookie(c);  //发送Cookie

删除Cookie:

      使用setMaxAge()将最大时效设置为0,调用response.addCookie()将修改后的Cookie发送到客户端,将从客户端删除Cookie。

      c.setMaxAge(0);    //将最大时效指定为0

      response.addCookie(c);  //发送Cookie

分享到:
评论

相关推荐

    JSP动态网站源代码

    JSP程序可以向服务器提出网页內容请求,生成动态网页内容。 9. JSP与JavaBean JSP与JavaBean可以集成,生成动态网页内容。JavaBean是指Java语言中的组件技术,可以与JSP程序集成,生成动态网页内容。 JSP动态网站...

    jsp动态网页设计指导书

    【JSP动态网页设计指导书】是一本针对JSP(JavaServer Pages)技术的实践教程,旨在帮助读者理解和掌握如何创建动态网页。JSP是一种基于Java的服务器端脚本语言,用于生成动态Web内容。本指导书通过一系列的实验和实...

    jsp网页程序设计教程

    总结,JSP网页程序设计不仅涉及网页内容的动态生成,还涵盖了服务器端的编程逻辑和用户交互。通过本教程,你将掌握如何使用JSP进行高效、灵活的网页开发。记得理论与实践结合,多动手实践,才能更好地掌握这一技术。

    JSP动态网页设计技术教程(书中13章源代码)

    JSP是目前最为流行的一门动态网页设计技术。本书精炼而全面地介绍了使用JSP进行实用网站开发所需要的基本知识,并着眼于开发过程的讲解。本书共分为13章,其中前11章分别介绍了JSP的基本概念,JSP开发工具的安装与...

    《JSP动态网页设计》项目教学法的研究与实践

    ### 《JSP动态网页设计》项目教学法的研究与实践 #### 一、项目教学法简介 项目教学法是一种强调理论与实践相结合的教学方法,它通过让学生参与到一个完整项目的实施过程中,来提升他们的综合能力和解决问题的能力...

    JSP程序设计从入门到精通355页.pdf

    JSP 程序设计从入门到精通 本书主要介绍了 JSP 程序设计的基础知识和高级技术,涵盖了 JSP 的概述、环境安装配置、语法介绍、变量、运算符、控制结构、函数、数组、对象等方面的内容。 JSP 概述 JSP(Java Server...

    JSP动态网页设计 PPT课件

    【JSP动态网页设计】是JavaWeb开发中的一个重要组成部分,主要负责创建交互式的、内容能够根据用户需求实时更新的Web应用程序。JSP全称为JavaServer Pages,它允许开发者使用Java语言来编写动态网页,结合HTML、CSS...

    基于JSP的动态网页制作报告

    ### 基于JSP的动态网页制作报告 #### 一、教学实习目的与背景 本次教学实习旨在通过实际项目加深学生对Java Server Pages (JSP)技术的理解和掌握,进一步提升学生在Web开发领域的实践能力。JSP是一种用于创建动态...

    jsp动态网站设计项目教程 张兴科

    【JSP动态网站设计项目教程】是一门针对JavaServer Pages(JSP)技术的实践性教学课程,由知名讲师张...《Java程序设计项目教程.pdf》可能是与本课程相关的辅助资料,可能包含了更多关于Java编程基础和项目实施的细节。

    jsp程序设计第2版习题解答含题目.docx

    jsp程序设计是基于Java的服务器端脚本语言,可以在服务器端生成动态的网页内容。jsp页面可以包含Html、CSS、JavaScript等多种语言元素,並可以与数据库进行交互,以生成动态的网页内容。 jsp页面设计 jsp页面设计...

    JSP网页程序设计PPT课件

    【JSP网页程序设计PPT课件】涵盖了JSP(Java Server Pages)的全面学习,旨在教授如何构建动态网页程序。课程目标不仅是理论知识的传授,还包括实践技能的锻炼,帮助学员理解Web程序设计的核心技术和JSP的工作原理。...

    JSP网页程序设计教程.rar

    **JSP网页程序设计教程** 本教程主要涵盖了JavaServer Pages(JSP)技术,这是一种用于构建动态网站的服务器端编程语言。JSP是Java技术的一部分,它允许开发者将静态HTML内容与动态Java代码结合起来,创建交互式的...

    JSP动态网页制作基础培训教程源代码.rar

    修改JSP程序文件connectdb.sql,将如下语句: Connection con= DriverManager.getConnection(url,"sa","123"); 中的“123”修改为读者计算机上SQL Server的sa密码。 4.启动SQL Server服务和Tomcat服务器,打开...

    JSP网页程序设计

    **JSP网页程序设计** JavaServer Pages(JSP)是一种由Sun Microsystems公司推出的动态网页开发技术,它允许开发者将静态HTML与动态Java代码相结合,创建交互式的Web应用程序。JSP技术是基于Java平台的,因此它具有...

    jsp程序设计课本代码

    《jsp程序设计课本代码》是基于Java Server Pages(JSP)技术的一本教材,由张跃平和耿祥义两位知名作者撰写。该书旨在帮助读者深入理解和掌握JSP编程,通过实例教学来阐述JSP在Web应用开发中的核心概念和技术。 ...

    《Jsp动态网页设计》实验指导书

    【JSP动态网页设计】实验指导书主要针对...通过以上十个实验,初学者可以逐步掌握JSP网页设计的基本技能,包括环境搭建、基本语法、内置对象、文件操作、数据库交互以及JavaBean的使用,为后续的Web开发奠定坚实基础。

    JSP动态网页设计基础

    **JSP动态网页设计基础** Java Server Pages(JSP)是一种动态网页技术标准,它基于Servlet和整个Java体系,用于构建Web应用程序。JSP的主要优点在于它可以创建安全且跨平台的站点,因为JSP是在服务器端运行的程序...

    JSP网络程序设计JSP网络程序设计

    **JSP网络程序设计**是专业必修课程,主要针对计算机网络、操作系统概论和静态网页(HTML)及高级语言(JAVA)等基础知识扎实的学生。该课程旨在教授学生在网络环境下如何进行编程,掌握软件实现技术和互联网应用层...

    动态网页JSP实验:MVC模式

    本实验以“动态网页JSP实验:MVC模式”为主题,旨在帮助开发者深入理解并熟练运用MVC(Model-View-Controller)设计模式来构建高效、可维护的JSP应用。 首先,我们要理解什么是MVC模式。MVC模式是一种软件设计模式...

Global site tag (gtag.js) - Google Analytics