サーブレットで画像の表示ができません。
下記コードの抜粋
java
1protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 2 // TODO Auto-generated method stub 3 response.getWriter().write("Hello, World!"); 4 HttpSession session = request.getSession(); 5 Object obj = session.getAttribute("testdata"); 6 7 response.setContentType("text/html;charset=Shift-JIS"); 8 PrintWriter out = response.getWriter(); 9 out.println("<html>\n<head>\n<title>HelloWorld!</title>\n</head>\n<body>\n"); 10 out.println("<p>Hello World.</p>\n"); 11 out.println("<p>てすとてすとてすと</p>\n"); 12 out.println("<img src=\"./images/t55_01.png\">\n"); 13 }
t55_01.pngはプロジェクト直下のimagesフォルダの中に入っています。どこに画像を配置すれば画像をブラウザから読み込めますか?文言は表示できています。
プロジェクトの構成や、どのようにしてサーブレットを動かしているか、教えて抱けますか?
HelloServletプロジェクト内のsrc直下にHelloWorld.javaがあり、それが上記ソースコードです。どのようにしてというのがよくわからないのですが、Tomcat7のServersの中にserver.xml、context.xml、web.xmlなどを配置しています。
HelloWorld.java全文
import java.io.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import org.apache.catalina.connector.Response;
import javax.servlet.*;
import javax.servlet.http.*;
/**
* Servlet implementation class HelloWorld
*/
@WebServlet("/HelloWorld")
public class HelloWorld extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public HelloWorld() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
doIt(request, response);
response.getWriter().write("Hello, World!");
HttpSession session = request.getSession();
Object obj = session.getAttribute("testdata");
response.setContentType("text/html;charset=Shift-JIS");
PrintWriter out = response.getWriter();
out.println("<html>\n<head>\n<title>HelloWorld!</title>\n</head>\n<body>\n");
out.println("<p>Hello World.</p>\n");
out.println("<p>てすとてすとてすと</p>\n");
out.println("<img src=\"./images/t55_01.png\">\n");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
}
private void doIt(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("Shift_JIS");
response.setContentType("text/html; charset=Shift_JIS");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>JDBCTestServlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<p>");
out.println("タイトルに");
out.println("Java");
out.println("という文字列を含む本は");
out.println("</p>");
out.println("<p>");
try {
Connection con = DriverManager.getConnection("jdbc:mysql://localhost/db1?user=root&password=xg23y91a");
String selectStatement = "select *" + "from books";
PreparedStatement prepStmt = con.prepareStatement(selectStatement);
prepStmt.setString(1, "%" + "Java" + "%");
ResultSet rs = prepStmt.executeQuery();
while (rs.next()) {
String title = rs.getString("title");
out.println(title);
out.println("<br>");
}
rs.close();
prepStmt.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
out.println("</p>");
out.println("</body>");
out.println("</html>");
}
}
Eclipseか何かを使っていますか?という意味です。
それとディレクトリー構成が分からないとどこにどのファイルを置けばよいか分かりません。WEB-INFを含め、どうなっているか教えてください。
コードは、この欄に書くと読めないので、できれば質問を再編集して追加してください。