请教各位以下代码

StudentIT 2007-05-25 10:55:52
以下是我的过滤器代码:
package untitled1;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;

public class Filter2 extends HttpServlet implements Filter {
private FilterConfig filterConfig;
//Handle the passed-in FilterConfig
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}

//Process the request/response pair
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) {
try {
//是一个.do的请求
String url = ((HttpServletRequest) request).getRequestURI();
System.out.print("url=" + url);

String name = "/index.wml"; // 这是生成的wml文件名
String pName = "e:\\index.wml"; // 生成html的完整路径
String realPath = "";
try {
java.io.File file = new java.io.File(request.getRealPath(url));
realPath = "F:/Temp/untitled1/WebModule1/"; // file.getParent();
} catch (Exception e) {

}
final ByteArrayOutputStream os = new ByteArrayOutputStream();
final ServletOutputStream stream = new ServletOutputStream() {
public void write(byte[] data, int offset, int length) {
os.write(data, offset, length);
}

public void write(int b) throws IOException {
os.write(b);
}
};
final PrintWriter pw = new PrintWriter(new OutputStreamWriter(os));

HttpServletResponse rep = new HttpServletResponseWrapper((
HttpServletResponse) response) {
public ServletOutputStream getOutputStream() {
return stream;
}

public PrintWriter getWriter() {
return pw;
}
};
//将请求拦截后,把请求的响应保存到rep对象中
filterChain.doFilter(request, rep);
pw.flush();
FileOutputStream fos = new FileOutputStream(realPath + name); // 把jsp输出的内容写到指定路径的htm文件中
os.writeTo(fos);
fos.close();
//原请求响应保到到文件中
//此处需要重定向到被保存下来的文件,但不知如何操作(注意:此过滤器设定为对Action对象进行过滤)???????????????????????

} catch (Exception sx) {
filterConfig.getServletContext().log(sx.getMessage());
}
}

//Clean up resources
public void destroy() {
}
}
以下是Action:
public class Test extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
return mapping.findForward("index");
}
}

...全文
194 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