JSP面試

          Posted on 2006-12-08 15:33 looline 閱讀(646) 評論(0)  編輯  收藏

          ? http://yidaba.blogspot.com/?一大把長見識的小故事
          1、如何混合使用Jsp和SSI?#include??
          ?在JSP中可以使用如下方式包含純HTML:?
          ?<!--#include?file="data.inc"-->?
          ?但是如果data.inc中包含JSP?CODE?,我們可以使用:?
          ?<%@include?file="data.inc"%>?

          ?


          ?2、如何執行一個線程安全的JSP??
          ?只需增加如下指令?
          ?<%@?page?isThreadSafe="false"?%>?


          ?3、JSP如何處理HTML?FORM中的數據??
          ?通過內置的request對象即可,如下:?
          ?<%?
          ?String?item?=?request.getParameter("item");?
          ?int?howMany?=?new?Integer(request.getParameter("units")).intValue();?
          ?%>?


          ?4、在JSP如何包含一個靜態文件??
          ?靜態包含如下:<%@?include?file="copyright.html"?%>?
          ?動態包含如下:<jsp:include?page="copyright.html"?flush="true"/>?


          ?5、在JSP中如何使用注釋??
          ?主要有四中方法:?
          ?1。<%--?與?--%>?
          ?2。//?
          ?3。/**與**/?
          ?4。<!--與-->?


          ?6、在JSP中如何執行瀏覽重定向??
          ?使用如下方式即可:response.sendRedirect("http://ybwen.home.chinaren.com/index.html");?
          ?也能物理地改變HTTP?HEADER屬性,如下:?
          ?<%?
          ?response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);?
          ?String?newLocn="/newpath/index.html";?
          ?response.setHeader("Location",newLocn);?
          ?%>?


          ?7、如何防止在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?
          ?%>?


          ?8、在JSP中如何設置COOKIE??
          ?COOKIE是作為HTTP?HEADER的一部分被發送的,如下方法即可設置:?
          ?<%?
          ?Cookie?mycookie?=?new?Cookie("aName","aValue");?
          ?response.addCookie(mycookie);?
          ?%>?


          ?9、在JSP中如何刪除一個COOKIE??
          ?<%?
          ?Cookie?killMyCookie?=?new?Cookie("mycookie",?null);?
          ?killMyCookie.setMaxAge(0);?
          ?killMyCookie.setPath("/");?
          ?response.addCookie(killMyCookie);?
          ?%>?


          ?10、在一個JSP的請求處理中如何停止JSP的執行?
          ?如下例:?
          ?<%?
          ?if?(request.getParameter("wen")?!=?null)?{?
          ?//?do?something?
          ?}?else?{?
          ?return;?
          ?}?
          ?%>?


          ?11、在JSP中如何定義方法?
          ?你可以定義方法,但是你不能直接訪問JSP的內置對象,而是通過參數的方法傳遞。如下:?
          ?<%!?
          ?public?String?howBadFrom(HttpServletRequest?req)?{?
          ?HttpSession?ses?=?req.getSession();?
          ?...?
          ?return?req.getRemoteHost();?
          ?}?
          ?%>?
          ?<%?
          ?out.print("in?general,lao?lee?is?not?baddie?");?
          ?%>?
          ?<%=?howBadFrom(request)?%>?


          ?12、如果BROWSER已關閉了COOKIES,在JSP中我如何打開SESSION來跟蹤?
          ?使用URL重寫即可,如下:?
          ?hello1.jsp?
          ?<%@?page?session="true"?%>?
          ?<%?
          ?Integer?num?=?new?Integer(100);?
          ?session.putValue("num",num);?
          ?String?url?=response.encodeURL("hello2.jsp");?
          ?%>?
          ?<a?href=<%=url%>>hello2.jsp</a>?

          ?hello2.jsp?
          ?<%@?page?session="true"?%>?
          ?<%?
          ?Integer?i=?(Integer?)session.getValue("num");?
          ?out.println("Num?value?in?session?is?"+i.intValue());?
          ?%>?


          ?13、在JSP中能發送EMAIL嗎?
          ?可以使用SUN的專用包:sun.net.smtp包。如下腳本使用SmtpClient類發送EMAIL。?
          ?<%@?page?import="sun.net.smtp.SmtpClient,?java.io.*"?%>?
          ?<%?
          ?String?from="ybwen@sina.com";?
          ?String?to="hewenjun@yeah.net,?lei@who.com.cn";?
          ?try{?
          ?SmtpClient?client?=?new?SmtpClient("mail.xxxxx.xxx");?
          ?client.from(from);?
          ?client.to(to);?
          ?PrintStream?message?=?client.startMessage();?
          ?message.println("To:?"?+?to);?
          ?message.println("Subject:?Sending?email?from?JSP!");?
          ?message.println("This?was?sent?from?a?JSP?page!");?
          ?message.println();?
          ?message.println("Cool!?:-)");?
          ?message.println();?
          ?message.println("Good?Boy");?
          ?message.println("Im?in?genius.com");?
          ?message.println();?
          ?client.closeServer();?
          ?}?
          ?catch?(IOException?e){?
          ?System.out.println("ERROR?SENDING?EMAIL:"+e);?
          ?}?
          ?%>?


          ?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?request,HttpServletResponse?response)?{?
          ?try?{?
          ?//?do?something?
          ?}?catch?(Exception?ex)?{?
          ?try?{?
          ?sendErrorRedirect(request,response,"/jsp/MyErrorPage.jsp",ex);?
          ?}?catch?(Exception?e)?{?
          ?e.printStackTrace();?
          ?}?
          ?}?
          ?}?


          ?15、JSP和APPLET如何通訊?
          ?JSP如何與EJB?SessionBean通訊?
          ?下面的代碼段作了很好的示范?
          ?<%@?page?import="javax.naming.*,?javax.rmi.PortableRemoteObject,?
          ?foo.AccountHome,?foo.Account"?%>?
          ?<%!?
          ?//定義一個對SessionBeanHome接口實例的全局引用?
          ?AccountHome?accHome=null;?

          ?public?void?jspInit()?{?
          ?//獲得Home接口實例?
          ?InitialContext?cntxt?=?new?InitialContext(?);?
          ?Object?ref=?cntxt.lookup("java:comp/env/ejb/AccountEJB");?
          ?accHome?=?(AccountHome)PortableRemoteObject.narrow(ref,AccountHome.class);?
          ?}?
          ?%>?
          ?<%?
          ?//實例化SessionBean?
          ?Account?acct?=?accHome.create();?
          ?//調用遠程方法?
          ?acct.doWhatever(...);?
          ?//?如此等等?
          ?%>?


          ?16、當我使用一個結果集時,如何防止字段為"null"的字域顯示在我的HTML輸入文本域中??
          ?可以定義一個簡單的函數來達到目的,如下:?
          ?<%!?
          ?String?blanknull(String?s)?{?
          ?return?(s?==?null)???""?:?s;?
          ?}?
          ?%>?

          ?然后在JSP的FORM中,可以這樣使用?
          ?<input?type="text"?name="shoesize"?value="<%=blanknull(shoesize)%>">?


          ?17、如何中SERVLET或JSP下載一個文件(如:binary,text,executable)??
          ?現提供兩個解決方案:?
          ?A:使用HTTP,?
          ?B:在Servlet中,通過設置ContentType和使用java.io包的Stream等類可作到.例如:?
          ?response.setContentType("application/x-msword");?
          ?然后想輸出緩沖中寫一些東東即可。?

          ?18、使用useBean標志初始化BEAN時如何接受初始化參數?
          ?使用如下兩標簽即可:?
          ?<jsp:getProperty?name="wenBean"?property="someProperty"/>?
          ?<jsp:setProperty?name="wenBean"?property="someProperty"?value="someValue"/>?

          ?19、使用JSP如何獲得客戶瀏覽器的信息??
          ?使用request.getHeader(String)即可?


          ?20、能象調用子程序一樣調用JSP嗎??
          ?當然可以,用<jsp:include?page="relativeURL"?flush="true"/>?


          ?21、當我重編譯我的JSP使用的一個類后,為什么JVM繼續使用我的老CLASS??


          ?<%@include?file="abc.jsp"%>與<jsp:include?page="abc.jsp"/>之間的差別??
          ?前一個為靜態包含,而后一個為動態包含?


          ?22、JSP的缺點??
          ?1。對JAVA程序進行調試沒有好東東?
          ?2。因大多數的servlet引擎不支持connection?pooling?
          ?3。Servlet引擎沒有標準?
          ?4。JSP與其它腳本語言的交互?


          ?23、JSP能進行遞歸調用嗎??
          ?當然可以,如對form的提交給本頁?


          ?34、如何實現JSP的國際化??
          ?為各種版本提供resource?bundles屬性文件即可?

          ?25、在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());?
          ?}?
          ?%>?


          ?26、如何在JSP中包括絕對路徑文件??
          ?使用URLConnection即可。?


          ?27、在servlets和JSP之間能共享session對象嗎??
          ?當然可以,?
          ?HttpSession?session?=?request.getSession(true);?
          ?session.putValue("variable","value");?


          ?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、當我使用<jsp:forward>時,在瀏覽器的地址欄沒有改變??
          ?使用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.自己寫


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          posts - 3, comments - 1, trackbacks - 0, articles - 1

          Copyright © looline

          主站蜘蛛池模板: 长兴县| 绥芬河市| 电白县| 乌恰县| 乐平市| 稻城县| 玛沁县| 威远县| 凤庆县| 常宁市| 大城县| 墨玉县| 湖南省| 象山县| 精河县| 西乌| 霞浦县| 平定县| 水富县| 扎兰屯市| 陆河县| 高清| 赣州市| 凤山县| 改则县| 新平| 柏乡县| 广德县| 启东市| 通州市| 南通市| 乌拉特后旗| 信宜市| 田东县| 大渡口区| 禹州市| 丽水市| 屯留县| 万山特区| 阿勒泰市| 白朗县|