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. inode ls -li 显示索引节点

    ls -a, --all do not ignore entries starting with . -A, --almost-all do not list implied . and .. --a ...

  2. Hadoop实战-MapReduce之WordCount(五)

    环境介绍: 主服务器ip:192.168.80.128(master)  NameNode  SecondaryNameNode ResourceManager 从服务器ip:192.168.80.1 ...

  3. 牛客练习赛14 D 比较月亮大小 【水】

    链接:https://www.nowcoder.com/acm/contest/82/D 来源:牛客网 比较月亮大小 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其 ...

  4. Spring AOP-xml配置

    在spring AOP(一)中介绍了AOP的基本概念和几个术语,现在学习一下在XML中如何配置AOP. 在XML中AOP的配置元素有以下几种: AOP配置元素 描述 <aop:config> ...

  5. 数据结构之 线性表---单链表的操作B(先逆序+再删除重复元素)

    数据结构上机测试2-2:单链表操作B Time Limit: 1000MS Memory limit: 65536K 题目描述 按照数据输入的相反顺序(逆位序)建立一个单链表,并将单链表中重复的元素删 ...

  6. 专网IP和公网IP的区别是什么

    专网ip是自己网内用,公网的话就全球有效 最大区别是公网IP世界只有一个,私网IP可以重复,但是在一个局域网内不能重复 访问互联网是需要IP地址的,IP地址又分为公网IP和私网IP,访问互联网需要公网 ...

  7. codeforces 466C. Number of Ways 解题报告

    题目链接:http://codeforces.com/problemset/problem/466/C 题目意思:给出一个 n 个数的序列你,问通过将序列分成三段,使得每段的和都相等的分法有多少种. ...

  8. 简单快捷地测试 JPush API

    随着 JPush API v3版本的推出,加上之前开放的 Report API,JPush API 逐渐切换为比较好的符合 REST API 的规范,从而也很容易地使用一般的 HTTP/REST 工具 ...

  9. nginx开发_字符串操作函数

    由于ngx_str_t为非NULL结尾的函数,且网络请求中有大量忽略大小写的需求,所以nginx内部封装了许多字符串操作相关的函数,函数名称极其相识,且使用时有有些约定,特此整理. 赋值&拷贝 ...

  10. inline关键字的用法详解

    1. 引入inline关键字的原因 在c/c++中,为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了inline修饰符,表示为内联函数. 栈空间就是指放置程序的局部数据(也就是 ...