cookie在servlet中提供异常值和设置值

时间:2017-05-30 13:30:07

标签: java jsp servlets cookies

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

我的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值和名称,但随着它们我得到JSESSIONIDA502A7144AE035ED9B1A2549F5C7B74B。我无法理解这些cookie值出现在哪里?我该如何删除?为什么会出现这些值?

我的代码:

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());
        }
    }
}

家庭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);
        }
    }
}

0 个答案:

没有答案