zoukankan      html  css  js  c++  java
  • JSP的隐式对象(out,request)

     

    JSP隐式对象是JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明。

    也就是说隐式对象不需要像一般的Java对象需要使用new关键字来创建,而是直接在JSP页面中使用。

    九大隐式对象分类

    输入输出对象:out

    作用域对象:request,response,session,application,pageContext

    Servlet对象:page,config

    错误对象:exception

    对象名称   描述
    request HttpServletRequest 接口的实例
    response HttpServletResponse 接口的实例
    out JspWriter类的实例,用于把结果输出至网页上
    session HttpSession类的实例
    application ServletContext类的实例,与应用上下文有关
    config ServletConfig类的实例
    pageContext PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问
    page javax.servlet.jsp.JspWriter 类的实例,类似于Java类中的this关键字
    Exception Exception类的对象,代表发生错误的JSP页面中对应的异常对象

    1.out对象

    out对象是javax.servlet.jsp.JspWriter类的实例化对象,主要功能就是完成页面的输出操作,使用println()或print()输出。

    使用<%=%>形式输出比out.println()更加方便。

    简单使用

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html>
     4 <html>
     5 <head>
     6 <meta charset="UTF-8">
     7 <title>out对象方法案例</title>
     8 </head>
     9 <body>
    10 <%
    11 out.print("out对象页面输出功能");
    12 out.println("out对象页面输出功能方法");
    13 
    14 out.print("<br>");
    15 %>
    16 
    17 缓冲区大小:<%=out.getBufferSize() %>
    18 缓冲区剩余大小:<%=out.getRemaining() %>
    19 是否自动清空缓冲区:<%=out.isAutoFlush() %>
    20 </body>
    21 </html>

    2.request对象

    每当客户端请求一个JSP页面时,JSP引擎就会制造一个新的request对象来代表这个请求。客户端的请求被封装在request对象中,它是HttpServletRequest类的实例。

    request对象有很多方法获取客户端的信息,主要方法如下:

    常用方法方法介绍
    String getParameter(String name) 返回name指定参数的参数值
    String[] getParameterValues(String name) 返回包含参数name的所有值的数组
    void setAttribute(String,Object) 存储此请求中的属性
    Object getAttribute(String name) 返回指定属性的属性值
    String getContentType() 得到请求体的MIME类型
    String getProtocol() 返回请求用的协议类型及版本号
    String getServerName() 返回接受请求的服务器主机名
    int getServerPort() 返回服务器接受此请求所用的端口号
    String getCharacterEncoding() 返回字符编码方式
    void setCharacterEncoding() 设置请求的字符编码方式
    int getContentLength() 返回请求体的长度(以字节数)
    String getRemoteAddr() 返回发送此请求的客户端IP地址
    String getRealPath(String path) 返回一虚拟路径的真实路径
    String request.getContextPath() 返回上下文路径

    简单例子1——request方法获取http协议信息

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html>
     4 <html>
     5 <head>
     6 <meta charset="UTF-8">
     7 <title>request方法获取http协议信息</title>
     8 </head>
     9 <body>
    10 <%="request方法获取http协议信息" +"<hr>"%>
    11 <% 
    12       out.println("协议类型及版本号:"+request.getProtocol()+"<br>");
    13       out.println("当前链接使用的协议:"+request.getScheme()+"<br>");
    14       out.println("服务器名称:"+request.getServerName()+"<br>");
    15       out.println("服务器接受此请求的端口号:"+request.getServerPort() +"<br>");
    16       out.println("请求方式:"+request.getMethod()+"<br>");
    17       out.println("客户端IP地址:"+request.getRemoteAddr()+"<br>");
    18       out.println("客户端主机:"+request.getRemoteHost() +"<br>");
    19       out.println("URL的部分值:"+request.getRequestURI()+"<br>");
    20       out.println("URL:"+request.getRequestURL()+"<br>");
    21       out.println("Web服务目录部分值:"+request.getServletPath()+"<br>");
    22       out.println("实际目录:"+request.getRealPath("/request.jsp")+"<br>");
    23       out.println("<br>");
    24 %>
    25 
    26 </body>
    27 </html>

    简单例子2——request从URL获取参数信息

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html>
     4 <html>
     5 <head>
     6 <meta charset="UTF-8">
     7 <title>request从URL获取参数信息</title>
     8 </head>
     9 <body>
    10 参数a的值:<%=request.getParameter("a") %><br>
    11 参数b的值:<%=request.getParameter("a") %><br>
    12 </body>
    13 </html>

    运行结果:

    简单例子3——request域对象的使用

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html>
     4 <html>
     5 <head>
     6 <meta charset="UTF-8">
     7 <title>request域对象的使用</title>
     8 </head>
     9 <body>
    10  <%
    11 //设置字符编码,解决中文乱码问题,无法解决URL传递中文出现的乱码问题。
    12       request.setCharacterEncoding("utf-8");
    13       request.setAttribute("name", "张三");
    14       request.setAttribute("age", "20");
    15      %>
    16       姓名:<%=request.getAttribute("name") %><br>
    17      年龄:<%=request.getAttribute("age") %>
    18 </body>
    19 </html>

    简单例子4——request从form表单中获取数据

    requestForm.jsp

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html>
     4 <html>
     5 <head>
     6 <meta charset="UTF-8">
     7 <title>request从form表单中获取数据</title>
     8 </head>
     9 <body>
    10 <form action="hobbyShow.jsp" method="post">
    11    <table>
    12      <tr>
    13        <td>用户名:</td><td><input type='text' name="name"> </td>
    14      </tr>
    15       <tr>
    16        <td>爱好:</td><td>
    17          <input type="checkbox" name="hobbys" checked="checked" value="篮球">篮球
    18           <input type="checkbox" name="hobbys" value="足球">足球
    19            <input type="checkbox" name="hobbys" value="乒乓球">乒乓球
    20             <input type="checkbox" name="hobbys" value="羽毛球">羽毛球
    21          </td>
    22      </tr>  
    23    </table>
    24   <input type="submit" value="提交">
    25 </form>
    26 </body>
    27 </html>

    hobbyShow.jsp

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <!DOCTYPE html>
     4 <html>
     5 <head>
     6 <meta charset="UTF-8">
     7 <title>request显示form表单数据</title>
     8 </head>
     9 <body>
    10 <%
    11 //设置字符编码,解决中文乱码问题,无法解决URL传递中文出现的乱码问题。
    12 request.setCharacterEncoding("utf-8");
    13 String name =request.getParameter("name");
    14 
    15 String[] hobbys = request.getParameterValues("hobbys");
    16 %>
    17 
    18 姓名:<%=name %><br>
    19 爱好:<%
    20 for(int i=0;i<hobbys.length;i++)
    21 {
    22   out.println(hobbys[i]);
    23   out.print("<br>");
    24 }
    25 %>
    26 </body>
    27 </html>

    参考文章

    https://www.cnblogs.com/Life-is-Demo/p/11530640.html

    https://blog.csdn.net/qq_44013790/article/details/87207317

    https://www.runoob.com/jsp/jsp-implicit-objects.html

    https://www.cnblogs.com/wujixing/p/4953362.html

    https://www.cnblogs.com/wujixing/p/4950669.html

    转载文章链接已标明,如有侵权请告知。文章仅作为知识记忆所用,如有错误,敬请指正。
  • 相关阅读:
    jpa命名规则 jpa使用sql语句 @Query
    spring data jpa 查询No property ... found for...Did you mean '...'?
    maven配置sqlServer的依赖
    SpringBoot 使用Swagger2打造在线接口文档(附汉化教程)
    本地git库gitlab库链接服务器库 idea git 配置 gitlab 配置 git生成ssh公钥
    连接sqlServer数据库&jpa调用存储过程Java获取存储过程返回的多个结果集JAVA调用sqlserver存储过程的实现(返回多个结果集的实现)jdbc多结果集(getMoreResults)
    Springmvc的handler method参数绑定常用的注解
    Java map 详解
    Http请求中Content-Type讲解以及在Spring MVC注解中produce和consumes配置详解
    @Controller和@RestController的区别
  • 原文地址:https://www.cnblogs.com/YorkZhangYang/p/12419188.html
Copyright © 2011-2022 走看看