[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