2015-03-03 47 views
0

我正在運行一個小的servlet程序,但它沒有給出預期的輸出。Servlet程序運行不正常

Servletfile.java

public class Servletfile extends HttpServlet { 
private static final long serialVersionUID = 1L; 

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

    response.setContentType("text/ html"); 
    PrintWriter out= response.getWriter(); 
    String abc = request.getParameter("name"); 
    out.print("name="+abc); 
} 

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

} 

} 

的index.html

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<body> 
<Form action= "welcome" method="get"> 
Enter Name :<input type = "text" name="name"><br> 
<input type = "Submit" value= "login"> 
</Form> 
</body> 
</html> 

的web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> 
<display-name>Practice</display-name> 
<welcome-file-list> 
<welcome-file>index.html</welcome-file> 
<welcome-file>index.htm</welcome-file> 
<welcome-file>index.jsp</welcome-file> 
<welcome-file>default.html</welcome-file> 
<welcome-file>default.htm</welcome-file> 
<welcome-file>default.jsp</welcome-file> 
</welcome-file-list> 
<servlet> 
<description></description> 
<display-name>Servletfile</display-name> 
<servlet-name>Servletfile</servlet-name> 
<servlet-class>code.Servletfile</servlet-class> 
</servlet> 
<servlet-mapping> 
<servlet-name>Servletfile</servlet-name> 
<url-pattern>/Servletfile</url-pattern> 
</servlet-mapping> 
</web-app> 

上執行的代碼,它顯示index.html頁面,但如果我輸入任何名稱作爲輸入,然後它給404頁找不到錯誤。如果我單獨運行servlet程序,它將name = null作爲輸出。你能給我一些建議嗎?

+1

請同時發佈你的'web.xml'文件。這對我們能夠幫助你至關重要。 – 2015-03-03 07:07:07

+0

它看起來像你的表單沒有觸及servlet,考慮到你的行爲只是簡單的「welcome」,但web.xml文件將告訴所有人,這並不奇怪。 – 2015-03-03 07:08:49

+0

我已經添加了web.xml文件,請看看 – Archana 2015-03-03 07:13:21

回答

0

您需要將index.html文件更改爲以下:

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<body> 
<Form action= "Servletfile" method="get"> 
Enter Name :<input type = "text" name="name"><br> 
<input type = "Submit" value= "login"> 
</Form> 
</body> 
</html> 

現在的形式將映射到您的Servletfile Servlet。當您直接導航至http://localhost:8080/Servletfile時,您看到null的原因是您從未設置請求參數name

+0

非常感謝...它的工作:) – Archana 2015-03-03 08:12:29

0

呼叫操作使用<%=request.getContextPath()%>/Servletfile有時容器無法找到您的servlet,這就是爲什麼他向您展示404

+0

我很抱歉,但我對此完全陌生,你能告訴我我需要進入這一行嗎?在doGet方法中? – Archana 2015-03-03 07:25:15

+0

我在html文件中試過它,但它不起作用 – Archana 2015-03-03 07:40:47