zoukankan      html  css  js  c++  java
  • JSP数据交互

    1:什么是JSP内置对象

    JSP内置对象是 Web 容器创建的一组对象

    eg:

    <% int[ ] value = { 60, 70, 80 }; for (int i : value) { out.println(i); } %>

    2:JSP内置对象包括request对象、response对象、session对象、out对象、application对象、page对象、exception对象、pageContext对象、config对象。这些对象在客户端和服务器端交互的过程中分别完成不同的功能。

    1.Request对象

    Request对象是javax.servlet.http.HtupServletRequest类的实例。代表请求对象,主要用于接受客户端通过HTTP协议连接传输到服务器端的数据。比如表单中的数据、网页地址后带的参数等。

    2.Response对象

    Response对象是javax.servlet.http.HttpServletResponse类的实例。代表响应对象,主要用于向客户端发送数据。

    3.Out对象

    Out对象是javax.servletjspjspWriter类的实例。主要用于向客户端浏览器输出数据。

    4.session对象

    Session 对象是javax.servlet.htp.Http session类的实例。主要用来保持在服务器与一个客户端之间需要保留的数据,比如在会话期间保持用户的登录信息等,会话状态维持是Web应用开发者必须面对的问题。当客户端关闭网站的所有网页或关闭浏览器时,session对象中保存的数据会自动清除。由于Htp协议是一个无状态协议,不保留会话间的数据,因此通过session对象扩展了htp的功能。比如用户登录一个网站之后,登录信息会暂时保存在session对象中,打开不同的页面时,登录信息是可以共享的,一旦用户关闭浏览器或退出登录,就会清除session对象中保存的登录信息。

    5.Application对象

    Application对象是javax.servlet.ServletContext类的实例。主要用于保存用户信息,代码片段的运行环境;它是一个共享的内置对象,即一个容器中的多个用户共享一个application对象,故其保存的信息被所有用户所共享。

    6.PageContext对象

    PageContext对象是javax.servlet.jsp.PageContext类的实例。用来管理网页属性,为JSP页面包装页面的上下文,管理对属于JSP中特殊可见部分中已命名对象的访问,它的创建和初始化都是由JSP容器来完成的。

    7.Config对象

    Config对象是javax.servlet.ServletConfig类的实例。是代码片段配置对象,表示Servlet的配置。

    8.Page(相当于this)对象

    Page对象是javax.servlet.jsp.HttpJspPage类的实例。用来处理JSP网页,它指的是JSP页面对象本身,或者说代表编译后的servlet对象,只有在JSP页面范围之内才是合法的。

    9.Exception对象

    Exception对象是java.lang.Throwable类的实例。处理JSP文件执行时发生的错误和异常只有在JSP页面的page指令中指定isErrorPage=“true”后,才可以在本页面使用exception对象。

    3:JSP内置对象request

    request对象主要用于处理客户端请求

    客户端       请求          request对象             获取请求的信息使用           服务器

    4:request对象常用方法

    String getParameter(String name)      

    根据表单组件名称获取提交数据

    String[ ] getParameterValues(String name)

    获取表单组件对应多个值时的请求数据 

    void setCharacterEncoding(String charset)

    指定每个请求的编码

    RequestDispatcher getRequestDispatcher(String path)

    返回一个RequestDispatcher对象,该对象的forward( )方法用于转发请求

    5:JSP内置对象response 

    response对象用于响应客户请求并向客户端输出信息

                   从服务器中检索信息                                   响应

    服务器————————————response对象————————客户端

    页面重定向 void sendRedirect(String location) 客户端将重新发送请求到指定的URL

    6:转发的作用

    在服务器端,将请求发送给服务器上的其他资源,以共同完成一次请求的处理

    7:转发的实现

    RequestDispatcher对象的forward()方法

    8:转发:

    转发是在服务器端发挥作用,将同一请求在服务器资源之间进行传递客户端浏览器的地址栏不会显示转向后的地址

    重定向:

    重定向是在客户端发挥作用,通过发送一个新的请求实现页面转向在地址栏中可以显示转向后的地址

    9:会话

    一个会话就是在一段时间内,一个客户端与Web服务器的一连串相关的交互过程

    同一个session对象sessionid相同

    10:JSP内置对象session

    String getId():

    获取sessionid

    void setMaxInactiveInterval(int interval):

    设定session的非活动时间

    int getMaxInactiveInterval():

    获取session的有效非活动时间(以秒为单位)

    void invalidate():

    设置session对象失效

    void setAttribute(String key, Object value):

    以key/value的形式保存对象值

    Object getAttribute(String key):

    通过key获取对象值

    void removeAttribute(String key):

    从session中删除指定名称(key)所对应的对象

    11:session与窗口的关系:

    每个session对象都与一个浏览器窗口对应 ,重新开启一个浏览器窗口,可以重新创建一个session对象(不同版本浏览器可能有所差别)

    通过超链接打开的新窗口,新窗口的session与其父窗口的session相同

    12:使用session实现访问控制

    在新闻发布系统中,增加访问控制功能 提供用户登录功能 管理员有权对新闻实现增、删、改的操作

    在控制页面获取用户请求的登录信息进行验证

    session.setAttribute("login",name);

    在新闻发布系统新闻发布页面增加登录验证

    (String)session.getAttribute("login")

    访问控制效果验证,步骤如下:

    直接在浏览器地址栏中输入URL,访问系统首页

    通过登录页面进入系统首页面

    重新开启一个新会话窗口,直接访问系统首页面

    13:session对象的失效

    手动设置失效:invalidate()

    超时失效

    通过setMaxInactiveInterval( )方法,单位是秒

    <% session.setAttribute("login","admin"); session.setMaxInactiveInterval(600); response.sendRedirect("admin.jsp"); %>

    通过设置项目的web.xml或Tomcat目录下的/conf/web.xml文件,单位是分钟

    <session-config> <session-timeout>10</session-timeout> </session-config>

    14:include指令

    可以将一些共性的内容写入一个单独的文件中,然后通过include指令引用该文件

    创建登录验证文件 loginControl.jsp

    <% String login = (String) session.getAttribute("login"); if (login == null) {   response.sendRedirect("index.jsp"); return; } %>

    在后台首页面中使用include指令引用登录验证文件

    <%@ include file="loginControl.jsp" %>

    15:JSP内置对象application

    application实现用户之间的数据共享

    application对象的常用方法

    void setAttribute(String key, Object value):

    以key/value的形式保存对象值

    Object getAttribute(String key):

    通过key获取对象值

    String getRealPath(String path);

    返回相对路径的真实路径

    16:page作用域指本JSP页面的范围

    在一个页面范围内有效,通过pageContext对象访问

    17:request作用域内的对象则是与客户端的请求绑定在一起

    在一个服务器请求范围内有效

    18:session作用域:一次会话

    在一次会话范围内容有效

    19:application作用域:面对整个Web应用程序

    在一个应用服务器范围内有效

    20:cookie是Web服务器保存在客户端的一系列文本信息

    cookie的作用

    对特定对象的追踪 实现各种个性化服务 简化登录

    安全性能

    容易泄露信息

    21:在JSP中使用cookie

    创建cookie对象

    Cookie newCookie = new Cookie(String key, String value);

    写入cookie

    response.addCookie(newCookie);

    读取cookie

    Cookie[] cookies = request.getCookies();

    22:cookie对象的常用方法:

    void setMaxAge(int expiry):

     设置cookie的有效期,以秒为单位

    void setValue(String value):

    在cookie创建后,对cookie进行赋值

    String getName():

    获取cookie的名称

    String getValue():

    获取cookie的值

    int getMaxAge():

    获取cookie的有效时间,以秒为单位

    23;cookie与session的对比:

    session:

    服务器端保存用户信息,

    session中保存的是Object类型

    随会话的结束而将其存储的数据销毁

    保存重要的信息

    cookie

    客户端保存用户信息

    cookie保存的是 String类型

    cookie可以长期保存在客户端

    保存不重要的用户信息

    24:JavaBean的优势

    解决代码重复编写,减少代码冗余 功能区分明确 提高了代码的维护性

    25:从JavaBean的功能上可以分为

    封装数据, 封装业务

    26:封装数据的JavaBean

    将属性声明为私有属性,无参的共有构造方法,公有的设置属性值方法setXxx(),公有的获取属性值方法getXxx()

    使用工具自动生成getter/setter方法: Alt+Shift+S -> Generate Getters and Setters

    补:

    1:静态网站的局限性:
    无法实现搜索,购买,登录等交互功能,
    无法对静态页面的内容进行实时更新
    2:B/S程序全部署在服务器上
    3:B/S架构采用请求/响应模式进行交互
    4:JSP:在HTML中嵌入Java脚本语言
    5:内置对象(数据交互)
    pag,pagcontics,request,response,session,applocation,out,
    request请求(客——服)
    response响应(服——客)
    6:解决编码格式:
    void setCharacterEncoding(String charset)
    7:解决乱码问题
    get方法进行 :getBytes(“源码”),“修改码”
    post方法:URIEncoding
    void setCharacterEncoding(String charset)
    8;页面跳转:
    response.sendRedirect(页面地址);
    不携带信息
    9:页面转发
    RequestDispatcher rd=request.getRequestDispatcher(页面)
    rd.forward(request,response)
    携带信息
    转发不修改地址栏
    10:重定向:
    response.sendRedirect();
    不携带信息
    转发修改地址栏
    11:会话:
    一个会话就是在一段时间内,一个客户端与Web服务器的一连串相关的交互过程
    (打开浏览器——关闭浏览器)
    12:
    session:
    每一个session都含有一个ID
    内置对象
    保存在服务器端
    作用域:一次浏览记录
    Object类型
    随回话的结束存储信息数据销毁
    不能长时间一直存储,及时销毁
    保存重要的信息
    cookie:
    不是内置对象
    是WEB服务器保存在客户端的一系列文本信息(保存密码,记住密码)
    作用:对特定对象的追踪,实现各种个性化服务,简化登录
    String类型
    长期保存在客户端
    保存不重要的用户
    安全性较低
    可以设置过期时间setMaxAge(时间 )
    13:
    指令:<%@,,,,,,,,,%>
    小脚本:<% %>
    表达式<%= %>
    声明:<%! %>
    注释:
    <!-客户端可以查看-->HTML注释
    <%--客户端无法看到--%>JSP注释
    14:
    application:
    作用域:整个服务器
    生命周期:服务器的启动关闭
    pag:作用域:当前页面

  • 相关阅读:
    Android高级开发第一讲如何在Android应用中避免内存溢出OOM问题
    Windows Phone 31 日谈——第24日:嵌入字体
    Windows Phone 31 日谈——第22日:应用?还是 游戏?
    Windows Phone 7 开发探索笔记6——页面间传值
    Windows Phone 31 日谈——第23日:提供试用版应用程序
    Windows Phone 7 开发探索笔记1——触控操作之Touch
    修改windowsphone7的默认起始页面
    ObjectC 入门(转)
    Windows Phone 7 开发探索笔记9——菜单栏
    Windows Phone 7 开发探索笔记5——页面间导航
  • 原文地址:https://www.cnblogs.com/zjx-959/p/13328998.html
Copyright © 2011-2022 走看看