java - 使用链接列表登录和注册 - 无法访问从其他 servlet 创建的对象
问题描述
我创建了两个 servlet 页面,第一个 servlet 页面是 RegistrationServlet,第二个 servlet 页面是 LoginServlet,并为链表创建了一个对象,以便从其他 servlet 调用它,但我无法调用该对象。
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
String name,email,pass;
name=request.getParameter("un");
email = request.getParameter("em");
pass = request.getParameter("pass");
LinkedList<String> a1=new LinkedList();
a1.add(name);
a1.add(pass);
if (!name.isEmpty() && !email.isEmpty() && !pass.isEmpty()) {
RequestDispatcher rd=getServletContext().getRequestDispatcher("/Login.html");
rd.forward(request, response);
request.getSession().setAttribute("someone", a1);
request.getRequestDispatcher("LoginServlet").forward(request, response);
} else {
RequestDispatcher rd1 = getServletContext().getRequestDispatcher("/Register.html");
rd1.include(request, response);
}
}
Other Servlet---------------------------------------
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
String email = request.getParameter("eml");
String pass = request.getParameter("pass");
object fg;
fg = request.getSession().getAttribute("someone");
if(email.equals(fg.a1.get(0)) && pass.equals(fg.a1.get(1)))
{
System.out.println("sucess");
}
else{
System.out.println("not");
}
}
解决方案
您通过以下命令将列表放入会话:request.getSession().setAttribute("someone", a1); 'a1' 是变量的名称,不会放入会话中。request.getSession().getAttribute("someone") 给出的值必须是 List 类型。此对象没有字段“a1”。因此,要获得该列表中的项目,您必须编写 fg.get(0),而不是 fg.a1.get(0)。
推荐阅读
- sql - 每行的最大日期
- android - 如何检查 android Espresso 中活动的 API 响应?
- azure - 将所有 TCP 和 UDP 端口从负载均衡器转发到 Azure Kubernetes 服务上的 nginx 入口
- react-native - 在 React Native 中的特定点打断长词
- php - 在 laravel 中调用两个控制器
- pandas - 如何使用重新索引来填补缺失的时间步长?
- c++ - 我的 cin.fail() 检查有时会起作用,有时会出错
- c# - C# Moq 方法未返回指定的布尔值
- python - 如何使用 Python 从复杂的 json 中提取数据?
- mongodb - 为什么 pymongo.encryption 不加密?