作者pttnews (PTT新闻)
看板java
标题[JSP ] 如何修改response的内容
时间Fri Oct 17 15:16:32 2014
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://webptt.com/cn.aspx?n=bbs/java/M.1413530199.A.EB7.html
1F:→ iFEELing: 打开你的编辑器 载入JSP 然後开始改 10/18 16:10
2F:→ iFEELing: 改完记得存档更新啊 10/18 16:10
3F:→ iFEELing: 欸不是 做了 forward 之後不就转向出去了吗 後面能改喔? 10/18 16:12
不是说好不动jsp ?
forward 之後没转出去,只是绕一圈又跑回来了
唉!没人回,难道不能修改吗?
※ 编辑: pttnews (220.135.143.146), 10/18/2014 21:31:37
4F:→ ssccg: forward出去就预期接手的servlet/jsp会做到完了吧 10/19 02:04
5F:→ ssccg: 就算程式结构上绕回来,response应该也已经被commit不能改 10/19 02:06
6F:→ ssccg: 想改应该用include吧 10/19 02:07
m大说得对,的确是iscommit == true,内容不能改!
但是我坏坏,就是想改耶~
7F:→ bitlife: HttpServletResponseWrapper 10/19 17:26
喔!关键字出现了,我试试看等下回报~
※ 编辑: pttnews (125.227.131.127), 10/20/2014 10:00:50
8F:→ bitlife: 如果你等下就能回报,应该是找到范例可参考才会这麽快速XD 10/20 10:28
9F:→ bitlife: 这个是入口关键字,实际用起来需要像粽子一串东西 10/20 10:28
10F:推 bitlife: 原po掉进平行时空了吗? 10/20 18:29
sorry ~
正如b大所言,要配合filter,正合我的需求,谢谢您
11F:推 justin761002: 应该还在绑粽子XD 10/21 09:03
※ 编辑: pttnews (220.135.143.146), 10/22/2014 20:13:48
12F:推 bitlife: 呃,wrapper在filter中蛮常见,但你这题倒不见得需要filter 10/22 21:18
13F:→ bitlife: 毕竟filter主要是面对外界的request,而某些jsp有可能是纯 10/22 21:19
14F:→ bitlife: 内部用或不经filter. 不过,若问题有急迫性先解决比较重要 10/22 21:20
请b大给一些提示,
若不用filter 难道是放在 jsp 或是 servlet 吗?
※ 编辑: pttnews (125.227.131.127), 10/23/2014 10:11:56
15F:→ bitlife: 正规作法是在程式里直接用wrapper给jsp(callee)一个像[VM 10/23 11:00
16F:→ bitlife: ]一样的环境,然後用request dispatcher叫用该jsp,另外记 10/23 11:00
17F:→ bitlife: 得弄个自订的output stream设给response wrapper,看是要 10/23 11:01
18F:→ bitlife: output到byte array或file,另外要处理一些getWriter等的 10/23 11:02
19F:→ bitlife: 细节,呼叫完再从output stream的所在取出结果.这个作法正 10/23 11:02
20F:→ bitlife: 规. (现在没有推文秒数限制,推起来爽多了 XD) 10/23 11:03
21F:推 bitlife: 这个弄好,以後很好用,例如你有个jsp是产生报表的,可以直 10/23 11:06
22F:→ bitlife: 接叫用取得报表输出,而不用用http client去取得,有些jsp 10/23 11:07
23F:→ bitlife: 对外界隐藏,http client连不到,用这个方法都可以 10/23 11:07
24F:→ bitlife: 这概念简单讲,就是把jsp/servlet等,当成像unix的pipe小工 10/23 11:08
25F:→ bitlife: 具来叫用,把它输出导向到自己所要的地方(ram or file) 10/23 11:08
谢谢b大解说! 感恩~
※ 编辑: pttnews (125.227.131.127), 10/23/2014 13:58:42