1. 判斷session是否過期,一個簡單的方法是HttpRequest.getSession(false) == null;
2.javaBean的用法:
<jsp:useBean id="contact" class="dbbean.OracleBean" scope="page"/>
<% ResultSet rst=contact.getContact(username);?%>
3.sendRedirect()和forward()方法的區(qū)別?
HttpServletResponse接口的sendRedirect()方法和RequestDispatcher接口的forward()方法都可以利用另外的資源(servlet、jsp、HTML)來為客戶端進(jìn)行服務(wù),但是這兩種方法有著本質(zhì)上的區(qū)別。
? 調(diào)用sendRedirect()方法,會在響應(yīng)中設(shè)置Location響應(yīng)報頭。要注意的是,這個過程對于用戶來說是透明的,瀏覽器會自動完成新的訪問。
? 調(diào)用forward()方法,對瀏覽器來說是透明的,但用戶卻不知道。用戶只關(guān)心的是發(fā)出一個請求,獲得了一個響應(yīng)。(地址欄并沒有發(fā)生改變)
? 還有一個區(qū)別是sendRedirct()方法不但可以在位于同一主機(jī)上的不同web應(yīng)用程序之間進(jìn)行重定向,而且可以將客戶端重定向到其他服務(wù)器上web應(yīng)用程序資源。
4.不緩存頁面
if(request.getProtocol ().compareTo ("HTTP/1.0")==0)
{
??? response.setHeader ("Pragma","No-cache");
}
else if? (request.getProtocol ().compareTo ("HTTP/1.1")==0)
{
??? response.setHeader ("Cache-Control","no-cache");
}
response.setDateHeader ("Expires", 0);
5.防止外部連接:
<%=request.getHeader("Referer")%>
<%if(null == request.getHeader("Referer") || request.getHeader("Referer").indexOf("main.com") < 0)…………%>
6.web.xml中有兩種配置error-page
Eg.
<error-page>
????????<error-code>500</error-code>
????????<location>/error.jsp</location>
??</error-page>
上面配置了當(dāng)系統(tǒng)發(fā)生 500 錯誤(即服務(wù)器內(nèi)部錯誤)時,跳轉(zhuǎn)到錯誤處理頁面 error.jsp 。
Eg.
<error-page>
????????<exception-type>java.lang.NullException</exception-type>
????????<location>/error.jsp</location>
???</error-page>
上面配置了當(dāng)系統(tǒng)發(fā)生
java.lang.NullException
(即空指針異常)時,跳轉(zhuǎn)到錯誤處理頁面
error.jsp
7.制作自己的標(biāo)簽:
JSP2.0 提供了一些較為簡單的方法,讓開發(fā)人員來撰寫自定義標(biāo)簽。JSP 2.0 提供兩種新的機(jī)制,分別為simple tag 和 tag file。
???簡單以tag file 為例。 [1].Hello.tag
<%
out.println("Hello form tag file.");
%>
我們先制作一個為Hello.tag的Tag file ,然后將他放置在 WEB-INF/tags/目錄下。在JSP網(wǎng)頁中使用Hello.tag 的方法如下:
<%@ taglib prefix="mytag" tagdir="WEB-INF/tags/" %>
<mytag :Hello/>
最后執(zhí)行的結(jié)果如下:
Hello form tag file.