1.请说明cookie、request、session、application的作用域和声明周期?

并说明它们适用与什么场景?

request的生命周期是一次请求。可以用于JSP表单提交数据。

session会话可以设置它的超时时间,Tomcat中的默认时间为30分钟,session对象的典型应用时用来对用户的身份进行验证,进而进行权限设置。

cookie存放的载体在客户端的浏览器中,生命周期默认时根据服务器返回的Set-Cookie头设置的,共两大类:

会话cookie:浏览器一关闭就清除了。

有过期时间:超过设定的过期时间才会消失。

cookie能使用户在不输入用户名和密码的情况下进入曾经浏览过的一些站点。

application生命周期在整个应用程序中。开始于应用启动,应用停止时被销毁。application对象的最常见的应用时用来统计页面的访问人数或者是记录网站的在线人数。

2.在JSP页面中,能否获得Servlet中request.setAttribute中的值,如果    能获得,可以通过那种方式,如果不能,简述为什么?

Servlet通过转发方式跳转到JSP页面,JSP页面就可以获得request中属性的值。例如:

Servlet代码如下:

request.setAttribute("name","xdl");

request.getRequestDispatcher("/index.jsp").forward(request,response);

JSP代码如下:

<%=request.getAttribute("name") %>

3.JSP内置对象及方法

JSP有9个内置对象:request、response、out、session、pageContext、applicaton、config、page、exception。

(1)request表示javax.servlet.http.HttpServletRequest对象,用于获取客户端提供的数据,包括头信息、客户端地址、请求方式等。主要方法如下:

1)getCookies():返回客户端所有Cookies对象,结果是—个Cookies数组。

2)getSession():返回与请求相关的session。

3)setAttribute(String key,Object obj):设置属性的属性值。

4)getAttribute(String name):返回指定属性的属性值。

5)request.getParameter(String name):获得客户端传送给服务器端的参数值。

6)getCharacterEncoding():返回字符编码方式。

6)getContentType():得到请求体的MIME类型

(2)response表示javax.servlet.http.HttpServletResponse对象,用于对客户端的请求作出动态的响应,向客户端发送数据。主要方法有:

1)addCookie(Cookies c):添加—个Cookie对象,用来保存客户端的用户信息。

2)sendRedirect(String location):把响应发送到另一个位置进行处理。

3)sendError(int):向客户端发送错误的信息。

4)getBufferSize():返回缓冲区的大小。

5)getOutputStream():返回客户端的输出流对象。

6)setContentType(String ContentType):设置相应的MIME类型。

7)setHeader(String name,String value):设置指定名字的HTTP文件头的值如果已经存在则将覆盖已经存在的值。

8)encodeURL(String url):使用sessionld封装URL。如果没有必要封装URL,返回原值。

(3)out对象是javax.servlet.jsp.JspWriter的—个实例,用来向客户端输出各种数据。主要方法如下:

1)print()/println():根据参数类型输出各种类型的数据。

2)flush():输出缓冲区的数据。

3)close():关闭输出流。

4)clear():清除缓冲区里的数据,但不会把数据输出到客户端。

5)getBufferSize():获得缓冲区的大小。

6)clearBuffer():清除缓冲区里的数据,并把数据输出到客户端。

7)getRemaining():获得缓冲区中没有被占用的空间的大小。

8)isAutoFlush():返回布尔值,如果AutoFlush为真,返回true:反之,返回false。

(4)pageContext表示—个javax.servlet.jsp.PageContext对象。它是用于方便存取所有范围的名字空间的对象,并且包装了通用的servlet相关功能的方法。主要方法如下:

1)getOut():返回当前客户端响应被使用的JspWriter流(out)。

2)getSession():返回当前页中的HttpSession对象(session).

3)getPage():返回当前页的Obj ect对象(page)。

4)getRequest():返回当前页的ServletRequest对象(request).

5)getResponse():返回当前页的ServletResponse对象(response)。

6)getException():运回当前页的Exception对象(exception)。

7)getServletConfig():返回当前页的ServletConfig对象(config).

8)getServletContext():返回当前页的ServletContext对象(application).

9)setAttribute(String name,Object attribute):设置属性及属性值。

10)getAttribute(String name,int scope):在指定范围内取属性的值。

11)removeAttribute(String name):删除某属性。

12)release():释放pageContext所占用的资源。

13)forward(String relativeUrIPath):使当前页面重导到另一页面。

14)include(String relativeUrIPath):在当前位置包含另一文件。

(5)session表示—个请求的javax.servlet.http.HttpSession对象。Session用来保存用户的会话信息和会话状态。主要方法如下:

1)setAttribute(String name.Object obj):设置指定名字name的属性值value,并存储在session对象中。

2)getAttribute(String name):获取与指定名字name相联系的属性。

3)invaldate():取消SESSION,使SESSION不可用。

4)getld():返回SESSION创建时JSP引擎为它设的惟-ID号。

5)getCreationTime():返回SESSION创建时间。

6)getLastAccessedTime():返回此SESSION里客户端最近一次请求时间。

7)getMaxlnactivelnterval():返回两次请求间隔多长时间此SESSION被取消。

8)getValueNames():返回—个包含此Session中所有可用属性的数组。

9)removeValue(String name):删除Session中指定的属性。

(6)application表示—个javax,servlet.ServletContext对象。用于用户间的数据共享,可以存放全局变量。主要方法如下:

1)getAttribute(String name):返回给定名的属性值。

2)getAttributeNames():返回所有可用属性名的枚举。

3)setAttribute(String name,Object obj):设定属性的属性值。

4)removeAttribute(String name):删除—属性及其属性值。

5)getServetInfo():返回JSP(Servlet)引擎名及版本号。

