我试图获取“id”的整数值,但 cookie 的第二个参数只需要字符串值。它没有向我显示任何错误,但它正在打印随机值 就像“javax.servlet.http.Cookie@821ece4”,当我尝试打印它时。有任何解决方案可以解决这个问题。
@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();
}
}
}
最佳答案
当您有一个javax.servlet.http.Cookie
并尝试打印它时,您只会获得对象引用,因此是@821ece4
。您需要做的实际上是使用 Cookie
方法,如 here 中所述。 。像这样的东西:
ck[2].getName()
获取cookie的名称或
ck[2].getValue()
获取实际存储的值。
关于java - Cookie 显示一些随机值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45454982/