2012-11-14 4 views
1

간단한 양식을 사용하여 사용자로부터 입력을 받아 데이터베이스에서 필요한 정보를 검색하고 게시합니다. 그러나 HTML 페이지에서 제출 단추는 양식을 지운다. 아래는 작업에서 참조되는 HTML 파일과 Java 파일입니다. 데이터베이스와 상호 작용하는 파일이 누락되었음을 알고 있지만 문제는이 두 가지 중 하나에 있다고 생각합니다. 필요한 경우 나중에 게시 할 수 있습니다. 내 질문은, 왜 제출 버튼이 사이트를 "행동"으로 인도하는 대신 양식을 지우는 것입니까? 두 <form> 태그를 가지고 있기 때문에제출 버튼 게시하지 않고 양식 지우기

<form> 
     <FORM METHOD=POST ACTION = "http://uml.cs.uga.edu:8080/michael_crosby_courses/Schedule"> 
     Class 1: <input type=text name="Class1"><br> 
     Class 2: <input type=text name="Class2"><br> 
     Class 3: <input type=text name="Class3"><br> 
     Class 4: <input type=text name="Class4"><br> 
     <input type=submit> 
</form> 





import java.io.*; 
import java.util.*; 
import javax.servlet.*; 
import javax.servlet.http.*; 

public class Schedule extends HttpServlet { 

public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { 

    PrintWriter toClient = res.getWriter(); 
    String field; 
    String val; 
    Vector classes = null; 
    Vector totalHours = null; 
    String query = null, query2 = null; 
    String class1 = null, class2 = null, class3 = null, class4 = null; 
    int i, sum=0; 

    res.setContentType("text/html"); 

    toClient.println("<html>"); 
    toClient.println("<title>MyEcho</title>"); 
    toClient.println("<body>"); 

    Enumeration values = req.getParameterNames(); 

    if(values.hasMoreElements()) { 

     class1 = req.getParameter("Class 1"); 
     class2 = req.getParameter("Class 2"); 
     class3 = req.getParameter("Class 3"); 
     class4 = req.getParameter("Class 4"); 
     toClient.println("<P><P><B>Your Schedule:</B></P></P>"); 
     query = "select * from csci_section where number = " + class1 + " or number = " + class2 + " or number = " + class3 + " or number = " + class4 + ";"; 

    } 

    query2 = "select credit from csci_section where number = " + class1 + " or number = " + class2 + " or number = " + class3 + " or number = " + class4 + ";"; 

    if(query == null) 

     toClient.println("<P><P><B>No query given; resubmit </B>"); 

    else if(1==1) {    //if the request did not return anything, i.e. the number given is not a class 

    } else{ 

     toClient.println("<P><B>Running search for classes: </B>" + class1 + ", " + class2 + ", " + class3 + ", " + class4 + ", " + "<P><P>"); 

     classes = AccessMySQL.Execute(query); 
     totalHours = AccessMySQL.Execute(query2); 
     toClient.println("<P><P><B>Received classes: </B></P></P>"); 

     for(i = 0; i < classes.size(); i++){ //prints out info 

      toClient.println("<p><tt>" + (String)classes.elementAt(i) + "</tt></p>"); 

     } 

     for(i=0; i < totalHours.size(); i++){ 
      sum += Integer.parseInt((totalHours.elementAt(i)).toString()); 
     } 
     toClient.println("<p><tt>The total number of class hours is: " + sum + "</tt></p>"); 
    } 

    toClient.println("</body>"); 
    toClient.println("</html>"); 

    toClient.close(); 


} //closes doPost 

}

+0

남자가 뭔가를 시도하고 특정 질문을하십시오. – Ali

+1

HTML이 유효하지 않습니다. 이를 확인한 후 게시하고 서버 측 코드를 디버깅하십시오. –

답변

2

. 첫 x 째 (조치 없음)는 브라우저 사용자가 사용하는 것입니다. 그것을 제거하면 예상대로 작동하기 시작합니다.

<form> <-- Remove this one 
    <FORM METHOD=POST ACTION = "http://uml.cs.uga.edu:8080/michael_crosby_courses/Schedule"> 
관련 문제