面试之JSP九大内置对象和JSP四大作用域

jsp 九大内置对象和其作用详解

JSP中一共预先定义了9个这样的对象,分别为:request、response、session、application、out、pagecontext、config、page、exception

1、request对象
request 对象是 javax.servlet.httpServletRequest类型的对象。 该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。request对象的作用域为一次请求。
2、response对象
response 代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。response对象也具有作用域,它只在JSP页面内有效。
3、session对象
session 对象是由服务器自动创建的与用户请求相关的对象。服务器为每个用户都生成一个session对象,用于保存该用户的信息,跟踪用户的操作状态。session对象内部使用Map类来保存数据,因此保存数据的格式为 “Key/value”。 session对象的value可以使用复杂的对象类型,而不仅仅局限于字符串类型。
4、application对象
application 对象可将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应用中都有效。与session对象相比,application对象生命周期更长,类似于系统的“全局变量”。
5、out 对象
out 对象用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。在使用 out 对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。
6、pageContext 对象
pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用 pageContext对象。
7、config 对象
config 对象的主要作用是取得服务器的配置信息。通过 pageConext对象的 getServletConfig() 方法可以获取一个config对象。当一个Servlet 初始化时,容器把某些信息通过 config对象传递给这个 Servlet。 开发者可以在web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。
8、page 对象
page 对象代表JSP本身,只有在JSP页面内才是合法的。 page隐含对象本质上包含当前 Servlet接口引用的变量,类似于Java编程中的 this 指针。
9、exception 对象
exception 对象的作用是显示异常信息,只有在包含 isErrorPage=“true” 的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件。excepation对象和Java的所有对象一样,都具有系统提供的继承结构。exception 对象几乎定义了所有异常情况。在Java程序中,可以使用try/catch关键字来处理异常情况; 如果在JSP页面中出现没有捕获到的异常,就会生成 exception 对象,并把 exception 对象传送到在page指令中设定的错误页面中,然后在错误页面中处理相应的 exception 对象。 errorPage = “jsp页面出错后跳转到处理异常的页面。”

JSP四大作用域
范围从小往大排序

  • pageCotext < request < session < application

都可以通过setAttribute(“key”, value);传值

  1. pageContext 作用于当前页面,page的上下文,jsp页面。
<%pageContext.setAttribute("pageContext", "page");String context = pageContext.getAttribute("pageContext");
%>
  1. HttpRequestServlet / Request 作用域是这一个请求内,一个servlet内有效。
		req.setAttribute("req", "我是request");		String str = (String)req.getAttribute("req");System.out.println(str);
  1. HttpSession / Session 在这个会话内,默认30min,一个浏览器内有效。
    servlet1
		HttpSession session = req.getSession();// 2min session.setMaxInactiveInterval(2);session.setAttribute("s", "i am session");// session.invalidate(); 清除session
		//servlet2Object obj= req.getSession().getAttribute("s");System.out.println(obj);
  1. ServeletContext/application 输入服务器,只要浏览器不关闭,作用域一直有效。
		ServletContext application = req.getServletContext();application.setAttribute("app", "all useful");

九大对象对应的Servlet

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/421077.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实验5 编写、调试具有多个段的程序

本章实验的主题主要讲代码段、数据段、栈段的使用。 &#xff08;1&#xff09; assume cs:code, ds:data, ss:stackdata segmentdw 0123h, 0456h, 0789h, 0abch, 0defh, 0fedh, 0cbah, 0987h data endsstack segmentdw 0, 0, 0, 0, 0, 0, 0, 0 stack endscode segment start:…

前端学习(1036):bootstrap-js插件2

1大模态框 引入html 自己定义 2说明 就可以显示 js调用 script

实验6 实践课程中的程序

本实验书中已经有源码&#xff08;158页&#xff09;&#xff0c;稍微改动一下即可。本题中值得学习的地方就是用双重循环遍历二位数组&#xff0c;这在C语言中很简单&#xff0c;但是在汇编中要注意cx的在内外层循环之间的切换情况。 assume cs:codesg, ds:datasg, ss:stacksg…

字符流读取,乱码问题

碰到问题&#xff0c;字符流读取文本文件&#xff0c;读取输出&#xff0c;强转成char出现乱码问题。 题目 用流统计文本文件的字符个数 public static int getSum() {int count 0;BufferedReader br null;try {// 字节流转换为字符流&#xff0c; 设置编码。br new Buffere…

