繁体   English   中英

Java servlet request.getAttribute() 当我设置它时返回 null

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM