JSP数据交互(一)

1.什么是JSP内存对象?

JSP内存对象,就是在编写JSP页面时,不需要做任何声明就可以直接使用的对象,例如,下面的代码:

<%

int   []  num={60,70,80}

for(int  i:num){

out.println(i);

}

%>

代码 out.println()可以实现页面的输出显示,但是在代码中并没有任何地方声明或创建这个out对象,没有创建就可以直接使用的原因是Out对象是JSP内存对象之一

除了out对象以外,在JSP中海油依他一些内存对象

内置对象 代表内容 范围
request 触发服务调用的请求 request
response 对请求的应答 page
session 为请求的客户创建的session对象 session
application 从 servlet 配置对象获得的 servlet 上下文(如在getServletConfig() ,getContext()的调用中) application
out 向输出流写入内容的对象 page
pageContext 本 JSP 的页面上下文 page
page 实现处理本页当前请求的类的实例 page
config 本 JSP 的 ServletConfig page
exception 表示JSP页面运行时产生的异常 Page

现在给大家讲一下今天学过的requset内置对象

equest 对象是 javax.servlet.httpServletRequest类型的对象。该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。例如我们在FORM表单中填写的信息等,是最常用的对象。常用的方法有:getParameter、getAttribute,getParameterNames 和getParameterValues通过调用这几个方法来获取请求对象中所包含的参数的值。

getParameter(Strings) : 获取表单提交的信息
                  String  s = request.getParameter("name");

getAttribute(Strings): 获取指定属性的值,如该属性值不存在返回Null

String  s=request.getAttribute(“name”);

setAttribute(String key,Object obj):设置指定名字参数值

Strings=request.setAttribute(“zhuo”,name);
getProtocol() :获取客户使用的协议

getServletPath() :获取客户提交信息的页面

getMethod() :获取客户提交信息的方式  get或post
               String  s = request.getMethod();
getHeader() :获取HTTP头文件中的accept、accept-encoding和host的值
                String  s = request.getHeader("accept");

getRemoteAddr() :获取客户的ip地址
getServerHost() :获取客户机的名称

getServerName() :获取服务器名称
getServerPort() :获取服务器的商口号
getPamameterNames():获取客户端提交的所有参数的名字
                Enumeration  enum = request.getParameterNames();
                while(enum.hasMoreElements()){
                           String  s = (String)enum.nextElement();
                           out.println(s);      
                }

getRequestURI():获得发出请求字符串的客户端地址。

getSession(Boolean create):返回和当前客户端请求相关联的HttpSession对象。如果当前客户端请求没有和任何HttpSession对象关联,那么如果create变量为true,则创建一个HttpSession对象并返回,       反之返回null。一般与setArribute连用,例如:request.getSession().setAttribute(“zhuo”,name);

getQuertString():返回查询字符串,该字符串由客户端以get方法向服务器端传送。查询字符串出现在页面请求“?”的后面,例如:http://www.njnu.edu.cn/hello.jsp?name=Jack。

getContentType():获取客户端请求的MIME类型。如果无法得到该请求的MIME类型,则返回-1。

getParameterValues(String name):获得指定参数的所有值,参数由name指定。一般应用与要取得多个值当中,比如数组。

String[] goodsId=request.getParameterValues("goodsId");
      String[] newNum=request.getParameterValues("newNum");

然后是response内置对象

对客户的请求做出动态响应,向客户端发送数据。响应客户请求时创建,响应结束时销毁。(一次响应产生一个response对象)

setRedirect(url):把响应发送到另一个指定的页面(url)进行处理。这是最常用的一个方法

sendError(int sc):向客户端发送错误信息。例如:“505指示服务器内部错误”, “404指示网页找不到的错误”

addHeader(String name,String value):添加http头文件,该Header将会传到客户端去,如果有同名的Header存在,那么原来的Header会被覆盖。

setHeader(String name,String value):设定指定名字的http文件头的值,如果该值存在,那么它将会被新的值覆盖。

containsHeader(String name):判断指定名字的http文件头是否存在,并返回布尔值。

flushBuffer():强制将当前缓冲区的内容发送到客户端。

