方方方_ 2024-11-15 13:38 采纳率: 0%
浏览 6

一道servlet获取cookie数据的题,总是显示cannot find symbol方法,请问怎么解决,代码如下

package servlet;
import java.io.;
import javax.servlet.
;
import javax.servlet.http.*;
public class Cookie extends HttpServlet
{

public void doPost(HttpServletRequest request,HttpServletResponse response)
                    throws ServletException,IOException
{
    boolean blnFound=false;
    Cookie myCookie=null;
    Cookie[] allCookie=request.getCookies();
    response.setContentType("text/html");
    PrintWriter out=response.getWriter();
    if(allCookie!=null)
    {
    
        for (int i=0;i<allCookie.length;i++)
        {
            if((allCookie[i].getName()).equals("logincount"))
            {
            
                blnFound=true;
                myCookie=allCookie[i];
            }
        }
    }
                out.println("<html>");
                out.println("<body>");
                if (blnFound)
                {
                
                    int temp=Integer.parseInt(myCookie.getValue());
                    temp++;
                    out.println("The number of times you have logged on is:"+String.valueOf(temp));
                    myCookie.setValue(String.valueOf(temp));
                    int age=60*60*24*30;
                    myCookie.setMaxAge(age);
                    response.addCookie(myCookie);
                }
                    
                else
                {
                
                    int temp=1;
                    out.println("This is the first time you have logged on");
                    myCookie=new Cookie("logincount", String.valueOf(temp));
                    int age=60*60*24*30;
                    myCookie.setMaxAge(age);
                    response.addCookie(myCookie);
                }
                out.println("</body></html>");
}

}

img

  • 写回答

1条回答 默认 最新

  • 一休哥助手 优质创作者: 后端开发技术领域 2024-11-15 15:40
    关注
    此回答来自于wx公众号:一休哥助手
    

    您的代码有几个问题导致了无法编译并正常运行。以下是需要的修改:

    1. 重命名 CookieCookiejavax.servlet.http 包中的一个类,您的类名与其冲突。您可以将自定义的类重命名为其他名字,比如 CookieServlet

    2. 修正导入语句:您的 import java.io.*; 虽然可以导入 IOException,但为了代码更清晰,可以将 import java.io.*; 替换为 import java.io.IOException;,也可以保留通配符导入。

    3. 添加 doPost 方法的关闭大括号:您的代码缺少 doPost 方法的关闭大括号 },确保方法结构完整。

    4. 代码格式调整:确保 HttpServletRequestHttpServletResponse 参数的正确拼写和方法调用,避免拼写错误。

    修改后的代码如下:

    package servlet;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.*;
    
    public class CookieServlet extends HttpServlet {  // 更改类名为 CookieServlet
    
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            boolean blnFound = false;
            Cookie myCookie = null;
            Cookie[] allCookie = request.getCookies();
            response.setContentType("text/html");
            PrintWriter out = response.getWriter();
            
            if (allCookie != null) {
                for (int i = 0; i < allCookie.length; i++) {
                    if ((allCookie[i].getName()).equals("logincount")) {
                        blnFound = true;
                        myCookie = allCookie[i];
                    }
                }
            }
    
            out.println("<html>");
            out.println("<body>");
            if (blnFound) {
                int temp = Integer.parseInt(myCookie.getValue());
                temp++;
                out.println("The number of times you have logged on is: " + temp);
                myCookie.setValue(String.valueOf(temp));
                int age = 60 * 60 * 24 * 30;
                myCookie.setMaxAge(age);
                response.addCookie(myCookie);
            } else {
                int temp = 1;
                out.println("This is the first time you have logged on");
                myCookie = new Cookie("logincount", String.valueOf(temp));
                int age = 60 * 60 * 24 * 30;
                myCookie.setMaxAge(age);
                response.addCookie(myCookie);
            }
            out.println("</body></html>");
        }
    }
    

    总结

    • 确保类名与已有的 Cookie 类不冲突。
    • 确认代码结构完整,包含所有方法的大括号。
    • 正确导入需要的包并规范拼写。
    评论

报告相同问题?

问题事件

  • 创建了问题 11月15日