gpt4 book ai didi

java - 创建 Servlet Cookie

转载 作者:搜寻专家 更新时间:2023-10-31 08:15:39 25 4
gpt4 key购买 nike

我是 servlet 的新手,目前我正在努力添加 cookie。我相信这是我采用的模块化方法的结果,我构建了一个 header 实用程序类,它只是将所有 header 信息插入到 servlet 中,因此我想采用相同的方法来添加 cookie。

我还有一个凭据 validator 类,除了用户名和密码外,对其进行验证,然后返回有效/无效响应。我认为这是问题所在。在将用户名和密码传递给凭证 validator 的登录表单中,我将表单操作指向凭证 servlet 并将表单方法作为帖子。

如果我想将值从表单发送到另一个 servlet,这样做会产生问题,还是这样?

这个项目的目标是为学校创建一个严格使用 servlet 的简单网站,然后我们开始使用 JSP 来减轻痛苦。

我应该考虑另一种方法吗?当使用表单操作和方法时,是否可以让这些类在表单上执行各种功能?

感谢您的帮助和指导。

最佳E

最佳答案

您可以将请求发送到一个 servlet,然后在需要时将请求转发到另一个 servlet。

在您的情况下,验证后,您可以将结果存储在一个属性中,然后将控制转移到另一个 servlet。 (如果这是你想做的)

 RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/urlToServlet");
dispatcher.forward(request, response);

这就是处理 cookie 的方法。

创建和发送 cookie

Cookie userCookie = new Cookie("name", "value");
userCookie.setMaxAge(60*60*24*365); //Store cookie for 1 year
response.addCookie(userCookie);

从客户端读取cookie

String cookieName = "somecookie";
Cookie[] cookies = request.getCookies();
if (cookies != null)
{
for(int i=0; i<cookies.length; i++)
{
Cookie cookie = cookies[i];
if (cookieName.equals(cookie.getName()))
{
doSomethingWith(cookie.getValue());
}
}
}
else
{
//do something else for firsttime visitors
}

您是否使用 cookie 进行 session 跟踪?如果是,则使用 HttpSession。使用 HttpSession 则无需直接使用 cookie 进行 session 跟踪。

例如,在一个简单的登录页面中,这就是您要做的

HttpSession session = request.getSession();
session.setAttribute("username",username);
In other pages,
if(session.getAttribute("username")==null)
{
//forward to login page.
}

关于java - 创建 Servlet Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9543345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com