6)getReaIPath(String path):返回—虚拟路径的真实路径。

7)getContext(String uripath):返回指定WebApplication的application对象。

8)getResource(String path):返回指定资源(文件及目录)的URL路径。

9)getRequestDispatcher(String uripath):返回指定资源的RequestDispatcher。

(7)config表示—个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。主要方法如下:

1)getServletContext():退回含有服务器相关信息的ServletContext对象。

2)getlnitParameter(String name):返回初始化参数的值。

3)getlnitParameterNames():返回Servlet初始化所需所有参数的权举。

(8)page表示从该页面产生的—个servlet实例,即this。

(9)exception用于处理JSP页面发生的错误和异常。主要方法有:

1)getMessage():返回描述异常的消息。

2)toString():返回关于异常的简短描述消息。

3)printStackTrace():显示异常及其栈轨迹。

4)filllnStackTrace():重写异常的执行栈轨迹。

IT兄弟连 JavaWeb教程 JSP内置对象经典面试题的更多相关文章

  1. IT兄弟连 JavaWeb教程 JSP内置对象经典案例

    案例需求:使用MVC模式编写一个程序当发起一个deptList.do请求时在servlet中准备一个部门列表对象,把这个列表对象放入request作用域中,然后转发到deptlist.jsp,使用js ...

  2. IT兄弟连 JavaWeb教程 JSP内置对象1

    JSP内置对象定义 JSP提供了由容器实现和管理的内置对象,也可以称之为隐含对象,这些内置对象不需要通过JSP页面编写来实例化,在所有的JSP页面中都可以直接使用,它们起到了简化页面的作用,JSP的内 ...

  3. IT兄弟连 JavaWeb教程 JSP内置对象3

    读取web.xml配置信息的config对象 config对象主要用于取得服务器的配置信息.通过pageContxt对象的getServletConfig()方法获取一个config对象.当一个Ser ...

  4. IT兄弟连 JavaWeb教程 JSP内置对象2

    application对象 application对象用于保存所有应用程序中的公有数据.它在服务器启动时自动创建,在服务器关闭时销毁,当application对象没有被销毁时,所有用户都可以共享app ...

  5. JavaWeb学习----JSP内置对象详解

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  6. JavaWeb之 JSP:内置对象,EL表达式,JSP标签基础

    JSP的内置对象 什么是JSP的内置对象呢? 在JSP页面进行编程的时候,如果我们要使用一些对象,如:HttpSession,ServletConfig,ServletContext这些对象,如果每次 ...

  7. JavaWeb基础-Jsp内置对象

    request对象 客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应,它是HttpServlteRequest类的实例.Request对象具有请求域,即完成客户端 ...

  8. IT兄弟连 JavaWeb教程 EL与JSTL表达式经典面试题

    1.简述EL表达式的作用 EL表达式的作用可分为以下三类 访问Bean的属性. 输出简单的运算结果. 获取请求参数值. 2.JSP标签的作用?如何定义? JSP标签可以分离JSP页面的内容和逻辑,业务 ...

  9. JavaWeb——JSP内置对象application,JSP属性范围

    application application语法 application对象 JSP属性范围 范围的分类 page request session application pagecontext延伸 ...

随机推荐

  1. hdu 1542&&poj 1151 Atlantis[线段树+扫描线求矩形面积的并]

    Atlantis Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total S ...

  2. EasyDarwin开源云平台接入海康威视EasyCamera摄像机之快照获取与上传

    本文转自EasyDarwin团队成员Alex的博客:http://blog.csdn.net/cai6811376 EasyCamera开源摄像机拥有获取摄像机实时快照并上传至EasyDarwin云平 ...

  3. ASP.NET MVC EXTJS 通用主菜单框架

    一.说明 首先我不知道定义的文章标题是不是准确,我这篇博文介绍的是一个通用的软件主菜单框架,界面布局用的是extjs,还是先上一个图吧. 软件主界面左侧菜单采用的风格是extjs的手风琴模式,需要注意 ...

  4. cerery

    cerery http://docs.celeryproject.org/en/latest/userguide/index.html

  5. 一起来学linux:FTP服务器搭建

    首先安装vsftpd: apt install vsftpd有下面几个重要的配置文件:1 /etc/vsftpd.conf. 这个是vsftpd的配置文件.通过“参数=设置值”的方式来设置的. 2 / ...

  6. [通信]Linux User层和Kernel层常用的通信方式

    转自:https://bbs.csdn.net/topics/390991551?page=1 netlink:https://blog.csdn.net/stone8761/article/deta ...

  7. php设计模式之单例模式实例(设计mysqli连接数据的数据处理类)

    一直在研究php的设计模式,但是没有亲历使用过,所以还是一知半解,通过几天的学习终于对php的单例设计模式稍稍的有些了解,特此写出一个数据库处理类(只涉及到简单的原理),以便自己以后方便查阅,至于其他 ...

  8. LightOJ1282 Leading and Trailing —— 指数转对数

    题目链接:https://vjudge.net/problem/LightOJ-1282 1282 - Leading and Trailing    PDF (English) Statistics ...

  9. PYTHON 爬虫笔记四:正则表达式基础用法

    知识点一:正则表达式详解及其基本使用方法 什么是正则表达式 正则表达式对子符串操作的一种逻辑公式,就是事先定义好的一些特定字符.及这些特定字符的组合,组成一个‘规则字符串’,这个‘规则字符串’用来表达 ...

  10. system调用命令行命令而不显示命令行窗口

    system调用命令行命令而不显示命令行窗口 通常用system调用命令行命令时都会弹出黑底白字的命令行窗口,下面的代码可以不显示弹出的命令行窗口. 代码如下 #pragma comment( lin ...