イメージ サーブレットに奇妙な状況があります。Eclipse の内部 Web ブラウザでは問題なく動作しますが、FireFox、InternetExplorer、Chrome、Opera では動作しません....
サーブレット コード (以下)
protected void doPost(HttpServletRequest リクエスト、HttpServletResponse レスポンス) 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 の内部 Web ブラウザーでは、次のようになります (以下)。
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 で写真を正しく表示できるようになりました