作者:
pttnews (PTT新聞)
2014-10-17 15:16:32String 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
*/
請問各位大師,該如何修改呢?
謝謝~
作者:
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)