2014-02-06 149 views
0

我正在使用Dynamic Web Project。 這是我的JSP代碼。我正試圖發送Hello to servlet從JSP發送數據到Servlet時發生錯誤

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO- 
    8859-1"%> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  
    "http://www.w3.org/TR/html4/loose.dtd"> 
    <html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
    <title>Insert title here</title> 
    </head> 
    <body> 
    <jsp:include page="/servlet/ServletCode" flush="true" > 
    <jsp:param name="username" value="Hello" /> 
    </jsp:include> 
    </body> 
    </html> 

這是我的Servlet文件。

package pack.exp; 

public class ServletCode extends HttpServlet 
{ 
protected void doGet(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException 
{ 
    String output= request.getParameter("username"); 
    System.out.println(output); 
    PrintWriter pw = response.getWriter(); 
    pw.println("Hello " + output); 
} 
} 

在我的JSP文件中,我在這一行上得到了這個編譯時錯誤。

片段 「/ servlet的/ ServletCode」 並沒有在預期的路徑/ JSpServletCode /的WebContent/servlet的/ ServletCode發現

請幫助我與此有關。

回答

1

我想你必須將你的servlet映射到web.xml中,並且你必須在頁面中提供servlet-url。像下面的東西可以工作。

<jsp:include page="/ServletCode" flush="true" > 

<servlet> 
     <servlet-name>Servlet1</servlet-name> 
     <servlet-path>pack.exp.ServletCode</servlet-path> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>Servlet1</servlet-name> 
     <url-pattern>/ServletCode</url-pattern> 
    </servlet-mapping> 

UPDATE

這是爲我工作

SERVLET

@WebServlet("/ServletCode") 
    public class ServletCode extends HttpServlet { 
    private static final long serialVersionUID = 1L; 

    public ServletCode() { 
     super(); 
    } 

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
      String output= request.getParameter("username"); 
      System.out.println(output); 
      PrintWriter pw = response.getWriter(); 
      pw.println("Hello " + output); 
     } 
} 

JSP

<body> 
    <jsp:include page="/ServletCode" flush="true"> 
     <jsp:param name="username" value="Hello" /> 
    </jsp:include> 
</body> 
+0

@阿保 感謝您的回覆哥們。我在web.xml中進行了更改。 但現在作爲輸出我得到你好null。但輸出應該是你好你好 – user3273473

+0

好的。這意味着該參數不會去你的servlet。代碼對我看起來很好。讓我檢查一下。 –

+0

@一個保羅 是的確切 – user3273473

0

這是模型servlet頁面:

<servlet> 
    <servlet-name>registerServlet</servlet-name> 
    <servlet-class>com.example.RegisterServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>registerServlet</servlet-name> 
    <url-pattern>/register</url-pattern> 
</servlet-mapping> 

而且你必須改變形式是這樣的格式:

<form action="register" method="post"> 

這是做Post方法:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     String uname = request.getParameter("uname"); 
PrintWriter pw = response.getWriter(); 
    pw.println("Hello " + output); 
System.out.println(output); 
     // ... 
    } 
+0

現在我得到這個錯誤「HTTP方法GET不支持這個URL」 – user3273473

+0

嘗試doGet而不是doPost方法相同的簽名 – Koitoer