addCookie(Cookie cookie):添加一个Cookie对象,用来保存客户端的用户信息,可以用request对象的getCookies()方法获得这个Cookie。

接下来是 session

在页面的page指令加上session="true" 或缺省 情况下以及在servlet中使用request.getSession();的方式进行创建。超时或服务停止时,session结束。(一个用户对应一个session对象)
   什么是session对象? ----- 它是一个jsp内置对象,它在第一个jsp被装载时自动创建,完成会话期管理。从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离  开这个服务器结束(或者超                          时),被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要创建session对象。
 session对象的ID -----当一个客户首次访问服务器上的一个jsp页面时,jsp引擎会产生一个session对象,同时分配一个String类型的的ID号,jsp引擎同时将这个ID号发送到客户端,存放在cookie中,这样,              session对象直到客户关闭浏览器后,服务器端,该客户的session对象才会消失,会并,和客户的会话对应关系消失。当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的session对象。

getAttribute(String name):获得指定名字的属性,如果该属性不存在,将会返回null。

getAttributeNames():返回session对象中存储的每一个属性对象,结果集是一个Enumeration类的实例。

g etCreationTime():返回session对象被创建的时间,单位为毫秒。

getId():返回session对象在服务器端的编号。每生成一个session对象,服务器都会给它一个编号,而且这个编号不会重复,这样服务器才能根据编号来识别session,并且正确地处理某一特定的session及其提供的服务。

getLastAccessedTime():返回当前session对象最后一次被操作的时间,单位为毫秒。

getMaxInactiveInterval ():获取sessionn对象的生存时间,单位为秒。

setMaxInactiveInterval (int interval):设置session对象的有效时间(超时时间),单位为秒。在网站的实际应用中。

例如:设置有效时间为200秒。

<%session.setMaxInactiveInterval(200);%>

removeAttribute(String name):删除指定属性的属性值和属性名。

setAttribute(String name,Java.lang.Object value):设定指定名字的属性,并且把它存储在session对象中。

invalidate():注销当前的session对象。

在讲解一下什么是转发与定向

forward 是在服务器端起作用,当使用forward()时,Servlet engine传递HTTP请求从当前的Servlet or JSP到另外一个Servlet,JSP 或普通HTML文件,也即你的form提交至a.jsp,在a.jsp用到了forward()重定向至b.jsp,此时form提交的所有信息在 b.jsp都可以获得,参数自动传递. 
但forward ()无法重定向至有frame的jsp文件,可以重定向至有frame的html文件,同时forward()无法在后面带参数传递,比如 servlet?name=frank,这样不行,可以程序内通过response.setAttribute("name",name)来传至下一个页面.重定向后浏览器地址栏URL不变.

response.sendRedirect()是在用户的浏览器端工作,sendRedirect()可以带参数传递,比如servlet?name=frank传至下个页面,同时它可以重定向至不同的主机上,且在浏览器地址栏上会出现重定向页面的URL.sendRedirect()可以重定向有frame的jsp文件.

那么他们俩的区别是什么呢?

1、jsp:forward动作执行的是强制性跳转,写在其后面的语句不会执行。而sendRedirect()方法跳转至页面后,还会执行后面的代码; 
    2、jsp:forward动作是将page的值指定的页面直接送给IE。sendRedirect()方法是告诉IE要跳转页面,IE再自动调用其参数指定值的页面,其间经过三趟通讯; 
     3、jsp:forwart动作切断了本面与跳转页的上下文联系,而sendRedirect()方法执行跳转后,还能使用上页传递过来的信息

over

时间: 2024-10-05 04:41:43

JSP数据交互(一)的相关文章

JSP数据交互习题错误总结

1:如果注册完页面有中文字符需要在提交后的页面显示注册信息,切记先把接受到的request的编码方式改为中文:request.setCharacterEncoding("utf-8");不然会出现乱码2:提交表单的时候,错误的把事件绑定到了submit按钮上了,应该绑定到表单标签,获取表单信息! 因为跳转后的页面需要显示上个注册页面的信息,用request.getParameter(String name);这个方法的作用是获取上个请求页面的所有提交的表单信息, 这个方法只能获取有na

