###前提・実現したいこと
ローカルに保存してある画像を表示させたい。
(ローカルどころか、何故かプロジェクト内の画像すら表示できません)
###該当のソースコード
HTML
1<img src="${path}"> 2<img src="../img/001.jpg"> 3<img src="${pageContext.request.contextPath}/img/001.jpg">
###試したこと
上記の1行目のpathの中身は
/Volumes/USBROBO/ファイル/画像/001.jpgで、
http://localhost:8080/Volumes/USBROBO/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB/%E7%94%BB%E5%83%8F/001.jpg 404 (Not Found)
というエラーが出ています。(検証のコンソールにて)
日本語混じりorローカルを見ているから表示されないのかと思い
001.jpgをWebContent/imgに移動させ、ひとまず画像表示だけしてみようと
上記の2,3行目の方法で表示を試みたのですが、ダメでした。
(こちらはエラーは出ていません)
###補足情報(言語/FW/ツール等のバージョンなど)
eclipseで開発しています。
Java(Servlet/jsp)です。
ものすごく初歩的なことで申し訳ないのですが・・・
よろしくお願いいたします。
ここから追記です。
エラーが出ていました...
java.lang.ClassNotFoundException: jp.co.files.command.null at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1333) at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1167) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at jp.co.files.servlet.Controller.doPost(Controller.java:64) at jp.co.files.servlet.Controller.doGet(Controller.java:40) at javax.servlet.http.HttpServlet.service(HttpServlet.java:622) at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at jp.co.files.filter.EncodeingFilter.doFilter(EncodeingFilter.java:25) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:217) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:673) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745)
書籍に載っていたコマンドパターン?を真似して作成しているのですが、それが悪さしているのでしょうか...?
@WebServlet({ "/" }) public class Controller extends HttpServlet { private static final long serialVersionUID = 1L; private HashMap<String, String> commands; private String CommandsTable[][] = { { "top", "Top" }, { "menu", "Menu" }, { "process", "Process" }, { "lib", "Lib" } }; public void init() throws ServletException { commands = new HashMap<String, String>(); for (int i = 0; i < CommandsTable.length; i++) { commands.put(CommandsTable[i][0], CommandsTable[i][1]); } } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String action = request.getRequestURI().split("/")[request.getRequestURI().split("/").length - 2]; String methodName = request.getRequestURI().split("/")[request.getRequestURI().split("/").length - 1]; if (methodName.equals("booker")) { action = "top"; } String className = commands.get(action); Command command; String url; try { command = (Command) (Class.forName("jp.co.files.command." + className).newInstance()); url = command.execute(request, methodName); request.getRequestDispatcher(url).forward(request, response); } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) { e.printStackTrace(); } } }