2014-11-20 3 views
1

Servlet에서 JSP 페이지로 결과 세트를 전달하고 그 값을 JSP 페이지에 갖고 싶습니다. 여기 Servlet에서 JSP로 ResultSet 전달하기

는 서블릿의 코드입니다 :

protected void doPost (HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException 
{ 
    String username = request.getParameter("username"); 
    String password = request.getParameter("password"); 
    PrintWriter out = response.getWriter(); 
    Data select = new Data(username,password); 
    try { 
     Boolean result = select.Select(username, password); 
     if (result) { 
      ResultSet rset=select.SelectAll(username,password); 
      request.setAttribute("user",rset); 
      getServletConfig().getServletContext() 
        .getRequestDispatcher("/dashboard.jsp") 
        .forward(request,response); 

     } else 
      out.print("Please check your username and password");   
    } catch (Exception e) { 
     out.print("There seems to be a exception" + e); 
    } 
} 

여기라는 두 가지 기능은 선택 기능을 선택 SelectAll가 ResultSet을 반환로 boolean 값을 반환 각각 boolean 값과 ResultSet 값을 반환합니다.

내 JSP 코드는 다음과 같습니다

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
Username: <c:out value="$(user.username)"/> <br/> 
Email: <c:out value="$(user.email)"/> <br/> 
Contact: <c:out value="$(user.contact)"/> <br/> 
+1

그래서 어떤 오류 또는 예외가 있습니까? – RE350

+0

ResultSet 클래스에 username 속성이 포함되어 있습니까? !! –

+1

결과 집합을 JSP로 직접 전달하지 않고 대신 결과 집합의 정보를 가져 와서 적절한 DTO에 표시합니다. –

답변

2

는 객체 User를 초기화 결과 집합하려면 ResultSet를 통과하지 마십시오 getter 및 setter

ResultSet rset=select.SelectAll(username,password); 
if (rset.next()){ 
    User user = new User(); 
    user.setUsername(rset.get("username")); 
    user.setEmail(rset.get("email")); 
    user.setContact(rset.get("contact")); 
    request.setAttribute("user",user); 
    getServletContext().getRequestDispatcher("/dashboard.jsp") 
        .forward(request,response); 
} 
+0

사용자 이름 : $ (사용자. 사용자 이름) 이메일 : $ (사용자. 이메일) 연락처 : $ (user.contact)이 결과는 클래스를 만들고 결과 집합에 내용을 추가 한 후에 나타납니다. – user1761043

+0

EL 표현식 $ {user.email}에 중괄호가 사용 되었기 때문입니다. –

+0

많은 도움을 주셔서 감사합니다. – user1761043

2

가 있어야하는! 대신 DAO 패턴을 따르고 데이터베이스의 컬럼을 반영하는 필드가있는 Java POJO 클래스를 작성하십시오. ResultSet에서 while 루프 (while(rs.next()) {...})를 통해 데이터를 추출하고 이전에 만든 POJO 클래스의 인스턴스에 값을 할당하고 List에 인스턴스를 추가합니다 (여러 사용자를 전달하려는 경우에 대비). 반환 목록 (여러 사용자의 경우) 또는 인스턴스 (단일 사용자의 경우).

개체 목록을 특성으로 설정하고 forEach 루프를 통해 반복합니다 (복수 사용자의 경우).

관련 문제