網頁浏覽次數統計jsp代碼
<a href="3G.jsp">3G</a>
<a href="Java.jsp">Java</a>
<%
Object obj = application.getAttribute("count");
if(obj==null){
Integer count = 1;
application.setAttribute("count",count);
}else{
Integer count = (Integer)obj;
count++;
application.setAttribute("count",count);
}
%>
<h3>主頁面訪問的次數是:</h3>
<%=obj.toString()%>
pageContext對象
l pageContext對象是JSP技術中最重要的一個對象,它代表JSP頁面的運行環境,這個對象不僅封裝了對其它8大隱式對象的引用,它自身還是一個域對象,可以用來保存數據。並且,這個對象還封裝了web開發中經常涉及到的一些常用操作,例如引入和跳轉其它資源、檢索其它域對象中的屬性等。
l 通過pageContext獲得其他對象
l getException方法返回exception隱式對象
l getPage方法返回page隱式對象
l getRequest方法返回request隱式對象
l getResponse方法返回response隱式對象
l getServletConfig方法返回config隱式對象
l getServletContext方法返回application隱式對象
l getSession方法返回session隱式對象
l getOut方法返回out隱式對象
l pageContext作為域對象
l pageContext對象的方法
l public void setAttribute(java.lang.String name,java.lang.Object value)
l public java.lang.Object getAttribute(java.lang.String name)
l public void removeAttribute(java.lang.String name)
l pageContext對象中還封裝了訪問其它域的方法
l public java.lang.Object getAttribute(java.lang.String name,int scope)
l public void setAttribute(java.lang.String name, java.lang.Object value,int scope)
l public void removeAttribute(java.lang.String name,int scope)
l 代表各個域的常量
l PageContext.APPLICATION_SCOPE
l PageContext.SESSION_SCOPE
l PageContext.REQUEST_SCOPE
l PageContext.PAGE_SCOPE
l findAttribute方法 (*重點,查找各個域中的屬性)
l 引入和跳轉到其他資源
l PageContext類中定義了一個forward方法和兩個include方法來分別簡化和替代RequestDispatcher.forward方法和include方法。
l 方法接收的資源如果以“/”開頭, “/”代表當前web應用。
l JSP標簽
l JSP標簽也稱之為Jsp Action(JSP動作)元素,它用於在Jsp頁面中提供業務邏輯功能,避免在JSP頁面中直接編寫java代碼,造成jsp頁面難以維護。
l JSP常用標簽
l <jsp:include>標簽
l <jsp:forward>標簽
l <jsp:param>標簽
l <jsp:include>標簽
l <jsp:include>標簽用於把另外一個資源的輸出內容插入進當前JSP頁面的輸出內容之中,這種在JSP頁面執行時的引入方式稱之為動態引入。
l 語法:
l <jsp:include page="relativeURL | <%=expression%>" flush="true|false" />
l
l page屬性用於指定被引入資源的相對路徑,它也可以通過執行一個表達式來獲得。
l flush屬性指定在插入其他資源的輸出內容時,是否先將當前JSP頁面的已輸出的內容刷新到客戶端。
l <jsp:include>與include指令的比較
l <jsp:include>標簽是動態引入,<jsp:include>標簽涉及到的2個JSP頁面會被翻譯成2個servlet,這2個servlet的內容在執行時進行合並。
l 而include指令是靜態引入,涉及到的2個JSP頁面會被翻譯成一個servlet,其內容是在源文件級別進行合並。
l 不管是<jsp:include>標簽,還是include指令,它們都會把兩個JSP頁面內容合並輸出,所以這兩個頁面不要出現重復的HTML全局架構標簽,否則輸出給客戶端的內容將會是一個格式混亂的HTML文檔。
l <jsp:forward>標簽
l <jsp:forward>標簽用於把請求轉發給另外一個資源。
l 語法:
l <jsp:forward page="relativeURL | <%=expression%>" />
l page屬性用於指定請求轉發到的資源的相對路徑,它也可以通過執行一個表達式來獲得。
l <jsp:param>標簽
l 當使用<jsp:include>和<jsp:forward>標簽引入或將請求轉發給其它資源時,可以使用<jsp:param>標簽向這個資源傳遞參數。
l 語法1:
l <jsp:include page="relativeURL | <%=expression%>">
l <jsp:param name="parameterName" value="parameterValue|<%= expression %>" />
l </jsp:include>
l 語法2:
l <jsp:forward page="relativeURL | <%=expression%>">
l <jsp:param name="parameterName" value="parameterValue|<%= expression %>" />
l </jsp:include>
l <jsp:param>標簽的name屬性用於指定參數名,value屬性用於指定參數值。在<jsp:include>和<jsp:forward>標簽中可以使用多個<jsp:param>標簽來傳遞多個參數。
l 重點
l 到此為止,web開發接觸到了4個域對象,這4個域對象是學習web的重點,也是筆試經常考察的知識點
l pageContext(稱之為page域)//當前頁面
l request(稱之為request域)//請求
l session(稱之為session域)
l servletContext(稱之為application域)
作者 qiwancong