2017-08-02 42 views
1

我想獲得「ID」的整數值,但cookie的第二個參數只需要字符串值。它不顯示任何錯誤,但它打印隨機值 ,如「[email protected]」,而我試圖打印它。任何解決方案來解決這個問題。餅乾顯示一些隨機值

@WebServlet("/Delete") 
public class Delete extends HttpServlet { 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

     String s = request.getParameter("id"); 
     Cookie ck1 = new Cookie("name", s); 
     response.addCookie(ck1); 

     PrintWriter pw = response.getWriter(); 

     pw.print("<html>"); 
     pw.print("<body>"); 

     pw.println("<form action = 'index.html' > <input type = 'submit' value = 'Home'></form>"); 

     pw.print("</html>"); 
     pw.print("</body>"); 


     int id = Integer.parseInt(request.getParameter("id")); 

     try{ 
      Class.forName("com.mysql.jdbc.Driver"); 
     }catch(Exception e){ 
      e.printStackTrace(); 
     } 

     try{ 

      Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/jeet","root","jeet"); 
      PreparedStatement pst = con.prepareStatement("Delete from jeet where id = ?"); 
      pst.setInt(1, id); 
      pst.executeUpdate(); 
      pw.println("<center>"); 
      pw.println("<br>"); 
      pw.println("Your Record is been Deleted"); 
      pw.println("<br>"); 

      Cookie ck2[] = request.getCookies(); 

      pw.println("Your last Record Deleted is " +ck2[1]); 
      pw.println("</center>"); 

     }catch(Exception e){ 
      e.printStackTrace(); 
     } 
    } 


} 
+1

'Cookie'沒有特殊的'toString()'實現,這就是爲什麼JVM引用被打印的原因。您需要提取信息才能自行打印。 檢查提取信息的可用方法:https://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/http/Cookie.html –

+0

您可以將Int轉換爲字符串 – sForSujit

+0

基於@HerrDerb構建s評論,你可能正在尋找類似'ck2 [1] .getValue()'或'ck2 [1] .getName()'的東西。 – mattjegan

回答

1

當你有一個javax.servlet.http.Cookie,並嘗試將其打印出來,你只會越來越對象引用,因此@821ece4。你需要做的是實際使用方法,如here所述。喜歡的東西:

ck[2].getName() 

得到cookie的名稱或

ck[2].getValue() 

以獲得實際存儲的值。

0

您應該打印pw.println("Your last Record Deleted is " +ck2[1].getValue());