2017-11-23 8 views
1

여기 html 페이지 그림입니다. 등록 버튼을 입력하면 입력해야합니다. 파일은 MySQL에 연결되어 있고 등록 할 때마다 입력 된 데이터가 표시됩니다. 그림에 대한 링크입니다. 여기 자바 서블릿에서 제출 한 후 웹 페이지에 데이터를 표시하는 방법은 무엇입니까?

https://i.stack.imgur.com/aTRfP.png

자바 파일의 코드입니다.

protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    response.setContentType("text/html;charset=UTF-8"); 
    PrintWriter out = response.getWriter(); 

    String name = request.getParameter("name"); 
    String email = request.getParameter("email"); 
    String pass = request.getParameter("pass"); 
    try{ 

    //loading drivers for mysql 
    Class.forName("com.mysql.jdbc.Driver"); 

//creating connection with the database 
     Connection conn=DriverManager.getConnection 
       ("jdbc:mysql://localhost:3306/form","root","xxxx"); 

    PreparedStatement ps=conn.prepareStatement 
       ("insert into Student values(?,?,?)"); 

    ps.setString(1, name); 
    ps.setString(2, email); 
    ps.setString(3, pass); 
    int i=ps.executeUpdate(); 

     if(i>0) 
     { 
     out.println("you are successfully regitered"); 
     } 
     String query = "SELECT * FROM student"; 

    // create the java statement 
    Statement st = conn.createStatement(); 

    // execute the query, and get a java resultset 
    ResultSet rs = st.executeQuery(query); 

    // iterate through the java resultset 
    while (rs.next()) 
    { 
       rs.getString("name"); 
       rs.getString("email"); 
       rs.getString("pass"); 


    // print the results 
    System.out.format("%s, %s, %s\n", name, email, pass); 
    System.out.print("name: " + name); 
    System.out.print(", email: " + email); 
    System.out.print(", pass: " + pass); 

    } 

    st.close(); 

    } 
    catch(Exception se) 
    { 
     se.printStackTrace(); 
    } 


    } 

println 함수에서 html 페이지의 링크를 추가하려고 시도했지만 작동하지 않으므로 제안하십시오.

+0

응답 개체에서 가져 오는 Writer를 사용하여 HTML 코드를 만들어야합니다. 제출 후 클라이언트 측에 표시됩니다. 여기서 요청 매개 변수를 포함 할 수 있습니다. – vanje

+0

request.setAttribute ("myObjectName", myObject) 오브젝트를 return 속성으로 설정하고 request.getRequestDispatcher ("/ mypage.jsp")를 사용하십시오. mypage.jsp로 돌아가려면 forward (request, response) –

+0

whats the writer ? –

답변

1

데이터가 성공적으로 추가되면 확인 메시지를 표시하려고합니다. URL을 호출하면 모든 헤더와 매개 변수가 포함 된 요청이 만들어져 서버로 전송됩니다. 귀하의 경우, 서블릿 컨테이너는 그것을 포착하여 처리하고 응답을 되돌려 보냅니다.

PrintWriter out = response.getWriter(); 
out.println("message to return"); 

그러나,이 웹 페이지에서 메시지가 표시되지 않습니다 응답에 쓰기

을 수행 할 수 있습니다. 당신은 명시 적으로 그렇게해야합니다. 당신은 2 가지 방법으로 그것을 할 수 있습니다. 1 아약스를 사용 중입니다. 2 jsp를 사용 중입니다.

USING AJAX URL에 대한 ajax 호출을 만들고 원하는 방식으로 응답을 처리하십시오. jQuery와 같은 라이브러리를 사용하면 쉽게 사용할 수 있습니다. doGet() 또는 doPost() 방법에서 사용하기 JSP

, 끝이 설정된 속성으로 지정된 URL 리디렉션

request.setAttribute("message", "my message"); 
request.getRequestDispatcher(URL).forward(request, response); 

이 라인을 추가한다. 일반적으로 JSP 페이지는 속성을 읽고 원하는대로 표시합니다.

+0

나는 아직도 그것을 얻지 않는다. i에는 어떤 jsp도 없다 그래서 나는 그것을 창조해야 하는가? –

+0

@vinaysingh jsp 페이지가 없다면 첫 번째 방법을 사용해야합니다. 두 번째 하나를 사용하지 말아라 –

+0

@ YogeshHShenoy 나는 JSP 페이지가 없다. –