2012-10-06 4 views
0

안녕하세요, 데이터베이스에 쿼리를 입력 한 페이지를 입력했는데 서블릿/JSP 페이지를로드 할 때 해당 페이지가 비어 있고 무슨 일이 일어나고 있는지, 왜 그런지 확실하지 않습니다. 나는 이클립스에서 코드를 작성하고 콘솔을보고 아무 것도 인쇄하지 않으면 내 코드에 문제가 있다는 것을 알았지 만 문제가 보이지 않는다.서블릿 및 JSP blank

다음은 몇 가지 빈 catch 블록이 내 서블릿

import java.io.IOException; 
import java.io.PrintWriter; 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 
import java.util.ArrayList; 

import javax.servlet.RequestDispatcher; 
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 javax.servlet.http.HttpSession; 

/** 
* Servlet implementation class TutorAssign 
*/ 
@WebServlet("/TutorAssign") 
public class TutorAssign extends HttpServlet { 
    private static final long serialVersionUID = 1L; 

    /** 
    * @see HttpServlet#HttpServlet() 
    */ 
    public TutorAssign() { 
     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 
    } 

    private void sendBack(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     HttpSession session = request.getSession(true); 
      //Set data you want to send back to the request (will be forwarded to the page) 
      //Can set string, int, list, array etc. 

     String sql = "SELECT l.id,s.name,l.day,l.time,l.room" + 
        " FROM subject s, lab l " + 
        " WHERE s.user_id="+(Integer)session.getAttribute("id"); 

      try{ 
      Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/wae","root",""); 
      System.out.println("got boobs"); 
      System.out.println(session.getAttribute("id")); 

       Statement stmt = con.createStatement(); 
       ResultSet res = stmt.executeQuery(sql); 
       System.out.println(res); 
       ArrayList<String> list1 = new ArrayList<String>(); 
       ArrayList<String> list2 = new ArrayList<String>(); 
       if (res.next()){ 
        do{ 
         list1.add(res.getString(1)); 
         list2.add(res.getString(2)+" "+res.getString(3)+" "+res.getString(4)+" "+res.getString(5)); 


        }while(res.next()); 
       System.out.println("Outside"); 
       String[] arr1 = list1.toArray(new String[list1.size()]); 
       String[] arr2 = list2.toArray(new String[list2.size()]); 
       System.out.println(list1); 
       request.setAttribute("res1", arr1); 
       request.setAttribute("res2", arr2); 

       } 



      }catch (SQLException e) { 
      } 
      catch (Exception e) { 
      } 


      //Decides what page to send the request data to 
      RequestDispatcher view = request.getRequestDispatcher("TutorAssign.jsp"); 
      //Forward to the page and pass the request and response information 
      view.forward(request, response); 
    } 

    /** 
    * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
    */ 
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 


      int user_id = Integer.parseInt(request.getParameter("id")); 
      int lab_id = 0; 

      String message = null; 
      try { 
       Class.forName("com.mysql.jdbc.Driver"); 
       Connection con = 
       DriverManager.getConnection("jdbc:mysql://localhost:3306/wae","root",""); 
      System.out.println("got connection"); 
      System.out.println(user_id); 
      Statement s = con.createStatement(); 

      String sql = "INSERT INTO user_lab" + 
         " (user_id, lab_id)" + 
         " VALUES" + 
         " ('" + user_id + "'," + 
         " '" + lab_id + "')"; 

       System.out.println(sql); 
       int i = s.executeUpdate(sql); 
       if (i==1) { 
       message = "Successfully assigned a tutor."; 
       response.sendRedirect("Lecturer_labs"); 
       } 

       s.close(); 
       con.close(); 
      } 
      catch (SQLException e) { 
       message = "Error." + e.toString(); 
       boolean error = true; 
      } 
      catch (Exception e) { 
       message = "Error." + e.toString(); 
       boolean error = true; 
      } 
      if (message!=null) { 
       PrintWriter out = response.getWriter(); 
       out.println("<B>" + message + "</B><BR>"); 
       out.println("<HR><BR>"); 
      } 

      } 
// TODO Auto-generated method stub 


} 
+0

서블릿을 어떻게로드합니까? –

답변

1

나는 눈치 귀하의 doGet 방법 구현되지 않았다. nted. sendBack 코드가 호출되지 않는다고 가정합니다.

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    sendBack(request,response); 
} 
0

입니다. 즉, 프로그램에 문제가 발생하면 오류가 자동으로 삼켜지고 실행 된 코드와 건너 뛴 코드를 알지 못하므로 결과를 알 수 없습니다. 적어도 권리를 처리하여 오류가 발생하여 java.util.logging

} catch (SQLException e) { 
    logger.log(Level.INFO,"SQL Error encountered",e);   
} catch (Exception e) { 
    logger.log(Level.INFO,"Other error encountered",e);   
} 

시작을 사용하여,이 (아주 기본적인 예처럼, catch 블록에서 오류를 기록하고 오류를 프로그램 만남을 연구한다.

를 제외하고 그 문제에서 다른 사람은 지적으로, doGet은 구현되지 않습니다 당신 -.. 그래서 당신은 GET로 페이지를 호출하는 경우 doGet이 비어 있기 때문에 아무것도하지 않습니다 그것은 비록 POST에 뭔가해야