2016-09-25 18 views
0

あるサーブレットから別のサーブレットにデータを渡そうとしていますが、別のサーブレットからそのサーブレットを戻すときにnullを返します。別のサーブレットから送信されたサーブレットからデータを取得する

ViewServlet.java

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

/** 
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
*/ 
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    response.setContentType("text/html"); 
    PrintWriter out=response.getWriter(); 
    out.println("<a href='index.html'>Add New Employee</a>"); 
    out.println("<h1>All Employees</h1>"); 
    List<Employee> emp=EmpDao.getAllEmployees(); 
    out.print("<table width='50' border='1'>"); 
    out.print("<tr><th>Id</th><th>Username</th><th>email</th><th>country</th><th>Edit</th><th>Delete</th></tr>"); 
    for(Employee e:emp){ 
     System.out.println("in view "+e.getId()); 
    out.print("<tr><td>"+e.getId()+"</td><td>"+e.getUsername()+"</td><td>"+e.getPassword()+"</td><td>"+e.getEmail()+"</td><td>"+e.getCountry()+"</td><td><a href='EditServlet?id"+e.getId()+"''>edit</a></td><td><a href='DeleteServlet?id"+e.getId()+"'>Delete</a></td></tr>"); 
    } 
    out.println("</table>"); 
} 

ここでは、このクラスでは、私は別のサーブレットEditServletにIDを送信しようとしています。 forループの中では、すべてのidとhtmlの中にそのIDが表示されます。 しかしEditServletでnullを返します。

EditServlet.java

@WebServlet("/EditServlet") 
public class EditServlet 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 id2=request.getParameter("id"); 
    System.out.println("id is"+request.getParameter("id"));//Null is getting printed 
    int id=Integer.parseInt(id2); 
    System.out.println("Inside doGet id is"+id);//NumberFormatException 

}}

+0

これをテストする際にヒットしたURLは何ですか? – Ivan

+0

@Ivan http:// localhost:8082/CRUDServelt/EditServlet?id2 –

+0

のrequest.getParameter( "id")のパラメータ名は、URLに渡されるものと同じでなければなりません。 – Jabir

答えて

0

あなたがリンクに等しい逃しています。送信されたパラメータは、あなたがEditServlet?id=1をしたいときに、あなたが値1

<a href='EditServlet?id"+e.getId()+"''>edit</a>

でパラメータidを得るでしょう、値のないid1になりますので、あなたのコードは

する必要があり、URL EditServlet?id1を生成しています

<a href='EditServlet?id="+e.getId()+"'>edit</a>(別名 'も削除されます)

削除リンクについても同様です。

このようなパラメータの問題を見つける最も簡単な方法は、ブラウザの開発者ツールを使用して、ブラウザが実際に送受信する内容を調べることです。または、サーバーがIDEから起動された場合、各リクエスト(NetBeansのHTTP Server Monitorなど)の詳細を表示する方法が必要です。

+0

Thanx a lot.Itは私の問題を解決しました –

関連する問題