码迷,mamicode.com
首页 > Web开发 > 详细

JSP数据交互(一)

时间:2015-11-06 22:25:01      阅读:262      评论:0      收藏:0      [点我收藏+]

标签:

                                                   

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  

JSP数据交互(一)

标签:

原文地址:http://www.cnblogs.com/zhongmingyuan/p/4943665.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!