2010年10月13日 星期三

非 Servlet 的Java程式碼取得JSP request 物件

在JSP中常有藉有 request 物件來獲得所需物件(如parameter、cookie)的需求
在Servlet裡我們會將 request、response 物件傳入所要覆寫的傳輸協定裡,如下:
public void doPost(HttpServletRequest request, HttpServletResponse response){
....
}

那假如要在非Servlet取得request,我們就自行將request物件傳入即可,例如:
public void setPageInfo(HttpServletRequest request){
    if(request.getParameter("page") != null){
    page = Integer.parseInt(request.getParameter("page"));
    }
    request.setAttribute("page", page);
}

之後在目標JSP頁面中就可以用標籤或 EL呼叫method:
<jsp:setProperty property="pageInfo" name="view" value="${pageContext.request}" />

當然不只可以用標籤來進行就是了,<%=xxx.xxx(request)%> 這樣子的處理也OK
不過需要注意一下
如果要做 set 或 動態性的處理似乎只能在有傳入request的該method才能做
推測是傳入request物件表示在請求過程的處理
如果是回應已經送出的話,可能就只能使用 getParameter() 之類的method

沒有留言:

張貼留言