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. 【BZOJ2339】[HNOI2011]卡农 组合数+容斥

    [BZOJ2339][HNOI2011]卡农 题解:虽然集合具有无序性,但是为了方便,我们先考虑有序的情况,最后将答案除以m!即可. 考虑DP.如果我们已经知道了前m-1个集合,那么第m个集合已经是确 ...

  2. Vue 向下扩展后就类似于 jQuery

    https://cn.vuejs.org/v2/guide/comparison.html

  3. java之快速排序

    //基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据 ...

  4. SVN在myeclipse中新建地址的时出现被拒绝

    新建资源库地址: 控制台提示信息: svn: connection refused by the server svn: connection refused by the server Connec ...

  5. Struts多个文件上传

    Struts2多个文件上传 10级学员 韩晓爽课堂笔记 多个文件上传分为List集合和数组,下面我们着重介绍一下list集合的上传.都大同小异. 一 介绍 1. 在struts2文件上传的时候要先导入 ...

  6. BestCoder Round #92 1001 Skip the Class —— 字典树 or map容器

    题目链接:http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=748&pid=1001 题解: 1.trie树 关 ...

  7. UVALive - 4867 —— dp

    题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_ ...

  8. html5--3.6 input元素(5)

    html5--3.6 input元素(5) 学习要点 input元素及其属性 input元素 用来设置表单中的内容项,比如输入内容的文本框,按钮等 不仅可以布置在表单中,也可以在表单之外的元素使用 i ...

  9. Java网络编程InetAddress类

    InetAddress用来代表IP地址.一个InetAdress的对象就代表着一个IP地址, getByName(String host):在给定主机名的情况下确定主机的 IP 地址,主机名可以是机器 ...

  10. 精选Java面试题

    什么是隐式类型转换?什么是显示类型转换? 当将占位数少的类型赋值给占位数多的类型时,Java自动使用隐式类型转换(如int型转为long型).当把在级别高的变量的值赋给级别底变量时,必须使用显示类型转 ...