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

JSP内置对象

时间:2023-03-07 16:01:47浏览次数:53  
标签:内置 浏览器 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/6104880

相关文章

  • vba 内置函数
    一.测试函数IsNumeric(x)‘是否为数字,返回Boolean结果,TrueorFalseIsDate(x)‘是否是日期,返回Boolean结果,TrueorFalseIsEmpty(x)‘是否为Empty,返回Boolean结果......
  • 一个实体对象不能由多个 IEntityChangeTracker 实例引用
    错误:一个实体对象不能由多个IEntityChangeTracker实例引用原因:之前的代码:db.T_DeviceVarDataCurrent.Add(current);  SaveChanges执行后current对象中的一些值(或引......
  • uni-app 组件传值 props 对象中传有方法, 小程序上被过滤
    uni-app组件传值props对象中传有方法,微信小程序上会被过滤,uniapp小程序props传值丢失uniapp中父组件向子组件传递prop时,如果prop是对象,对象内部不能包含function属......
  • Python 内置函数装饰器 classmethod staticmethod
    使用官方的说法:classmethod(function)中文说明:classmethod是用来指定一个类的方法为类方法,没有此参数指定的类的方法为实例方法,使用方法如下:classC:@classmetho......
  • C# 面向对象编程(OOP)
    C#面向对象编程(OOP)C#是面向对象的编程语言,对象就是面向对象程序设计的核心。所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个......
  • C# 面向对象 类和对象的声明及使用
    C#面向对象类和对象的声明及使用C#是面向对象的编程语言,对象就是面向对象程序设计的核心。所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实......
  • 开心档之Python3 面向对象
    Python3面向对象Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。本章节我们将详细介绍Python的面向对象编程。如果你以......
  • 类对象的四种获取方式
    packagetest;publicclassAcquireClass{publicstaticvoidmain(String[]args)throwsClassNotFoundException{/***得到类对象的四种......
  • JavaSE——面向对象三大特征之—多态
    多态的形式多态是继封装、继承之后,面向对象的第三大特性。多态是出现在继承或者实现关系中的。多态体现的格式:父类类型变量名=new子类/实现类构造器;变量名.方法......
  • angularJs的作用域对象和控制器,依赖对象,依赖注入
    需要注意的是使用$scope,需要使用以下版本<scriptsrc="https://cdn.staticfile.org/angular.js/1.2.29/angular.min.js"></script>   代码部分<!DOCTYPE......