<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[[jsp相关]JSP面试（经典）]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Wed, 03 Jan 2007 04:23:46 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	<p align="center">1、如何混合使用Jsp和SSI #include? <br/> 在JSP中可以使用如下方式包含纯HTML： <br/> <!--#include file="data.inc"--> <br/> 但是如果data.inc中包含JSP CODE ，我们可以使用： <br/> <%@include file="data.inc"%> <br/><br/> <br/> 2、如何执行一个线程安全的JSP? <br/> 只需增加如下指令 <br/> <%@ page isThreadSafe="false" %> <br/><br/> <br/> 3、JSP如何处理HTML FORM中的数据? <br/> 通过内置的request对象即可，如下： <br/> <% <br/> String item = request.getParameter("item"); <br/> int howMany = new Integer(request.getParameter("units")).intValue(); <br/> %> <br/><br/> <br/> 4、在JSP如何包含一个静态文件? <br/> 静态包含如下：<%@ include file="copyright.html" %> <br/> 动态包含如下：<jsp:include page="copyright.html" flush="true"/> <br/><br/> <br/> 5、在JSP中如何使用注释? <br/> 主要有四中方法： <br/> 1。<%-- 与 --%> <br/> 2。// <br/> 3。/**与**/ <br/> 4。<!--与--> <br/><br/> <br/> 6、在JSP中如何执行浏览重定向? <br/> 使用如下方式即可：response.sendRedirect("http://ybwen.home.chinaren.com/index.html"); <br/> 也能物理地改变HTTP HEADER属性，如下： <br/> <% <br/> response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); <br/> String newLocn="/newpath/index.html"; <br/> response.setHeader("Location",newLocn); <br/> %> <br/><br/> <br/> 7、如何防止在JSP或SERVLET中的输出不被BROWSER保存在CACHE中? <br/> 把如下脚本加入到JSP文件的开始即可： <br/> <% <br/> response.setHeader("Cache-Control","no-store"); //HTTP 1.1 <br/> response.setHeader("Pragma","no-cache"); //HTTP 1.0 <br/> response.setDateHeader ("Expires", 0); //prevents caching at the proxy server <br/> %> <br/><br/> <br/> 8、在JSP中如何设置COOKIE? <br/> COOKIE是作为HTTP HEADER的一部分被发送的，如下方法即可设置： <br/> <% <br/> Cookie mycookie = new Cookie("aName","aValue"); <br/> response.addCookie(mycookie); <br/> %> <br/><br/> <br/> 9、在JSP中如何删除一个COOKIE? <br/> <% <br/> Cookie killMyCookie = new Cookie("mycookie", null); <br/> killMyCookie.setMaxAge(0); <br/> killMyCookie.setPath("/"); <br/> response.addCookie(killMyCookie); <br/> %> <br/><br/> <br/> 10、在一个JSP的请求处理中如何停止JSP的执行 <br/> 如下例： <br/> <% <br/> if (request.getParameter("wen") != null) &#123; <br/> // do something <br/> &#125; else &#123; <br/> return; <br/> &#125; <br/> %> <br/><br/> <br/> 11、在JSP中如何定义方法 <br/> 你可以定义方法，但是你不能直接访问JSP的内置对象，而是通过参数的方法传递。如下： <br/> <%! <br/> public String howBadFrom(HttpServletRequest req) &#123; <br/> HttpSession ses = req.getSession(); <br/> ... <br/> return req.getRemoteHost(); <br/> &#125; <br/> %> <br/> <% <br/> out.print("in general,lao lee is not baddie "); <br/> %> <br/> <%= howBadFrom(request) %> <br/><br/> <br/> 12、如果BROWSER已关闭了COOKIES，在JSP中我如何打开SESSION来跟踪 <br/> 使用URL重写即可，如下： <br/> hello1.jsp <br/> <%@ page session="true" %> <br/> <% <br/> Integer num = new Integer(100); <br/> session.putValue("num",num); <br/> String url =response.encodeURL("hello2.jsp"); <br/> %> <br/> <a href=<%=url%>>hello2.jsp</a> <br/><br/> hello2.jsp <br/> <%@ page session="true" %> <br/> <% <br/> Integer i= (Integer )session.getValue("num"); <br/> out.println("Num value in session is "+i.intValue()); <br/> %> <br/><br/> <br/> 13、在JSP中能发送EMAIL吗 <br/> 可以使用SUN的专用包：sun.net.smtp包。如下脚本使用SmtpClient类发送EMAIL。 <br/> <%@ page import="sun.net.smtp.SmtpClient, java.io.*" %> <br/> <% <br/> String from="ybwen@sina.com"; <br/> String to="hewenjun@yeah.net, lei@who.com.cn"; <br/> try&#123; <br/> SmtpClient client = new SmtpClient("mail.xxxxx.xxx"); <br/> client.from(from); <br/> client.to(to); <br/> PrintStream message = client.startMessage(); <br/> message.println("To: " + to); <br/> message.println("Subject: Sending email from JSP!"); <br/> message.println("This was sent from a JSP page!"); <br/> message.println(); <br/> message.println("Cool! :-)"); <br/> message.println(); <br/> message.println("Good Boy"); <br/> message.println("Im in genius.com"); <br/> message.println(); <br/> client.closeServer(); <br/> &#125; <br/> catch (IOException e)&#123; <br/> System.out.println("ERROR SENDING EMAIL:"+e); <br/> &#125; <br/> %> <br/><br/> <br/> 14、在SERVLET中我能调用一个JSP错误页吗 <br/> 当然没问题，如下展示了如何在一个SERVLET控制逻辑单元内调用一个JSP错误页面。 <br/> protected void sendErrorRedirect(HttpServletRequest request, <br/> HttpServletResponse response, String errorPageURL, <br/> Throwable e) <br/> throws ServletException, IOException &#123; <br/> request.setAttribute ("javax.servlet.jsp.jspException", e); <br/> getServletConfig().getServletContext(). <br/> getRequestDispatcher(errorPageURL).forward(request, <br/> response); <br/> &#125; <br/><br/> public void doPost(HttpServletRequest request,HttpServletResponse response) &#123; <br/> try &#123; <br/> // do something <br/> &#125; catch (Exception ex) &#123; <br/> try &#123; <br/> sendErrorRedirect(request,response,"/jsp/MyErrorPage.jsp",ex); <br/> &#125; catch (Exception e) &#123; <br/> e.printStackTrace(); <br/> &#125; <br/> &#125; <br/> &#125; <br/><br/> <br/> 15、JSP和APPLET如何通讯 <br/> JSP如何与EJB SessionBean通讯 <br/> 下面的代码段作了很好的示范 <br/> <%@ page import="javax.naming.*, javax.rmi.PortableRemoteObject, <br/> foo.AccountHome, foo.Account" %> <br/> <%! <br/> //定义一个对SessionBeanHome接口实例的全局引用 <br/> AccountHome accHome=null; <br/><br/> public void jspInit() &#123; <br/> //获得Home接口实例 <br/> InitialContext cntxt = new InitialContext( ); <br/> Object ref= cntxt.lookup("java:comp/env/ejb/AccountEJB"); <br/> accHome = (AccountHome)PortableRemoteObject.narrow(ref,AccountHome.class); <br/> &#125; <br/> %> <br/> <% <br/> //实例化SessionBean <br/> Account acct = accHome.create(); <br/> //调用远程方法 <br/> acct.doWhatever(...); <br/> // 如此等等 <br/> %> <br/><br/> <br/> 16、当我使用一个结果集时，如何防止字段为"null"的字域显示在我的HTML输入文本域中? <br/> 可以定义一个简单的函数来达到目的，如下： <br/> <%! <br/> String blanknull(String s) &#123; <br/> return (s == null) ? "" : s; <br/> &#125; <br/> %> <br/><br/> 然后在JSP的FORM中，可以这样使用 <br/> <input type="text" name="shoesize" value="<%=blanknull(shoesize)%>"> <br/><br/> <br/> 17、如何中SERVLET或JSP下载一个文件（如：binary,text,executable)？ <br/> 现提供两个解决方案： <br/> A：使用HTTP， <br/> B：在Servlet中，通过设置ContentType和使用java.io包的Stream等类可作到.例如： <br/> response.setContentType("application/x-msword"); <br/> 然后想输出缓冲中写一些东东即可。 <br/><br/> 18、使用useBean标志初始化BEAN时如何接受初始化参数 <br/> 使用如下两标签即可： <br/> <jsp:getProperty name="wenBean" property="someProperty"/> <br/> <jsp:setProperty name="wenBean" property="someProperty" value="someValue"/> <br/><br/> 19、使用JSP如何获得客户浏览器的信息？ <br/> 使用request.getHeader(String)即可 <br/><br/> <br/> 20、能象调用子程序一样调用JSP吗？ <br/> 当然可以，用<jsp:include page="relativeURL" flush="true"/> <br/><br/> <br/> 21、当我重编译我的JSP使用的一个类后，为什么JVM继续使用我的老CLASS？ <br/><br/> <br/> <%@include file="abc.jsp"%>与<jsp:include page="abc.jsp"/>之间的差别？ <br/> 前一个为静态包含，而后一个为动态包含 <br/><br/> <br/> 22、JSP的缺点？ <br/> 1。对JAVA程序进行调试没有好东东 <br/> 2。因大多数的servlet引擎不支持connection pooling <br/> 3。Servlet引擎没有标准 <br/> 4。JSP与其它脚本语言的交互 <br/><br/> <br/> 23、JSP能进行递归调用吗？ <br/> 当然可以,如对form的提交给本页 <br/><br/> <br/> 34、如何实现JSP的国际化？ <br/> 为各种版本提供resource bundles属性文件即可 <br/><br/> 25、在JSP中如何写文本文件？ <br/> 使用PrintWriter对象，如： <br/> <%@ page import="java.io.*" %> <br/> <% <br/> String str = "print me"; <br/> String nameOfTextFile = "/usr/anil/imp.txt"; <br/> try &#123; <br/> PrintWriter pw = new PrintWriter(new FileOutputStream(nameOfTextFile)); <br/> pw.println(str); <br/> pw.close(); <br/> &#125; catch(IOException e) &#123; <br/> out.println(e.getMessage()); <br/> &#125; <br/> %> <br/><br/> <br/> 26、如何在JSP中包括绝对路径文件？ <br/> 使用URLConnection即可。 <br/><br/> <br/> 27、在servlets和JSP之间能共享session对象吗？ <br/> 当然可以， <br/> HttpSession session = request.getSession(true); <br/> session.putValue("variable","value"); <br/><br/> <br/> 28、JavaScript的变量能复制到JSP的SESSION中吗？ <br/><br/> <br/> 29、如何设置cookie在某一时间后过期？ <br/> 用Cookie.setMaxAge(int) <br/><br/> <br/> 30、如何获得当前的sessions数？ <br/> 可以使用HttpSessionBindingListeners来跟踪 <br/><br/> <br/> 31、能设置一些代码在我所有的JSP文件之上运行？如果可以，能共享吗？ <br/> 当然可以,可以为你的JSP文件定义一个别名:/jsp/=ybwen.genius.myPreprocessingServlet,而以/jsp/为前缀的文件可以使用 <br/><br/> <br/> 32、对一个JSP页，如果多个客户端同时请求它，同步可能吗？ <br/> 在jsp:useBean语法中使用beanName有何好处？ <br/> beanName使用Beans.instantiate()初始化Bean <br/><br/> <br/> 33、当我使用<jsp:forward>时，在浏览器的地址栏没有改变？ <br/> 使用response.sendRedirect("newURL") <br/><br/> <br/> 34、如何转换JSP 0.9版本的文件到JSP1.1? <br/> 可使用sed/awk即可 <br/><br/> <br/> 35、使用JSP能设置HTML FORM中输入域的焦点，不用JavaScript? <br/> 没办法 <br/><br/> <br/> 36、使用JSP连接到数据库连接缓冲池的最好方法是什么？ <br/> 1.使用JDBC2。0中带有此服务的Driver <br/> 2.使用提供有此服务的Application server <br/> 3.自己写</p>
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] [jsp相关]JSP面试（经典）]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>