实验7 寻址方式在结构化数据访问总的应用

做本实验时明显感觉寄存器不够用&#xff0c;所以要对bx&#xff0c;si&#xff0c;di&#xff0c;bp的使用仔细阅读&#xff0c;本题比较琐碎&#xff0c;做本题更需要的是耐心&#xff0c;耐心&#xff0c;耐心。 assume cs:codedata segment db 1975,1976,1977,1978,1979,…

Jsp传值方式(乱码问题的解决)

一&#xff0c;Jsp页面的三种传值方式 1&#xff0c;地址栏传值&#xff08;get提交&#xff09; 2&#xff0c;a标签传值 &#xff08;get提交&#xff09; 3&#xff0c;表单提交 &#xff08;默认get方式提交&#xff09; Get/post取中文都会乱码。 Jsp的内置对象request…

实验8 分析一个奇怪的程序

仔细阅读9.3节依据位移进行转移的jmp指令&#xff0c;然后理解下面的这个很奇怪的程序就容易多了&#xff0c;当然要看着机器码去分析。 assume cs:codesgcodesg segmentmov ax, 4c00hint 21hstart: mov ax, 0 s: nopnopmov di, offset smov si, offset s2mov ax, cs:[si]mov c…

实验9 根据材料编程

本实验关注的重点是如何显示一个二维的数据&#xff0c;很自然是使用二重循环&#xff0c;汇编二重循环也有一个套路&#xff0c;具体看下面的代码&#xff0c;几乎所有的二重循环都是下面这个套路。值得强调的是&#xff0c;两层循环直接进出一定要注意上下文切换&#xff0c;…

用Java和ffmpeg把音频和视频合成视频

借助第三方工具ffmpeg合成视频 需求&#xff1a;在小破站上下载了一些视频&#xff0c;但是放到电脑里面看&#xff0c;我擦&#xff0c;声音文件和视频文件是分开的。 正确安装ffmpeg并配置好环境变量。Java代码测试 转载指明源头 里面是下载的视频和音频 我就上代码递归了…

实验10 编写子程序

1&#xff0c;显示字符串 assume cs:codesg, ds:datasgdatasg segmentdb hello, world, 0 datasg endscodesg segment start: mov dh, 14mov dl, 40mov cl, 2mov ax, datasgmov ds, axmov si, 0 ;si point to datacall show_strmov ax, 4c00hint 21h;-------show_str---------…

企业网站前端制作实战教程 JQuery CSS JS HTML 登录界面

盒子模型 引入重置css样式reset样式 charset "utf-8"; html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strik…

企业网站前端制作实战教程 JQuery CSS JS HTML 登录表单验证

引入重置css样式reset样式 charset "utf-8"; html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong…

实验11 编写子程序

本章知识很琐碎&#xff0c;原则是用哪查哪&#xff0c;无需记忆。 设置标志寄存器的意义在于&#xff1a; &#xff08;1&#xff09;用来存储相关指令的某些执行结果&#xff1b; &#xff08;2&#xff09;用来为CPU执行相关指令提供行为依据&#xff1b; &#xff08;3…

前端学习(1041):todolist--html界面

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>todoList待办事项</title> </head><b…

前端学习(1042):todoList存储

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>todoList待办事项</title><script src"…

实验一:写一个hello world小程序

实验一&#xff1a;写一个hello world小程序 注&#xff1a;本课程为网易云课堂孟宁老师《软件工程&#xff1a;C编码实践篇》 的配套实验与作业。请配合 MOOC 课程学习使用。 实验要求 写一个hello world小程序&#xff1a; 在Linux命令行环境&#xff08;实验楼&#xff09;…

前端学习(1043):回车把数据存储到本地存储里面

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>todoList待办事项</title><script src"…

前端学习(1044):本地存储实现数据录入

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>todoList待办事项</title><script src"…

XCode5添加新建类模板(Cocos2dx Template Class for Scene or Layer)

注&#xff1a;以下内容截选自Cocos2D开发网–Cocos2Dev.com&#xff0c;谢谢&#xff01; 怎么添加xcode类模板? 1、打开Xcode的类模板目录地址&#xff1a;/Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File Templates 2、打开里面C and C文件&…