[英]Java servlet request.getAttribute() returning null when I had set it
我使用 request.setAttribute() 在 AddServlet.java 中设置了一个属性,但是当我尝试使用 request.getAttribute() 从 SquareServlet.Java 获取属性时,它返回 Z37A6259CC0C1DAE299A786
我使用 RequestDispatcher 转发 servlets。
添加Servlet.java:
package com.example.exampleweb;
import java.io.*;
import jakarta.servlet.RequestDispatcher;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.*;
import jakarta.servlet.annotation.*;
@WebServlet("/add")
public class AddServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
response.setContentType("text/html");
int i = Integer.parseInt(request.getParameter("num1"));
int j = Integer.parseInt(request.getParameter("num2"));
int k = i + j;
request.setAttribute("k", k);
RequestDispatcher rd = request.getRequestDispatcher("square");
rd.forward(request, response);
}
SquareServlet.java:
package com.example.exampleweb;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collection;
import java.util.Collections;
import java.util.Enumeration;
import java.util.Iterator;
import jakarta.servlet.annotation.WebServlet;
@WebServlet("/square")
public class SquareServlet extends HttpServlet {
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html");
int k = request.getAttribute("k") == null ? -1 : (int) request.getAttribute("k");
PrintWriter out = response.getWriter();
out.println("Result is: " + k);
out.println(Collections.list(request.getAttributeNames()).size());
}
}
索引.jsp:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<form action="square" method="get">
Enter first number: <input type="text" name="num1"/>
Enter second number: <input type="text" name="num2"/>
<input type="submit",/>
</form>
</html>
我正在使用 tomcat 10.0.16 和 Java 11 和 jakarta.servlet package
在我的 index.jsp 上,我将表单的方法设置为方形而不是添加,因此无法到达 AddServlet,因此不会设置任何属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.