#学习笔记#JSP数据交互

#学习笔记#JSP数据交互 数据库的使用方式: 当用户在第一个页面的查询框输入查询语句点提交的时候我们是用什么样的方式完成这个查询的? 答:我们通过在第一个页面提交表单的形式,真正的数据库查询时在第二个服务器页面进行的,第一个request对象里面放置了查询的内容,我们可以通过request.getParameter()方法获得,在服务器内我们之间把所有的查询直接用html语句输出是很困难的,所以我们把查询的结果赋给request的Attribute,使用request.sex`x`x``tAt

jsp数据交互基础

一.动态网页开发基础 1.动态网页:能跟用户进行交互的网页,能够处理用户请求的网页 2.B/S架构:浏览器:客户端零维护:与操作系统平台的关系最小化:在响应速度和安全性上需要花费更多设计成本 C/S架构:需要专门的客户端应用:客户端需要单独维护和升级:对客户端操作系统一般有限制:能充分发挥客户端处理能力,客户端响应快 3.URL:Uniform Resource Locator统一资源定位符 http://localhost:8080/xxxx http:协议 localhost:8080代表I

JSP数据交互(二)和Servlet基础

01.Application原理与应用 01.application对象的作用域范围是整个应用服务,而它在应用中所承担的责任就类似于一个全局变量.只要服务启动,则application对象就会存在. 02.在一个应用中只有一个application,每一个用户都会共享这一个application对象. 03.通过统计网站访问次数来讲解application的用法 02.对象作用域 03.Cookie简介 解析:cookie是Web服务器保存在客户端的一系列文本信息,根据域名和端口号区分是否保存成

JSP数据交互【一】

一.jsp中java小脚本    1.<% java代码段%>    2.<% =java表达式%>不能有分号    3.<%!成员变量和函数声明%>二.注释    1.<!--html注释-->客户端可以看到    2.<%--jsp注释--%>客户端不能看到三.jsp页面的的执行过程    1.客户端请求(输入URL)    2.服务器       (1)现将jsp翻译成.java文件(第一次请求)            如果是第二次请求,并

JSP数据交互(二)

对象的作用域:  JSP中提供了四种作用域,分别是page作用域,request作用域,session作用域和application作用域. page作用域: page作用域指单一JSP页面的范围,page作用域内的对象只能在创建该对象的页面中访问. page作用域内可以使用pageContext对象的setAttribute()和getAttibute()方法访问具有这种范围类型的对象. pageContext对象本身也属于page作用域,具有page作用域的对象被绑定到pageContext

JSP数据交互

一.jsp中java小脚本 1.<% java代码段%> 2.<% =java表达式%>不能有分号 3.<%!成员变量和函数声明%> 二.注释 1.<!--html注释-->客户端可以看到 2.<%--jsp注释--%>客户端不能看到 三.jsp页面的的执行过程 1.客户端请求(输入URL) 2.服务器 (1)现将jsp翻译成.java文件(第一次请求)  如果是第二次请求,并且jsp页面内容未改变 (2)将java文件编译成.class文件 (

JSP数据交互——九大内置对象及其方法详解(一)

①既然说到JSP内置对象,那么什么是JSP内置对象呢? 解析:JSP内置对象,就是在编写JSP页面时,不需要做任何声明就可以直接使用的对象. 如下代码片段:  <% int[]  value  =  { 60, 70, 80 }; for(int i : value){ out.println(i); } %> 代码 out.println()可以实现页面的输出显示,但是在代码中并没有任何地方声明或创建这个out对象,没有创建就可以直接使用的原因就是out对象是JSP内置对象之一. ②为什么J

JSP数据交互(1)

1.内置对象: 所谓内置对象,就是由Web容器加载的一组Servlet API 的实例,这些实例由JSP规范进行了默认的初始化操作,可以直接在JSP中使用.特别要注意的是JSP的内置对象名称均是JSP的保留字,不得随便使用 2.九大内置对象:(pp rr ceo sa) page pagecontext request request对象的常用方法: 1)String getParameter(String name)                            根据页面表单组件名称获