データベースの情報をとってきてjspで表示したいのですが、trueと出るだけで表示されません。返す値がbooleanだからだと思うのですが、どう書き換えれば良いかわかりませんどうしたらいいですか?
サーブレットはこちらです
package servlet;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import model.Postalcode;
import model.PostalcodeDAO;
/**
- Servlet implementation class SearchServlet
*/
@WebServlet("/SearchServlet")
public class SearchServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/** * @see HttpServlet#HttpServlet() */ public SearchServlet() { 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 } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub request.setCharacterEncoding("UTF-8"); Postalcode postalcode = new Postalcode(); PostalcodeDAO dao = new PostalcodeDAO(); postalcode.setCode(request.getParameter("code")); boolean result = false; try { result = dao.check(postalcode) != null; } catch (SQLException e) { e.printStackTrace(); } //HttpSession session = request.getSession(); //session.setAttribute("postalcode", postalcode); request.setAttribute("postalcode",result); if (result) { // ログインに成功している場合はmember.jspへ this.getServletContext().getRequestDispatcher("/searchResult.jsp") .forward(request, response); } else { // ログインに失敗している場合はlogin.jspへ request.setAttribute("error", "その郵便番号は。。。"); this.getServletContext().getRequestDispatcher("/search.jsp") .forward(request, response); } }
}
DAOはこちらです
package model;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
public class PostalcodeDAO {
final private static String dbname = "test"; // データベース名
final private static String user = "dbpuser"; // tutorialにアクセスできるユーザ
final private static String password = "hogehoge"; // wspuserのパスワード
final private static String driverClassName = "org.postgresql.Driver";
final private static String url = "jdbc:postgresql://localhost/" + dbname;
public LinkedList<String> check(Postalcode postalcode) throws SQLException { // memberがDBにあるかどうかを調べる LinkedList<String> ll = new LinkedList<String>(); boolean result = false; Connection connection; String sql = "select * from postalcode where code=?"; try { Class.forName(driverClassName); connection = DriverManager.getConnection(url, user, password); PreparedStatement pstmt = connection.prepareStatement(sql); pstmt.setString(1, postalcode.getCode()); ResultSet resultSet = pstmt.executeQuery(); if (resultSet.next()) result = true; while(resultSet.next()){ ll.add(resultSet.getString("city")); } resultSet.close(); connection.close(); } catch (Exception e) { e.printStackTrace(); } return ll; }
}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。