我的图像 servlet 出现了奇怪的情况。它适用于 Eclipse 内部网络浏览器,但不适用于 FireFox、InternetExplorer、Chrome、Opera....
Servlet 代码(下)
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
File fl=new File("C:\\Documents and Settings\\Administrator\\My Documents\\Eclipse\\zadatak\\WebContent\\WEB-INF\\upload\\"); PrintWriter pw=response.getWriter(); response.setContentType("text/html"); pw.println("<html>"); pw.println("<head>"); pw.println("<style type=\"text/css\">"); pw.println("img{display:block-inline;width:100px;height:100px;"); pw.println("</style>"); pw.println("</head>"); pw.println("<body>"); pw.println("<table border=\"1\">"); pw.println("<tr>"); for(File f:fl.listFiles()){ pw.println("<td>"); pw.println("<img src=\"" + f.getPath() + "\">"); pw.println("</td>"); } pw.println("</tr>"); pw.println("</table>"); pw.println("</body>"); pw.println("</html>");
}
在 Eclipse 内部网络浏览器中看起来像这样(下)
Eclipse 内部 Web 浏览器的 PrintScreen
最后我找到了解决我的问题的方法。谢谢大家帮助我!
现在,此代码有效!
ServletContext context=request.getServletContext(); String path=context.getRealPath("upload"); File fl=new File(path); PrintWriter pw=response.getWriter(); response.setContentType("text/html"); pw.println("<html>"); pw.println("<head>"); pw.println("<style type=\"text/css\">"); pw.println("img{display:block-inline;width:100px;height:100px;"); pw.println("</style>"); pw.println("</head>"); pw.println("<body>"); pw.println("<table border=\"1\">"); pw.println("<tr>"); LinkedHashMap<Integer, String> hm=new LinkedHashMap<Integer,String>(); int imageIndex=-1; for(File f:fl.listFiles()) { if(f.getName()!=null){ if(f.getName().endsWith(".bmp")) hm.put(++imageIndex, f.getName()); } } Iterator<String> pic=hm.values().iterator(); while(pic.hasNext()){ pw.println("<img src=\"upload/" + pic.next() + "\"/>"); } pw.println("</tr>"); pw.println("</table>"); pw.println("</body>"); pw.println("</html>");
我项目中的类层次结构看起来像
MyWebProject
|-- src
| :
|
|-- web
| |-- META-INF
| | `-- MANIFEST.MF
| |-- WEB-INF
| | `-- web.xml
|-- upload (the place where I keep pictures)
:
Firefox 现在可以正确显示图片了