jsp及Servlet面试题.docx
- 文档编号:24598657
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:17
- 大小:28.69KB
jsp及Servlet面试题.docx
《jsp及Servlet面试题.docx》由会员分享,可在线阅读,更多相关《jsp及Servlet面试题.docx(17页珍藏版)》请在冰豆网上搜索。
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"); %> <%@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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- jsp Servlet 试题
![提示](https://static.bdocx.com/images/bang_tan.gif)