[JSP ] 如何修改response的內容

作者: pttnews (PTT新聞)   2014-10-17 15:16:32
String style = (String)request.getParameter("style");
switch (new Integer(style)){
case 1:
request.getRequestDispatcher("/index1.jsp").forward(request, response);
break;
case 2:
request.getRequestDispatcher("/index2.jsp").forward(request, response);
break;
case 3:
request.getRequestDispatcher("/index3.jsp").forward(request, response);
break;
default:
request.getRequestDispatcher("/index1.jsp").forward(request, response);
break;
}
/*
我想在這邊加一段Java Code 修改response(HttpServletResponse) 的html內容。
不更動jsp file
*/
請問各位大師,該如何修改呢?
謝謝~
作者: iFEELing (ing)   2014-10-18 16:10:00
打開你的編輯器 載入JSP 然後開始改改完記得存檔更新啊欸不是 做了 forward 之後不就轉向出去了嗎 後面能改喔?
作者: ssccg (23)   2014-10-19 02:04:00
forward出去就預期接手的servlet/jsp會做到完了吧就算程式結構上繞回來,response應該也已經被commit不能改想改應該用include吧
作者: bitlife (BIT一生)   2014-10-19 17:26:00
HttpServletResponseWrapper如果你等下就能回報,應該是找到範例可參考才會這麼快速XD這個是入口關鍵字,實際用起來需要像粽子一串東西原po掉進平行時空了嗎?
作者: justin761002 (JiMing)   2014-10-21 09:03:00
應該還在綁粽子XD
作者: bitlife (BIT一生)   2014-10-22 21:18:00
呃,wrapper在filter中蠻常見,但你這題倒不見得需要filter畢竟filter主要是面對外界的request,而某些jsp有可能是純內部用或不經filter. 不過,若問題有急迫性先解決比較重要正規作法是在程式裏直接用wrapper給jsp(callee)一個像[VM]一樣的環境,然後用request dispatcher叫用該jsp,另外記得弄個自訂的output stream設給response wrapper,看是要output到byte array或file,另外要處理一些getWriter等的細節,呼叫完再從output stream的所在取出結果.這個作法正規. (現在沒有推文秒數限制,推起來爽多了 XD)這個弄好,以後很好用,例如你有個jsp是產生報表的,可以直接叫用取得報表輸出,而不用用http client去取得,有些jsp對外界隱藏,http client連不到,用這個方法都可以這概念簡單講,就是把jsp/servlet等,當成像unix的pipe小工具來叫用,把它輸出導向到自己所要的地方(ram or file)

Links booklink

Contact Us: admin [ a t ] ucptt.com