首页 > 其他分享 >JSP内置对象

JSP内置对象

时间:2022-10-23 19:00:28浏览次数:48  
标签:内置 浏览器 String 对象 request JSP 页面

简介

JSP的内置对象是指在JSP页面系统中已经默认内置的Java对象,这些对象不需要开发人员显式声明即可使用。在JSP页面中,可以通过存取JSP内置对象实现与JSP页面和Servlet环境的相互访问。每个内部对象均有对应所属的ServletAPI类型。

内置对象是sevlet容器创建,我们程序不创建实例,可以在jsp文件中直接使用,而且名称是小写。

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

隐匿对象

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

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

HttpServletRequest

request 对象是 javax.servlet.HttpServletRequest类型的对象。 该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。request对象的作用域为一次请求。

常用方法 描述
String getParameter(String name) 根据页面表单组件名称获取页面提交数据
String[] getParameterValues(String name) 处理表单同名参数所有值,返回是字符串数组
String getHeader(String name) 取得浏览器头信息
String getRemoteAddr() 返回客户端的IP地址
String getLocalAddr() 返回服务器的IP地址
String getServletContext().getServerInfo() 返回Server信息
Enumeration<String> getHeaderNames() 返回所有头部名称
String getHeader("user-agent“) 头部信息浏览器及操作系统信息
String getHeader("referer") 获取请求来源
//http://localhost:8080/web
String bp = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()+ request.getContextPath();
out.print(bp);

//获取当前页面的真实路径
String u = request.getRequestURI();
out.print(request.getServletContext().getRealPath(u));


常用方法 描述
String getMethod() 取得请求方法 GET POST
void setCharacterEncoding(“utf-8”) 设置请求编码,用来处理表单提交POST中文乱码
String getCharacterEncoding() 取得编码字符集
Cookie[] getCookies() 取得所有Cookie对象
void getRequestDispatcher(“show.jsp”).forward(request,response) 转发
void setAttribute(name, o) 设置属性对象
Object getAttribute(name) 取得属性对象
String getContextPath() 获取项目路径 /web
getRequestURI() /web/index.jsp
getRequestURL() http://localhost:8080/web/index.jsp
getServletContext().getRealPath(request.getRequestURI()) 获取当前页面的真实地址

当浏览器请求一个网页时,它会向网络服务器发送一系列不能被直接读取的信息,因为这些信息是作为HTTP信息头的一部分来传送的。您可以查阅HTTP协议来获得更多的信息。

下表列出了浏览器端信息头的一些重要内容,在以后的网络编程中将会经常见到这些信息:

信息 描述
Accept 指定浏览器或其他客户端可以处理的MIME类型。它的值通常为 image/pngimage/jpeg
Accept-Charset 指定浏览器要使用的字符集。比如 ISO-8859-1
Accept-Encoding 指定编码类型。它的值通常为 gzipcompress
Accept-Language 指定客户端首选语言,servlet会优先返回以当前语言构成的结果集,如果servlet支持这种语言的话。比如 en,en-us,ru等等
Authorization 在访问受密码保护的网页时识别不同的用户
Connection 表明客户端是否可以处理HTTP持久连接。持久连接允许客户端或浏览器在一个请求中获取多个文件。Keep-Alive 表示启用持久连接
Content-Length 仅适用于POST请求,表示 POST 数据的字节数
Cookie 返回先前发送给浏览器的cookies至服务器
Host 指出原始URL中的主机名和端口号
If-Modified-Since 表明只有当网页在指定的日期被修改后客户端才需要这个网页。 服务器发送304码给客户端,表示没有更新的资源
If-Unmodified-Since 与If-Modified-Since相反, 只有文档在指定日期后仍未被修改过,操作才会成功
Referer 标志着所引用页面的URL。比如,如果你在页面1,然后点了个链接至页面2,那么页面1的URL就会包含在浏览器请求页面2的信息头中
User-Agent 用来区分不同浏览器或客户端发送的请求,并对不同类型的浏览器返回不同的内容

image-20210910135145488

HttpServletResponse

response 代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。response对象也具有作用域,它只在JSP页面内有效。

常用方法 描述
response.addCookie(cookie) 向客户端发送cookie数据
setCharacterEncoding("utf-8”) 设置输出字符集,一般情况下不需要设置
setContentType("text/html; charset=utf-8”) 设置当前文件输出类型编码
sendRedirect("") 当前页面重定向,浏览器地址会改变

重定向:response.sendRedirect(String url)

 发送了一次新的请求,之前的数据是不存在的,发生在客户端

 浏览器的地址是重定向的页面的地址

转发:request.getRequestDispatcher(String url).forward(request,response)

 没有开启新的请求,原来请求的数据一并传递过来,发生在服务器端。

 浏览器的地址栏不会发生改变

<jsp:forward page=“del.jsp”></jsp:forward>也是转发

out

out 对象用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。在使用 out 对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。

方法 描述
out.print(dataType d); 输出Type类型的值
out.println(dataType d); 输出Type类型的值然后换行
out.flush(); 刷新输出流

exception

image-20210910135424395

HttpSession

HttpSession 服务端的技术 服务器会为每一个用户 创建一个独立的HttpSession

HttpSession原理 当用户第一次访问Servlet时,服务器端会给用户创建一个独立的Session 并且生成一个SessionID,这个SessionID在响应浏览器的时候会被装进cookie中,从而被保存到浏览器中 当用户再一次访问Servlet时,请求中会携带着cookie中的SessionID去访问 服务器会根据这个SessionID去查看是否有对应的Session对象 有就拿出来使用;没有就创建一个Session(相当于用户第一次访问)

域的范围: Context域 > Session域 > Request域 Session域 只要会话不结束就会存在 但是Session有默认的存活时间(30分钟)

img

项目服务器404错误、异常配置webx.ml

image-20210910135517475

标签:内置,浏览器,String,对象,request,JSP,页面
From: https://blog.51cto.com/lianghecai/5787438

相关文章

  • jsp页面中的正则表达式--主要用于js判断文本格式
    一、方括号[]举例:二、^三、元字符举例的话,就可以这么说,要实现要表示整数的话:[]就表示输入的文本框里面的数字的第一位,可以这么写--->[1-9]然后已知\d表示的与[0-9......
  • 初始面向对象编程
    OOP面向对象编程类的结构classStudent{}类与对象classProgram{//主方法(程序入口)staticvoidMain(string[]args){//张三是Student实例......
  • 狂神说Java面向对象
    初识面向对象面向对象和面向过程面向过程思想步骤清晰简单,第一步做什么,第二步做什么....面对过程适合处理一些较为简单的问题面向对象思想物以类聚,分类的思维模......
  • 获取构造器和创建对象
    packagecom.liu.test03;/***@author:liu*日期:14:27:02*描述:IntelliJIDEA*版本:1.0*///子类@MyAnnotation("abc")publicclassStudentextends......
  • 面向对象三大特性之封装
    封装的概述封装应该有两个含义,一是把对象的属性和行为看成一个密不可分的整体,将两者封装在对象中。另一层含义是“信息屏蔽”,把不需要外界知道的信息隐藏起来,有些对象的属......
  • c++对象的拷贝、构造、虚构
    抽象基类​ 现有如下代码:classAbstract_base{public:virtual~Abstract_base()=0;virtualvoidinterface()const=0;virtualconstchar*mumble......
  • 面向对象的三个基本特征?-小白妹
    面向对象的三个基本特征是:封装、继承和多态。继承:让某个类型的对象获得另一个类型的对象的属性的方法。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例......
  • 实验三 类和对象(3)
    task1_1.cpp1#include<iostream>23usingstd::cout;4usingstd::endl;56//类A的定义7classA{8public:9A(intx0,inty0):x{x0},......
  • Es6,对象新增的方法
    Es6,对象新增的方法  Object.is()  ES5比较两个值是否相等,只有两个运算符:相等运算符(==)和严格相等运算符(===)。它们都有缺点,前者会自动转换数据类型,后者的NaN不等......
  • java线程例题-类/对象/实例化/声明/多线程/同步
    packageA_ShangGuiGu.Thread.ThreadTest;importjava.util.concurrent.locks.ReentrantLock;////////////////////////////classzhanghu{//账户类,定义一个余额属性。......