Servlet面试题(8)

2019-06-17 09:11

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

response.sendRedirect(”http://ybwen.home.chinaren.com/index.html”); 也能物理地改变HTTP HEADER属性,如下:

7、如何防止在JSP或SERVLET中的输出不被BROWSER保存在CACHE中? 把如下脚本加入到JSP文件的开始即可: 8、在JSP中如何设置COOKIE?

COOKIE是作为HTTP HEADER的一部分被发送的,如下方法即可设置: 9、在JSP中如何删除一个COOKIE?

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

11、在JSP中如何定义方法

你可以定义方法,但是你不能直接访问JSP的内置对象,而是通过参数的方法传递。如下: 12、如果BROWSER已关闭了COOKIES,在JSP中我如何打开SESSION来跟踪 使用URL重写即可,如下: hello1.jsp hello2.jsp hello2.jsp

13、在JSP中能发送EMAIL吗

可以使用SUN的专用包:sun.net.smtp包。如下脚本使用SmtpClient类发送EMAIL。 14、在SERVLET中我能调用一个JSP错误页吗

当然没问题,如下展示了如何在一个SERVLET控制逻辑单元内调用一个JSP错误页面。 protected void sendErrorRedirect(HttpServletRequest request HttpServletResponse response String errorPageURL Throwable e)

throws ServletException IOException {

request.setAttribute (”javax.servlet.jsp.jspException” e); getServletConfig().getServletContext().

getRequestDispatcher(errorPageURL).forward(request response); }

public void doPost(HttpServletRequest requestHttpServletResponse response) { try {

// do something } catch (Exception ex) { try {

sendErrorRedirect(requestresponse”/jsp/MyErrorPage.jsp”ex);

} catch (Exception e) { e.printStackTrace(); } } }

15、JSP和applet如何通讯 JSP如何与EJB SessionBean通讯 下面的代码段作了很好的示范

16、当我使用一个结果集时,如何防止字段为”null”的字域显示在我的HTML输入文本域中? 可以定义一个简单的函数来达到目的,如下: 然后在JSP的FORM中,可以这样使用

17、如何中SERVLET或JSP下载一个文件(如:binarytextexecutable)? 现提供两个解决方案: A:使用HTTP,

B:在Servlet中,通过设置ContentType和使用java.io包的Stream等类可作到.例如: response.setContentType(”application/x-msword”); 然后想输出缓冲中写一些东东即可。

18、使用useBean标志初始化BEAN时如何接受初始化参数 使用如下两标签即可:

19、使用JSP如何获得客户浏览器的信息? 使用request.getHeader(String)即可 20、能象调用子程序一样调用JSP吗? 当然可以,用

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

前一个为静态包含,而后一个为动态包含 22、JSP的缺点?

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

2。因大多数的servlet引擎不支持connection pooling 3。Servlet引擎没有标准 4。JSP与其它脚本语言的交互 23、JSP能进行递归调用吗? 当然可以如对form的提交给本页 34、如何实现JSP的国际化?

为各种版本提供resource bundles属性文件即可 25、在JSP中如何写文本文件? 使用PrintWriter对象,如:

26、如何在JSP中包括绝对路径文件? 使用URLConnection即可。

27、在servlets和JSP之间能共享session对象吗? 当然可以,

HttpSession session = request.getSession(true); session.putValue(”variable”\”);

28、javascript的变量能复制到JSP的SESSION中吗? 29、如何设置cookie在某一时间后过期? 用Cookie.setMaxAge(int)

30、如何获得当前的sessions数?

可以使用HttpSessionBindingListeners来跟踪

31、能设置一些代码在我所有的JSP文件之上运行?如果可以,能共享吗?

当然可以可以为你的JSP文件定义一个别名:/jsp/=ybwen.genius.myPreprocessingServlet而以/jsp/为前缀的文件可以使用

32、对一个JSP页,如果多个客户端同时请求它,同步可能吗? 在jsp:useBean语法中使用beanName有何好处? beanName使用Beans.instantiate()初始化Bean 33、当我使用时,在浏览器的地址栏没有改变? 使用response.sendRedirect(”newURL”) 34、如何转换JSP 0.9版本的文件到JSP1.1? 可使用sed/awk即可

35、使用JSP能设置HTML FORM中输入域的焦点,不用javascript? 没办法

36、使用JSP连接到数据库连接缓冲池的最好方法是什么? 1.使用JDBC2。0中带有此服务的Driver 2.使用提供有此服务的Application server 3.自己写

25/在servlets和JSP之间能共享session对象吗? 当然可以,

HttpSession session = request.getSession(true); session.putValue(”variable”,”value”); 26/在JSP中如何写文本文件? 使用PrintWriter对象,如: <%@ page import=”java.io.*” %> <%

