zoukankan      html  css  js  c++  java
  • 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方法
  • 相关阅读:
    html页面小技巧
    文件上传动态获取文件名
    thymeleaf之下拉框回显选中
    地图/导航控件哪家强?DevExpress WPF v19.2帮你忙
    Web UI开发神器—Kendo UI for jQuery数据管理之过滤操作
    开启.NET Core 3时代,DevExpress v19.2.5带你全新启航
    DevExpress WPF 2020全新出发,功能计划蓝图一览
    2020还有9天!Winforms开发有哪些期待?DevExpress 2020计划出炉
    Web UI开发神器—Kendo UI for jQuery数据管理网格编辑操作
    甘特图、Data Editors控件新玩法—DevExpress WPF v19.2
  • 原文地址:https://www.cnblogs.com/caiguoxin/p/9469329.html
Copyright © 2011-2022 走看看