Java 在servlet中提供异常值和设置值的cookies

Java 在servlet中提供异常值和设置值的cookies,java,jsp,servlets,cookies,Java,Jsp,Servlets,Cookies,我在一个servlet类中设置了cookie,并在另一个servlet类中读取了这些cookie值。在另一个servlet类以及设置的cookies值中,我得到了一些不寻常的值 My Home.java servlet类结果集:: 第一个结果 Hello JSESSIONID, Hello A502A7144AE035ED9B1A2549F5C7B74B Hello first_name, Hello RACHEL Hello last_name, Hello KIM 第二个结果 Hello

我在一个servlet类中设置了cookie,并在另一个servlet类中读取了这些cookie值。在另一个servlet类以及设置的cookies值中,我得到了一些不寻常的值

My Home.java servlet类结果集:: 第一个结果

Hello JSESSIONID, Hello A502A7144AE035ED9B1A2549F5C7B74B
Hello first_name, Hello RACHEL
Hello last_name, Hello KIM
第二个结果

Hello JSESSIONID, Hello A502A7144AE035ED9B1A2549F5C7B74B
Hello first_name, Hello CAIRO
Hello last_name, Hello SENGAL
在这两个结果中,我都得到了设置的cookie值和名称,但同时我也得到了
JSESSIONID
A502A7144AE035ED9B1A2549F5C7B74B
。我无法理解这些cookies值出现在哪里?我怎样才能删除这个?为什么会出现这些值

我的代码:

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

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

    public Authenticate() {
        super();
        // TODO Auto-generated constructor stub
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        response.getWriter().append("Served at: ").append(request.getContextPath());
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        try
        {
            // Set response content type
            response.setContentType("text/html");  
            PrintWriter out = response.getWriter(); 
            String firstname = request.getParameter("firstname");
            String lastname = request.getParameter("lastname");

            out.print("Welcome "+ firstname); 

            // Create cookies for first and last names.      
              Cookie f_name = new Cookie("first_name", firstname);
              Cookie l_name = new Cookie("last_name", lastname);

           // Add both the cookies in the response header.
              response.addCookie( f_name );
              response.addCookie( l_name );

            //creating submit button  
              out.print("<form action='Home' method='post' >");  
              out.print("<input type='submit' value='cookie click' />");  
              out.print("</form>");  

              out.close(); 
        }
        catch(Exception ex)
        {
            System.out.println("exception occured");
            System.out.println(ex.toString());
        }
    }
}
import java.io.IOException;
导入java.io.PrintWriter;
导入java.util.Enumeration;
导入javax.servlet.ServletConfig;
导入javax.servlet.ServletException;
导入javax.servlet.annotation.WebServlet;
导入javax.servlet.http.Cookie;
导入javax.servlet.http.HttpServlet;
导入javax.servlet.http.HttpServletRequest;
导入javax.servlet.http.HttpServletResponse;
/**
*Servlet实现类身份验证
*/
@WebServlet(“/Authenticate”)
公共类身份验证扩展HttpServlet{
私有静态最终长serialVersionUID=1L;
公共身份验证(){
超级();
//TODO自动生成的构造函数存根
}
受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{
//TODO自动生成的方法存根
response.getWriter().append(“服务于:”).append(request.getContextPath());
}
@凌驾
受保护的void doPost(HttpServletRequest请求、HttpServletResponse响应)引发ServletException、IOException{
尝试
{
//设置响应内容类型
response.setContentType(“text/html”);
PrintWriter out=response.getWriter();
String firstname=request.getParameter(“firstname”);
字符串lastname=request.getParameter(“lastname”);
打印(“欢迎”+名字);
//为名字和姓氏创建cookie。
Cookie f_name=新Cookie(“first_name”,firstname);
Cookie l_name=新Cookie(“姓氏”,lastname);
//在响应头中添加这两个cookie。
addCookie(f_名称);
回复:addCookie(l_名称);
//创建提交按钮
输出。打印(“”);
输出。打印(“”);
输出。打印(“”);
out.close();
}
捕获(例外情况除外)
{
System.out.println(“发生异常”);
System.out.println(例如toString());
}
}
}
家庭servlet的代码

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

    /**
     * @see HttpServlet#HttpServlet()
     */
    public Home() {
        super();
        // TODO Auto-generated constructor stub
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        try {

            response.setContentType("text/html");
            PrintWriter out = response.getWriter();

            Cookie ck[] = request.getCookies();
            if (ck != null) {
                for (int i = 0; i < ck.length; i++) {
                    out.print("Hello " + ck[i].getName() + ",  ");
                    out.print("Hello " + ck[i].getValue());
                    out.print("<br />");
                }
            }
            out.close();

        } catch (Exception e) {
            System.out.println(e);
        }
    }
}
@WebServlet(“/Home”)
公共类Home扩展HttpServlet{
私有静态最终长serialVersionUID=1L;
/**
*@参见HttpServlet#HttpServlet()
*/
公共住宅(){
超级();
//TODO自动生成的构造函数存根
}
受保护的void doGet(HttpServletRequest请求、HttpServletResponse响应)
抛出ServletException、IOException{
}
受保护的void doPost(HttpServletRequest请求、HttpServletResponse响应)
抛出ServletException、IOException{
试一试{
response.setContentType(“text/html”);
PrintWriter out=response.getWriter();
Cookie ck[]=request.getCookies();
如果(ck!=null){
对于(int i=0;i”);
}
}
out.close();
}捕获(例外e){
系统输出打印ln(e);
}
}
}

可能会有帮助。谢谢您的评论。在页面指令
jsp页面中,它的编写目的是使会话值为false。但我现在在servlet页面中,如何从servlet代码中将此标记设为false。请让我澄清一下。你为什么关心会话cookie?它是servlet规范的基本部分。关闭一些你不了解也没有研究过的东西是没有意义的。