jsp及Servlet面试题.docx

上传人:b****4 文档编号:24598657 上传时间:2023-05-29 格式:DOCX 页数:17 大小:28.69KB
下载 相关 举报
jsp及Servlet面试题.docx_第1页
第1页 / 共17页
jsp及Servlet面试题.docx_第2页
第2页 / 共17页
jsp及Servlet面试题.docx_第3页
第3页 / 共17页
jsp及Servlet面试题.docx_第4页
第4页 / 共17页
jsp及Servlet面试题.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

jsp及Servlet面试题.docx

《jsp及Servlet面试题.docx》由会员分享,可在线阅读,更多相关《jsp及Servlet面试题.docx(17页珍藏版)》请在冰豆网上搜索。

jsp及Servlet面试题.docx

jsp及Servlet面试题

jsp及Servlet面试题

2007-10-1123:

07

jsp及Servlet面试题

2007年10月11日星期四09:

34

1、jsp有哪些内置对象作用分别是什么

答:

JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应):

request用户端请求,此请求会包含来自GET/POST请求的参数

response网页传回用户端的回应

`pageContext网页的属性是在这里管理

session与请求有关的会话期

applicationservlet正在执行的内容

out用来传送回应的输出

configservlet的构架部件

pageJSP网页本身

exception针对错误网页,未捕捉的例外

2、jsp有哪些动作作用分别是什么

答:

JSP共有以下6种基本动作

jsp:

include:

在页面被请求的时候引入一个文件。

jsp:

useBean:

寻找或者实例化一个JavaBean。

jsp:

setProperty:

设置JavaBean的属性。

jsp:

getProperty:

输出某个JavaBean的属性。

jsp:

forward:

把请求转到一个新的页面。

jsp:

plugin:

根据浏览器类型为Java插件生成OBJECT或EMBED标记

3、JSP中动态INCLUDE与静态INCLUDE的区别?

答:

动态INCLUDE用jsp:

include动作实现

它总是会检查所含文件中的变化,适合用于包含动态页面,并且可以带参数

静态INCLUDE用include伪码实现,定不会检查所含文件的变化,适用于包含静态页面

4、两种跳转方式分别是什么有什么区别

答:

有两种,分别为:

前者页面不会转向include所指的页面,只是显示该页的结果,主页面还是原来的页面。

执行完后还会回来,相当于函数调用。

并且可以带参数.后者完全转向新页面,不会再回来。

相当于goto语句。

57、JSP的内置对象及方法。

request表示HttpServletRequest对象。

它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie,header,和session数据的有用的方法。

response表示HttpServletResponse对象,并提供了几个用于设置送回浏览器的响应的方法(如cookies,头信息等)

out对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。

pageContext表示一个javax.servlet.jsp.PageContext对象。

它是用于方便存取各种范围的名字空间、servlet相关的对象的API,并且包装了通用的servlet相关功能的方法。

session表示一个请求的javax.servlet.http.HttpSession对象。

Session可以存贮用户的状态信息

applicaton表示一个javax.servle.ServletContext对象。

这有助于查找有关servlet引擎和servlet环境的信息

config表示一个javax.servlet.ServletConfig对象。

该对象用于存取servlet实例的初始化参数。

page表示从该页面产生的一个servlet实例

二、JSP&Servlet技术

1.描述JSP和Servlet的区别、共同点、各自应用的范围

2.在Web开发中需要处理HTML标记时,应做什么样的处理,要筛选那些字符(<>&“”)

3.在JSP中如何读取客户端的请求,如何访问CGI变量,如何确定某个Jsp文件的真实路径。

4.描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理。

5.列出Jsp中包含外部文件的方式,两者有何区别。

6.说明Jsp中errorPage的作用,应用范围。

7.介绍在Jsp中如何使用JavaBeans。

8.简单介绍JSP的标记库

9.Jsp和Servlet中的请求转发分别如何实现。

59、JSP的常用指令

isErrorPage(是否能使用Exception对象),isELIgnored(是否忽略表达式)

60、什么情况下调用doGet()和doPost()?

Jsp页面中的form标签里的method属性为get时调用doGet(),为post时调用doPost()。

61、servlet的生命周期

web容器加载servlet,生命周期开始。

通过调用servlet的init()方法进行servlet的初始化。

通过调用service()方法实现,根据请求的不同调用不同的do***()方法。

结束服务,web容器调用servlet的destroy()方法。

62、如何现实servlet的单线程模式

<%@pageisThreadSafe="false"%>

63、页面间对象传递的方法request,session,application,cookie等

64、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?

Jsp是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。

JSP编译后是"类servlet"。

Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。

而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。

JSP侧重于视图,Servlet主要用于控制逻辑。

65、四种会话跟踪技术

会话作用域ServletsJSP页面描述

page否是代表与一个页面相关的对象和属性。

一个页面由一个编译好的Javaservlet类(可以带有任何的include指令,但是没有include动作)表示。

这既包括servlet又包括被编译成servlet的JSP页面

request是是代表与Web客户机发出的一个请求相关的对象和属性。

一个请求可能跨越多个页面,涉及多个Web组件(由于forward指令和include动作的关系)

session是代表与用于某个Web客户机的一个用户体验相关的对象和属性。

一个Web会话可以也经常会跨越多个客户机请求

application是是代表与整个Web应用程序相关的对象和属性。

这实质上是跨越整个Web应用程序,包括多个页面、请求和会话的一个全局作用域

66、Request对象的主要方法:

setAttribute(Stringname,Object):

设置名字为name的request的参数值

getAttribute(Stringname):

返回由name指定的属性值

getAttributeNames():

返回request对象所有属性的名字集合,结果是一个枚举的实例

getCookies():

返回客户端的所有Cookie对象,结果是一个Cookie数组

getCharacterEncoding():

返回请求中的字符编码方式

getContentLength():

返回请求的Body的长度

getHeader(Stringname):

获得HTTP协议定义的文件头信息

getHeaders(Stringname):

返回指定名字的requestHeader的所有值,结果是一个枚举的实例

getHeaderNames():

返回所以requestHeader的名字,结果是一个枚举的实例

getInputStream():

返回请求的输入流,用于获得请求中的数据

getMethod():

获得客户端向服务器端传送数据的方法

getParameter(Stringname):

获得客户端传送给服务器端的有name指定的参数值

getParameterNames():

获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实例

getParameterValues(Stringname):

获得有name指定的参数的所有值

getProtocol():

获取客户端向服务器端传送数据所依据的协议名称

getQueryString():

获得查询字符串

getRequestURI():

获取发出请求字符串的客户端地址

getRemoteAddr():

获取客户端的IP地址

getRemoteHost():

获取客户端的名字

getSession([Booleancreate]):

返回和请求相关Session

getServerName():

获取服务器的名字

getServletPath():

获取客户端所请求的脚本文件的路径

getServerPort():

获取服务器的端口号

removeAttribute(Stringname):

删除请求中的一个属性

67.在jsp:

useBean语法中使用beanName有何好处?

beanName使用Beans.instantiate()初始化Bean

68、Servlet执行时一般实现哪几个方法?

publicvoidinit(ServletConfigconfig)

publicServletConfiggetServletConfig()

publicStringgetServletInfo()

publicvoidservice(ServletRequestrequest,ServletResponseresponse)

publicvoiddestroy()JSP

1、如何混合使用Jsp和SSI#include?

在JSP中可以使用如下方式包含纯HTML:

--#includefile="data.inc"-->

但是如果data.inc中包含JSPCODE,我们可以使用:

<%@includefile="data.inc"%>

2、如何执行一个线程安全的JSP?

只需增加如下指令

<%@pageisThreadSafe="false"%>

3、JSP如何处理HTMLFORM中的数据?

通过内置的request对象即可,如下:

<%

Stringitem=request.getParameter("item");

inthowMany=newInteger(request.getParameter("units")).intValue();

%>

4、在JSP如何包含一个静态文件?

静态包含如下:

<%@includefile="copyright.html"%>

动态包含如下:

includepage="copyright.html"flush="true"/>

5、在JSP中如何使用注释?

主要有四中方法:

1。

<%--与--%>

2。

//

3。

/**与**/

4。

--与-->

6、在JSP中如何执行浏览重定向?

使用如下方式即可:

response.sendRedirect("

也能物理地改变HTTPHEADER属性,如下:

<%

response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);

StringnewLocn="/newpath/index.html";

response.setHeader("Location",newLocn);

%>

7、如何防止在JSP或SERVLET中的输出不被BROWSER保存在CACHE中?

把如下脚本加入到JSP文件的开始即可:

<%

response.setHeader("Cache-Control","no-store");//HTTP1.1

response.setHeader("Pragma","no-cache");//HTTP1.0

response.setDateHeader("Expires",0);//preventscachingattheproxyserver

%>

8、在JSP中如何设置COOKIE?

COOKIE是作为HTTPHEADER的一部分被发送的,如下方法即可设置:

<%

Cookiemycookie=newCookie("aName","aValue");

response.addCookie(mycookie);

%>

9、在JSP中如何删除一个COOKIE?

<%

CookiekillMyCookie=newCookie("mycookie",null);

killMyCookie.setMaxAge(0);

killMyCookie.setPath("/");

response.addCookie(killMyCookie);

%>

10、在一个JSP的请求处理中如何停止JSP的执行

如下例:

<%

if(request.getParameter("wen")!

=null){

//dosomething

}else{

return;

}

%>

11、在JSP中如何定义方法

你可以定义方法,但是你不能直接访问JSP的内置对象,而是通过参数的方法传递。

如下:

<%!

publicStringhowBadFrom(HttpServletRequestreq){

HttpSessionses=req.getSession();

...

returnreq.getRemoteHost();

}

%>

<%

out.print("ingeneral,laoleeisnotbaddie");

%>

<%=howBadFrom(request)%>

12、如果BROWSER已关闭了COOKIES,在JSP中我如何打开SESSION来跟踪

使用URL重写即可,如下:

hello1.jsp

<%@pagesession="true"%>

<%

Integernum=newInteger(100);

session.putValue("num",num);

Stringurl=response.encodeURL("hello2.jsp");

%>

>hello2.jsphello2.jsp

<%@pagesession="true"%>

<%

Integeri=(Integer)session.getValue("num");

out.println("Numvalueinsessionis"+i.intValue());

%>

13、在JSP中能发送EMAIL吗

可以使用SUN的专用包:

.smtp包。

如下脚本使用SmtpClient类发送EMAIL。

<%@pageimport=".smtp.SmtpClient,java.io.*"%>

<%

Stringfrom="ybwen@";

Stringto="hewenjun@,lei@";

try{

SmtpClientclient=newSmtpClient("mail.xxxxx.xxx");

client.from(from);

client.to(to);

PrintStreammessage=client.startMessage();

message.println("To:

"+to);

message.println("Subject:

SendingemailfromJSP!

");

message.println("ThiswassentfromaJSPpage!

");

message.println();

message.println("Cool!

:

-)");

message.println();

message.println("GoodBoy");

message.println("Imin");

message.println();

client.closeServer();

}

catch(IOExceptione){

System.out.println("ERRORSENDINGEMAIL:

"+e);

}

%>

14、在SERVLET中我能调用一个JSP错误页吗

当然没问题,如下展示了如何在一个SERVLET控制逻辑单元内调用一个JSP错误页面。

protectedvoidsendErrorRedirect(HttpServletRequestrequest,

HttpServletResponseresponse,StringerrorPageURL,

Throwablee)

throwsServletException,IOException{

request.setAttribute("javax.servlet.jsp.jspException",e);

getServletConfig().getServletContext().

getRequestDispatcher(errorPageURL).forward(request,

response);

}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse){

try{

//dosomething

}catch(Exceptionex){

try{

sendErrorRedirect(request,response,"/jsp/MyErrorPage.jsp",ex);

}catch(Exceptione){

e.printStackTrace();

}

}

}

15、JSP和APPLET如何通讯

JSP如何与EJBSessionBean通讯

下面的代码段作了很好的示范

<%@pageimport="javax.naming.*,javax.rmi.PortableRemoteObject,

foo.AccountHome,foo.Account"%>

<%!

//定义一个对SessionBeanHome接口实例的全局引用

AccountHomeaccHome=null;publicvoidjspInit(){

//获得Home接口实例

InitialContextcntxt=newInitialContext();

Objectref=cntxt.lookup("java:

comp/env/ejb/AccountEJB");

accHome=(AccountHome)PortableRemoteObject.narrow(ref,AccountHome.class);

}

%>

<%

//实例化SessionBean

Accountacct=accHome.create();

//调用远程方法

acct.doWhatever(...);

//如此等等

%>

16、当我使用一个结果集时,如何防止字段为"null"的字域显示在我的HTML输入文本域中?

可以定义一个简单的函数来达到目的,如下:

<%!

Stringblanknull(Strings){

return(s==null)?

"":

s;

}

%>然后在JSP的FORM中,可以这样使用

">

17、如何中SERVLET或JSP下载一个文件(如:

binary,text,executable)?

现提供两个解决方案:

A:

使用HTTP,

B:

在Servlet中,通过设置ContentType和使用java.io包的Stream等类可作到.例如:

response.setContentType("application/x-msword");

然后想输出缓冲中写一些东东即可。

18、使用useBean标志初始化BEAN时如何接受初始化参数

使用如下两标签即可:

getPropertyname="wenBean"property="someProperty"/>

setPropertyname="wenBean"property="someProperty"value="someValue"/>19、使用JSP如何获得客户浏览器的信息?

使用request.getHeader(String)即可

20、能象调用子程序一样调用JSP吗?

当然可以,用

includepage="relativeURL"flush="true"/>

21、当我重编译我的JSP使用的一个类后,为什么JVM继续使用我的老CLASS?

<%@includefile="abc.jsp"%>与

includepage="abc.jsp"/>之间的差别?

前一个为静态包含,而后一个为动态包含

22、JSP的缺点?

1。

对JAVA程序进行调试没有好东东

2。

因大多数的servlet引擎不支持connectionpooling

3。

Servlet引擎没有标准

4。

JSP与其它脚本语言的交互

23、JSP能进行递归调用吗?

当然可以,如对form的提交给本页

24、如何实现JSP的国际化?

为各种版本提供resourcebundles属性文件即可

25、在JSP中如何写文本文件?

使用PrintWriter对象,如:

<%@pageimport="java.io.*"%>

<%

Stringstr="printme";

StringnameOfTextFile="/usr/anil/imp.txt";

try{

PrintWriterpw=newPrintWriter(newFileOutputStream(nameOfTextFile));

pw.println(str);

pw.close();

}catch(IOExceptione){

out.println(e.getMessage());

}

%>

26、如何在JSP中包括绝对路径文件?

使用URLConnection即可。

27、在servlets和JSP之间能共享session对象吗?

当然可以,

HttpSessionsession=request.getSession(true);

session.putValue("variable","value");

28、JavaScript的变量能复制到JSP的SESSION中吗?

29、如何设置cookie在某一时间后过期?

用Cookie.setMaxAge(int)

30、如何获得当前的s

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 营销活动策划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1