看板 java 關於我們 聯絡資訊
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 */ 請問各位大師,該如何修改呢? 謝謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.131.127 ※ 文章網址: http://www.ptt.cc/bbs/java/M.1413530199.A.EB7.html
iFEELing: 打開你的編輯器 載入JSP 然後開始改 10/18 16:10
iFEELing: 改完記得存檔更新啊 10/18 16:10
iFEELing: 欸不是 做了 forward 之後不就轉向出去了嗎 後面能改喔? 10/18 16:12
不是說好不動jsp ? forward 之後沒轉出去,只是繞一圈又跑回來了 唉!沒人回,難道不能修改嗎? ※ 編輯: pttnews (220.135.143.146), 10/18/2014 21:31:37
ssccg: forward出去就預期接手的servlet/jsp會做到完了吧 10/19 02:04
ssccg: 就算程式結構上繞回來,response應該也已經被commit不能改 10/19 02:06
ssccg: 想改應該用include吧 10/19 02:07
m大說得對,的確是iscommit == true,內容不能改! 但是我壞壞,就是想改耶~
bitlife: HttpServletResponseWrapper 10/19 17:26
喔!關鍵字出現了,我試試看等下回報~ ※ 編輯: pttnews (125.227.131.127), 10/20/2014 10:00:50
bitlife: 如果你等下就能回報,應該是找到範例可參考才會這麼快速XD 10/20 10:28
bitlife: 這個是入口關鍵字,實際用起來需要像粽子一串東西 10/20 10:28
bitlife: 原po掉進平行時空了嗎? 10/20 18:29
sorry ~ 正如b大所言,要配合filter,正合我的需求,謝謝您
justin761002: 應該還在綁粽子XD 10/21 09:03
※ 編輯: pttnews (220.135.143.146), 10/22/2014 20:13:48
bitlife: 呃,wrapper在filter中蠻常見,但你這題倒不見得需要filter 10/22 21:18
bitlife: 畢竟filter主要是面對外界的request,而某些jsp有可能是純 10/22 21:19
bitlife: 內部用或不經filter. 不過,若問題有急迫性先解決比較重要 10/22 21:20
請b大給一些提示, 若不用filter 難道是放在 jsp 或是 servlet 嗎? ※ 編輯: pttnews (125.227.131.127), 10/23/2014 10:11:56
bitlife: 正規作法是在程式裏直接用wrapper給jsp(callee)一個像[VM 10/23 11:00
bitlife: ]一樣的環境,然後用request dispatcher叫用該jsp,另外記 10/23 11:00
bitlife: 得弄個自訂的output stream設給response wrapper,看是要 10/23 11:01
bitlife: output到byte array或file,另外要處理一些getWriter等的 10/23 11:02
bitlife: 細節,呼叫完再從output stream的所在取出結果.這個作法正 10/23 11:02
bitlife: 規. (現在沒有推文秒數限制,推起來爽多了 XD) 10/23 11:03
bitlife: 這個弄好,以後很好用,例如你有個jsp是產生報表的,可以直 10/23 11:06
bitlife: 接叫用取得報表輸出,而不用用http client去取得,有些jsp 10/23 11:07
bitlife: 對外界隱藏,http client連不到,用這個方法都可以 10/23 11:07
bitlife: 這概念簡單講,就是把jsp/servlet等,當成像unix的pipe小工 10/23 11:08
bitlife: 具來叫用,把它輸出導向到自己所要的地方(ram or file) 10/23 11:08
謝謝b大解說! 感恩~ ※ 編輯: pttnews (125.227.131.127), 10/23/2014 13:58:42