7-JSP详解2

一、JSP回顾

我们都知道,Java 是面向对象的语言,我们的操作都是面向对象的操作。我们需要先 new 对象,再使用对象。

JSP 内置对象

  • JSP 本质就是 Servlet ,Servlet 就是一段 Java 代码。
  • 内置对象,就是 JSP 帮我们创建好的对象,我们直接用,不用 new,JSP 自带的。

二、JSP九个内置对象

2.1 概述

其实我们可以这么想,JSP 本质就是 Servlet ,而 JSP 的作用就是用来和用户交互的,那么是不是 JSP 的内置对象其实就是 Servlet 中用来和用户交互的对象呢?或者说,JSP 的内置对象在一定程度上和 Servlet 的对象由很大关系。

  1. request:表示一次请求,这个对象来自于 Servlet 中的 HttpServletRequest 。
  2. response:表示一次响应,这个对象来自于 Servlet 中的 HttpServletResponse 。
  3. pageContext:页面上下文,可以获取页面信息(类比 servletContext),这个对象来自于 Servlet 中的 PageContext。
  4. session:表示一次回话(打开浏览器,客户端不断访问同一个地址直接关闭浏览器),一般用来保存用户信息,来自 Servlet 的 HttpSession 。
  5. application:表示当前 Web 应用,全局对象,保存所有用户共享信息,来自于 ServletContext 。
  6. config:表示当前 JSP 对应 Servlet 的ServletConfig 对象,获取当前 Servlet 对象。
  7. out:表示向浏览器输出数据,想想 index.jsp 转化为 index_jsp.java 后,里面的 out.write() 语句,来自 JspWriter。
  8. page:表示 JSP 对应的 Servlet 对象,来自于 Servlet。
  9. exception:表示 JSP 页面发生的异常,来自 Exception。

常用的就是 request、response、session、application、pageContext。

2.2 request 常用方法

在浏览器的地址栏输入 url ,然后或者,或者使用 Postman 发送,都是一次请求。把这次请求封装为 request,request 里面包含了本次请求的全部信息。常用方法如下:

  1. String getParameter(String key) 获取客户端传来的参数。

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>内置对象request</title>
    </head>
    <body>
        <%
            String idStr = request.getParameter("id");
            Integer id = Integer.parseInt(idStr);
    
            String requestMethod = request.getMethod();
        %>
        <h2>我们通过 url 拿到的数据是</h2>
        id=<%=id%>
        <h2>我们的请求方式是</h2>
        method=<%=requestMethod%>
    </body>
    </html>
    
  2. void setAttribute(String key, Object value) 通过键值对的形式保存数据。

  3. Object getAttribute(String key) 通过 key 取出 value。
    在这里插入图片描述

    • 源jsp文件

      <%
          String idStr = request.getParameter("id");
          Integer id = Integer.parseInt(idStr);
          id+=1;
          // 将数据存入到 request 中
          request.setAttribute("number",id);
          // 将请求转发给 myobject2.jsp
          request.getRequestDispatcher("myobject2.jsp").forward(request,response);
          String requestMethod = request.getMethod();
      %>
      
    • 目标jsp文件

      <%
          Integer number = (Integer)request.getAttribute("number");
      %>
      <%=number%>
      
    • 我们在浏览器请求源 jsp 文件(http://localhost:8080/myobject.jsp?id=1),服务器会把 目标 jsp 文件中的内容返回给浏览器,结合上面图理解一下。在这个过程中,源 jsp 文件只是一个过渡作用。

  4. RequestDispatcher getRequestDispatcher(String path) 返回一个 RequestDispatcher ,该对象的 forward 方法用于转发请求。

  5. String[] getParameterValues() 获取客户端传来的同名参数

    • url:http://localhost:8080/myobject.jsp?name=123&name=tom&name=java,url中有多个 name 键值对

    • <%
          String[] names = request.getParameterValues("name");
      %>
      <%=Arrays.toString(names)%>
      <%-- 输出 [123, tom, java] --%>
      
  6. void setCharacterEncoding(String charset) 指定每个请求的编码。 request.setCharacterEncoding("UTF-8");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值