首页 > 技术专区 > 面试题 > 面试题基础四(前端JSP部分) 屏幕太窄?试试伸展一下吧 >

面试题基础四(前端JSP部分)

1. JSP有哪几个内置对象,每个对象的作用是什么,并写出常用方法

JSP中有9个内置对象,依次是:

application对象:该实例对象代表JSP所属的Web应用本身,可用于JSP页面,或者在Servlet之间交换信息。常用的方法有getAttribute(String name)、setAttribute(String attName,Object object)、removeAtribute(String name)、getContextPath()等。

config对象:代表当前JSP的配置信息,但JSP页面通常无须配置,因此也就不存在配置信息。常用的方法有getInitParameter(String name)、getInitParameterNames()等。

exception对象:是Throwable的实例,代表JSP脚本中产生的错误和异常,是JSP页面异常机制的一部分。常用的方法有getMessage()。

out对象:代表一个页面的输出流,通常用于在页面上输出变量值及常量。常用的方法有print()、println()等。

pageContext对象:该对象代表上下文,该对象主要用于访问JSP之间的共享数据。常用的方法有getAttribute(String name)、setAttribute(String attName,Object object)等。

request对象:用于封装请求的客户端的请求信息。常用的方法有getAttribute(String name)、setAttribute(String attName,Object object)、getParameter(String name)等。

response对象:用于封装服务器对客户端的响应数据。常用的方法有sendRedirect(String path)、getWriter()、setHeader(String name, String value)等。

session对象:用于保存会话数据。从客户端浏览器连接服务器开始,到客户端浏览器与服务器断开为止,这个过程就是一次会话。常用的方法有getAttribute(String name)、setAttribute(String name, Object value)、removeAttribute(String name)、invalidate()等。

page对象:page对象有点类似于Java编程中的this指针,就是指当前JSP页面本身。page是java.lang.Object类的对象。page对象在实际开发过程中并不经常使用。常用的方法有 equals(Object ob)等。

2. 什么是Cookie,有哪些常用方法? JSP中Session和Cookie的区别是什么,请详细阐述

Cookie是一种会话技术,用于存储会话数据,会话数据保存在浏览器客户端。

常用的方法有:

void setPath(java.lang.String uri) :设置cookie的有效访问路径

void setMaxAge(int expiry) :设置cookie的有效时间

void setValue(java.lang.String newValue) :设置cookie的值

session和cookie的区别:

a)cookie数据存放在客户的浏览器上,session数据放在服务器上。

b)cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗考虑到安全应当使用session。

c)session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用cookie。

d)单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

3. JSP中转发和重定向的区别是什么,请详细阐述

区别一:重定向时浏览器上的网址改变,转发是浏览器上的网址不变

区别二:重定向实际上产生了两次请求,转发只有一次请求

区别三:重定向时的网址可以是任何网址,转发的网址必须是本站点的网址

4. JSP与Servlet从编译的角度来看有什么区别?

JSP是Servlet技术的扩展,本质上就是Servlet的简易方式。JSP编译后是“类servlet”。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。

5. html中form里action方法的get和post有什么区别?jQuery对象和dom对象是怎样转换的?

get和post的区别:

1)请求参数存放的位置不同,get方式放在url后面,post方式放在请求实体内容中

2)请求参数的长度限制不同,get方式有长度限制,post没有

3)安全性,post方式提交的数据更安全

4)get方式的url可以传播,post方式不可以


jQuery对象转成DOM对象:

两种转换方式将一个jQuery对象转换成DOM对象:[index]和.get(index);

(1)jQuery对象是一个数据对象,可以通过[index]的方法,来得到相应的DOM对象。

如:var $v =$("#v") ; //jQuery对象

var v=$v[0];    //DOM对象

alert(v.checked)   //检测这个checkbox是否被选中

(2)jQuery本身提供,通过.get(index)方法,得到相应的DOM对象

如:var $v=$("#v");  //jQuery对象

var v=$v.get(0);   //DOM对象

alert(v.checked)  //检测这个checkbox是否被选中

 

DOM对象转成jQuery对象:

对于已经是一个DOM对象,只需要用$()把DOM对象包装起来,就可以获得一个jQuery对象了。$(DOM对象)

如:var v=document.getElementById("v");  //DOM对象

var $v=$(v);    //jQuery对象

转换后,就可以任意使用jQuery的方法了。

 

6. 列出解析XML的常用技术,并阐述各自特点

1)DOM(Document Object Model)

文档对象模型分析方式。以层次结构(类似于树型)来组织节点和信息片段,映射XML文档的结构,允许获取和操作文档的任意部分。是W3C的官方标准。

优点:

1、允许应用程序对数据和结构做出更改。

2、访问是双向的,可以在任何时候在树中上下导航,获取和操作任意部分的数据。

缺点:通常需要加载整个XML文档来构造层次结构,消耗资源大

2)SAX(Simple API for XML)

通过事件驱动,每发现一个节点就引发一个事件,通过回调方法完成解析工作,解析XML文档的逻辑需要应用程序完成。

优点:

1、不需要等待所有数据都被处理,分析就能立即开始。

2、只在读取数据时检查数据,不需要保存在内存中。

3、可以在某个条件得到满足时停止解析,不必解析整个文档。

4、效率和性能较高,能解析大于系统内存的文档。

缺点:

1、需要应用程序自己负责TAG的处理逻辑(例如维护父/子关系等),使用麻烦。

2、单向导航,很难同时访问同一文档的不同部分数据,不支持XPath。

3)JDOM(Java-based Document Object Model)

Java特定的文档对象模型。自身不包含解析器,使用SAX。

优点:

1、使用具体类而不是接口,简化了DOM的API。

2、大量使用了Java集合类,方便了Java开发人员。

缺点:

1、没有较好的灵活性。

2、性能较差。

4)DOM4J(Document Object Model for Java)

简单易用,采用Java集合框架,并完全支持DOM、SAX和JAXP。

优点:

1、大量使用了Java集合类,方便Java开发人员,同时提供一些提高性能的替代方法。

2、支持XPath。

3、有很好的性能。

缺点:

1、大量使用了接口,API较为复杂。