String str = “print me”;

String nameOfTextFile = “/usr/anil/imp.txt”;

try {

PrintWriter pw = new PrintWriter(new FileOutputStream(nameOfTextFile)); pw.println(str); pw.close();

} catch(IOException e) { out.println(e.getMessage()); } %>

27/JSP的缺点?

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

2.因大多数的servlet引擎不支持connection pooling 3.Servlet引擎没有标准 4.JSP与其它脚本语言的交互

28/如何中SERVLET或JSP下载一个文件(如:binary,text,executable)? 现提供两个解决方案: A:使用HTTP,

B:在Servlet中,通过设置ContentType和使用java.io包的Stream等类可作到.例如: response.setContentType(”application/x-msword”); 然后想输出缓冲中写一些东东即可。

29/如何防止在JSP或SERVLET中的输出不被BROWSER保存在CACHE中? 把如下脚本加入到JSP文件的开始即可: <%

response.setHeader(”Cache-Control”,”no-store”); //HTTP 1.1 response.setHeader(”Pragma”,”no-cache”); //HTTP 1.0

response.setDateHeader (”Expires”, 0); //prevents caching at the proxy server %>

30/Servlet执行时一般实现哪几个方法? public void init(ServletConfig config) public ServletConfig getServletConfig() public String getServletInfo()

public void service(ServletRequest request,ServletResponse response) public void destroy() 31/Request对象的主要方法

setAttribute(String name,Object):设置名字为name的request的参数值 getAttribute(String name):返回由name指定的属性值

getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例 getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组

getCharacterEncoding():返回请求中的字符编码方式 getContentLength():返回请求的Body的长度

getHeader(String name):获得HTTP协议定义的文件头信息

getHeaders(String name):返回指定名字的request Header的所有值,结果是一个枚举的实例 getHeaderNames():返回所以request Header的名字,结果是一个枚举的实例 getInputStream():返回请求的输入流,用于获得请求中的数据 getMethod():获得客户端向服务器端传送数据的方法

getParameter(String name):获得客户端传送给服务器端的有name指定的参数值

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

getParameterValues(String name):获得有name指定的参数的所有值 getProtocol():获取客户端向服务器端传送数据所依据的协议名称 getQueryString():获得查询字符串

getRequestURI():获取发出请求字符串的客户端地址 getRemoteAddr():获取客户端的IP地址 getRemoteHost():获取客户端的名字

getSession([Boolean create]):返回和请求相关Session getServerName():获取服务器的名字

getServletPath():获取客户端所请求的脚本文件的路径 getServerPort():获取服务器的端口号

removeAttribute(String name):删除请求中的一个属性 32JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?

JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是”类servlet”。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。 33/如何现实servlet的单线程模式 <%@ page isThreadSafe=”false”%>

34/说出Servlet的生命周期,并说出Servlet和CGI的区别。

Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。

与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。

35/用ServletRequest和ServletContext调用ReqestDispatcher有什么区别?

在用ServletRequest调用RequestDispatcher的时候可以用相对URL, 但是ServletContext

不行。

36/当容器调用servlet的destory()方法的时候,servlet会马上销毁么? 如果当时这个servlet正在执

行其他任务或者线程呢?

是的, 当容器调用servlet的destory()方法的时候,servlet会马上销毁,但是容器在调用destory()方法之前,会等servlet的service()方法结束剩余的任务。 37/我们没有写servlet的构造方法,那么容器是怎么创建servlet的实例呢? 容器会自动为

Servlet

写一个无参的构造方法,容器是用

Class.forName(className).newInstance()来创建servlet的实例的。 38/Servlet的实例是在生命周期什么时候创建的? 配置servlet最重要的是什么?

Servlet实例是在servlet第一次在容器中被加载的是时候创建的, Init()方法是用来配置这个servlet实力的, 这个方法在servlet的生命周期中只被调用一次,所以应该把所有servlet生命周期中的配置 39/Servlet的生命周期?

Servlet是一种可以 在Servlet容器中运行的组件,那么理所当然就应该有一个从创建到销毁的过程,这个过程我们可以称之为Servlet生命周期。Servlet的生命 周期可以分为加载、实例化、初始化、处理客户请求和卸载五个阶段,体现在方法上主要是init()、service()和destroy()三个方法。生 命周期的具体说明如下:

Servlet容器完成加载Servlet类和实例化一个Servlet对象 init()方法完成初始化工作,该方法由Servlet容器调用完成 service()方法处理客户端请求,并返回响应结果

destroy()方法在Servlet容器卸载Servlet之前被调用,释放一些资源


Servlet面试题(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:电大计算机网考题库

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: