2011-04-27 4 views
1

자바 서블릿으로 간단한 프로그램을 시도하고 있으며 텍스트 상자와 제출 버튼이있는 HTML 페이지가 표시됩니다. 사용자가 데이터를 입력하고 제출하면 다음 페이지에 Hello가 표시됩니다. GET 매개 변수를 사용하여 Servlet URL을 호출하면 올바르게 작동 함을 알 수 있습니다. 그러나 HTML 파일을 열고 거기에서 데이터를 제출하면 GET 요청이 제대로 구성되지 않습니다. 즉 매개 변수가 '액션'URL의 주소로 전달되지 않습니다.HTML 파일이 GET 요청에 GET 매개 변수를 게시하지 않습니다.

<!DOCTYPE html> 
<html> 
<head> 
    <title>Hello</title> 
</head> 
<body> 
    <form action="/TestServlt/TestClass" name="myform" method="get"> 
    Enter your name: <input type="text name="username"> 
    <br /> 
    <input type="submit" value="Go"> 
    </form> 
</body> 
</html> 

서블릿 코드 : 서블릿 제출 /TestServlt/TestClass URL 및 형태에 매핑되는

package in.lguruprasad; 

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

public class TestClass extends HttpServlet implements Servlet { 
static final long serialVersionUID = 1L; 

protected void doGet(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException { 
    PrintWriter output = response.getWriter(); 
    response.setContentType("text/html"); 
    String name = request.getParameter("username"); 
    output.println("Hello "+name+"!"); 
    output.flush(); 
    output.close(); 
} 
} 

잘 작동 할 http://localhost:8080/TestServlt/TestClass 대신 http://localhost:8080/TestServlt/TestClass?username=<user input> 리디렉션 여기

는 HTML 코드입니다. 얻을 출력은 'Hello null!'입니다.

모든 브라우저에서 양식은 get 매개 변수없이 제출합니다. 나는 비슷한 doPost 메소드를 작성하려고 시도했지만 그 방법도 잘 작동하지 않았다.

여기의 문제 및 해결 방법은 무엇인가요?

도움이된다면 Eclipse 3.1.2, Apache Tomcat 5.5, JDK 1.6.25를 사용하고 있습니다.

답변

4

당신은 HTML 입력에 견적을 누락 :

Enter your name: <input type="text name="username"> 

Enter your name: <input type="text" name="username"> 
+0

아, 내 나쁜해야합니다! :-( – Guruprasad

관련 문제