tomcat服务器如何重定向用户请求的某些文件的问题 最近做了一个项目,用户有大量的图片,放在非TOMCAT发布目录下面。现在我的做法是如果要访问图片,我先将图片拷贝到webapps的应用下面,再生成一个html的链接,如 http://localhost:8080/pm/tmp/6k6CuueOZZijCmDPGutIlA.jpg, 现在的问题是我在过滤器中可以拦截此请求,我想栏接此请求后,将用户目录下的那个文件发送给客户,如何做呢,请高人指点。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 对你的描述不是很明白。猜测你可能希望实现以下功能。 public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest)servletRequest; HttpServletResponse response = (HttpServletResponse)servletResponse; File file = getFile(request); if(file.exists()){ response.setContentType("image/jpg"); }else{ response.setContentType("text/html; charset=ISO-8859-1"); PrintWriter printWriter = response.getWriter(); printWriter.write("no image"); printWriter.flush(); printWriter.close(); return; } ServletOutputStream outputStream = response.getOutputStream(); FileInputStream inputStream = new FileInputStream(file); byte[] buffer = new byte[1024]; int readC; while((readC = inputStream.read(buffer)) != -1 ){ outputStream.write(buffer, 0, readC); outputStream.flush(); } inputStream.close(); outputStream.close(); return ; } /** * 根据请求获取用户要访问的图片所对应的 File. * @param request * @return */ private File getFile(HttpServletRequest request){// return new File("E:\\life\\杭州\\104_FUJI\\DSCF4115.JPG"); return new File("D:\\gif001.jpg"); } 如何使arraylist 线程安全?? 请问一下,谁知道调用MAS返回值的问题 请教高手!~关于JFrame组件更新(有代码) 如何将大于127的数值转换成ASCII值,谢谢! 一个关于继承的问题 忘了在哪个区看到的问题了,自己写了一个java的答案,请各位达人指教 有记事本代码,想增加两个功能撤消和字体设置 有关package的问题-100分的 this---->java的单步运行?? 64位win8安装spark的时候出现如下错误? 怎么样实现游戏中炮弹发射的冷却时间 有人会swt绘图的吗,知道怎样玩转"渐变"吗
FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest)servletRequest;
HttpServletResponse response = (HttpServletResponse)servletResponse;
File file = getFile(request);
if(file.exists()){
response.setContentType("image/jpg");
}else{
response.setContentType("text/html; charset=ISO-8859-1");
PrintWriter printWriter = response.getWriter();
printWriter.write("no image");
printWriter.flush();
printWriter.close();
return;
}
ServletOutputStream outputStream = response.getOutputStream();
FileInputStream inputStream = new FileInputStream(file);
byte[] buffer = new byte[1024];
int readC;
while((readC = inputStream.read(buffer)) != -1 ){
outputStream.write(buffer, 0, readC);
outputStream.flush();
}
inputStream.close();
outputStream.close();
return ;
}
/**
* 根据请求获取用户要访问的图片所对应的 File.
* @param request
* @return
*/
private File getFile(HttpServletRequest request){
// return new File("E:\\life\\杭州\\104_FUJI\\DSCF4115.JPG");
return new File("D:\\gif001.jpg");
}