JSP数据交互


 1.JSP中内置对象
  01.不经常使用的内置对象
   pageContext
    内置对象的集大成者(可以通过 这个对象获取其他的内置对象)
   config
   page
   exception
  02.经常使用的内置对象
   session
   application
   out
   request
   response
 2.JSP内置对象out
  01.对象是JspWriter类的实例
  02.对象常用方法
   void print(Object c)
    向客户端打印数据(将各种类型的数据转换成字符串)
   void write(charset)
    向客户端打印数据(字符、字符数组、字符串)
   void println(Object c)
    向客户端打印数据(将各种类型的数据转换成字符串)并换行
           jsp内置对象之request
 1.request对象
  主要用于处理客户端请求
 2.常用方法
  01.String getParameter(String name)
   根据表单组件名称获取提交数据
  02.String[] getParameterValues(String name)
   获取表单组件对应多个值的请求数据
  03.void setCharacterEncoding(String charset)
   指定每个请求的编码
  04.RequestDispatcher getRequestDispatcher(String path)
   返回一个RequestDispatcher对象,该对象的forward方法用于转发请求  
 3.JSP页面本身的编码
  01.pageEncoding
   页面本身编码
  02.contentType
   浏览器渲染页面的时候采用的编码格式
    *一旦一种编码格式已经指定,另外一种编码格式如果不进行指定的话,默认都采用已经指定的编码格式
           jsp内置对象之response 
 1.response对象用于响应客户端请求并向客户端输出信息
 2.方法
  01.void sendRedirect(String location)(页面重定向)
   客户端将重新发送请求到指定的URL
  02.void setCharacterEncoding(String charset)
   告知浏览器使用什么编码展示数据
 3.请求的转发
  01.转发的作用
   在服务器端,将请求发送给服务器上的其他资源,以共同完成一次请求处理
  02.转发的实现
   RequestDispatcher对象的forward()方法
    示例
     RequestDispatcher rd = request.getRequestDispatcher("加载的URL");
     rd.forward(request,response(给下个页面处理的方法));
      *这种方式浏览器只会发送一次请求
 4.转发和重定向对比
  01.转发
   001.转发是在服务器端发挥作用,将同一请求在服务器资源之间进行传递
   002.客户端浏览器的地址栏不会显示转向后的地址
   003.转发停留在中间页面
  02.重定向
   001.重定向是在客户端发挥作用,通过发送一个新的请求实现页面转向
   002.在地址栏中可以显示转向后的地址
   003.转发会停留到最终页面
  03.小结
   03-1.携带数据维度
    转发可以携带数据,重定向不能
   03-2.URL地址维度
    转发停留在中间页面,重定向最终页面
   03-3.从是否需要项目名称
    转发不能写项目名称,重定向必须写项目名称
   03-4.站在服务器角度
    转发在Server内部完成,而重定向跳转到站外链接
   03-5.请求次数维度
    转发一次请求,重定向2次请求
 5.小结
  01.request负责封装客户端请求,request封装的是服务器的响应
  02.重定向采用request.sendRedirect(url)实现,重定向行为发生于浏览器,地址栏地址改变
  03.转发采用RequestDispatcher rd = request.getRequestDispatcher(url).forward(request,response)实现,转发行为发生于服务器,地址栏地址不改变
           JSP内置对象之session
 1.会话
  01.一个会话就是在一段时间内,一个客户端与Web服务器的一连串相关的交互过程
   *同一个session对象session相同
 2.session对象常用方法
  01.String getId()
   获取sessionid
  02.void setMaxinactiveinterval(int interval)
   获取session的非活动时间
  03.int getMaxinactiveinterval()
   获取session的有效非活动时间(一秒为单位)(默认为1800秒为30分钟)
  04.void invalidate()
   设置session对象失败
  05.void setAttribute(String key,Object value)
   以key/value的形式保存对象值
  06.Object getAttribute(String key)
   通过key获取对象值
  07.void removeAttribute(String key)
   从session中删除指定名称(key)所对应的对象
 3.session与窗体的关系
  01.session和浏览器窗口
  02.通过超链接打开的新窗体,新窗体的session与其父窗口的session相同
 4.session对象的失败
  01.手动设置失败
   invalidate()
  02.超时失败
   001.通过调用session对象的setMaxinactiveinterval()方法,单位为秒
    session.setMaxinactiveinterval(10);//十秒后页面失败
   002.通过设置项目的web.xml或Tomcat目录下的/conf/web.xml文件,单位为分钟
    <session-config>
    <session-timeout>10</session-timeout>
    </session-config>
     *十分钟后页面失败
 5.项目A-web.xml与tomcat-web.xml
  01.在浏览器访问时
   A-web.xml + tomcat-web.xml = 合并
  02.如果有配置重复的选项
   项目A-web.xml
  03.tomcat-web.xml是全局与项目A-web.xml都针对项目的配置
  04.项目A-web.xml与项目B-web.xml的web.xml文件没有一点关系
 6.include命令
  通过将一些共性的内容写入一个单独的文件中,然后通过include指令引用该文件
          jsp内置对象之application
 1.application
  实现用户之间的数据共享
   当应用程序开始启动后会创建一个application对象(全局、唯一),当服务器停止后销毁
 2.常用方法
  01.void setAttribute(String key,Object value)
   以key/value的形式保存对象值
  02.Object getAttribute(String key)
   通过key获取对象值
  03.String getRealPath(String path)
   返回当前相对路径的真实路径
 3.统计网站访问次数的实现
  01.统计页面
   <%
    Integer count = (Integer)application.getAttribute("count");
    if(count !=null){
     count=1+count;
    }else{
     count=1;
    }
   %>
  02.显示页面
   <%
    Integer i = (Intrger)application.getAttribute("count");
    out.print("页面访问人数为"+i);
   %>
        
           JSP四大作用域
 1.作用于的分类(它的常量或者是变量作用的范围)
  01.page作用域
   对应用域访问对象为pageContext对象
  02.request作用域
   对应的作用域访问对象为request对象
  03.session作用域
   对应用的作用域访问对象为session对象
  04.application作用域
   对应用的作用域访问对象为application对象
 2.作用域的对应范围
  01.application作用域
   对应整个应用上下文
    就是应用开始到停止期间,可以使用application对象实现相应的读写操作
  02.session作用域
   对应用户一次会话
    就是用户开始访问服务器到停止访问期间,可以使用session对象实现相应文读写操作
  03.request作用域
   对应一次请求
    就是浏览器发送请求到服务器响应期间,可以使用request对象实现相应数据的读写操作
  04.page作用域
   对应一个JSP页面的运行
    就是一个JSP页面执行开始到结束期间,可以获取到pageContext对象实现数据的读写操作
 3.对象的作用域
  01.page作用域
   在一个页面范围内有效,通过pageContext对象访问
  02.request作用域
   在一个服务器请求范围内有效
  03.session作用域
   在一次会话范围内容有效
  04.application作用域
   在一个整个应用服务器范围内有效
 
          浏览器缓存cookie
 1.cookie简介
  01.cookie是Web服务器保存在客户端的一系列文本信息
  02.cookie的作用
   对特定对象的追踪
   实现各种个性化服务
   简化登录
  03.安全性能
   容易泄露信息
 2.cookie使用 
  01.创建cookie对象(创建并写入)
   语法
    Cookie newCookie = new Cookie(String key,String value);
  02.写入cookie(保存到浏览器)
   语法
    response.addCookie(newCookie);
  03.读取cookie
   语法
    Cookie[] ookies = response.getCookies();
 3.cookie对象常用方法
  01.void setMaxAge(int expiry)
   设置cookie的有效期,以秒为单位
  02.void setValue(String value)
   在cookie创建后,对cookie进行赋值
  03.String getName()
   获取cookie的名称(key)
  04.String getValue()
   获取cookie的值
  05.int getMaxAge()
   获取cookie的有效时间,一秒为单位
 4.cookie与session的对比
  01.session
   在服务器端保存用户信息
   session中保存的是Object类型
   随会话的结束而将其存储的数据销毁
   保存重要的信息
  02.cookie
   在客户端保存用户信息
   cookie保存的是String类型
   cookie可以长期保存在客户端
   保存不重要的用户信息
   
           Web项目使用JDBC
 1.使用JDBC访问数据库步骤(回顾)
  01.Class.forName()
   加载驱动
  02.DriverManager.getConnection()
   与数据库建立连接
  03.Statement、ResultSet
   发送SQL语句,并得到返回结果
  04.返回处理结果
  05.close()
   释放资源
 2.JSP使用JDBC
  01.在src包下现创建好数据库操作的JDBC和DAO层
  02.在JSP页面的page指令中使用import属性指向相应的类
  03.JSP代码段与src包下相应的类结合使用
 3.JavaBean
  封装业务逻辑和数据以一个组件的形式实现功能
   优势
    解决代码重复编写,减少代码冗余
    功能区分明确
    提高了代码的维护性
 4.从JavaBean的功能上可以分为
  01.封装数据
  02.封装业务
 5.JavaBean规范
  公用类
  无参的公有构造方法
  属性私有
  getter和setter方法
posted @ 2018-08-13 16:56  小哪吒!!  阅读(118)  评论(0编辑  收藏  举报