Servlets request.getParameter()无法使用request.setAttribute()设置的值

Servlets request.getParameter()无法使用request.setAttribute()设置的值,servlets,Servlets,我遇到了一个问题,一个servlet接收到另一个servlet转发的请求参数为null 这是Java Web应用程序的一部分,使用JPA和实体管理器管理学生(id PK)实体主题(subjectCode PK)实体多对多关系 String code = (String) request.getParameter("subCode"); int id = Integer.parseInt((String) request.getParameter("stdToAdd")); studentFac

我遇到了一个问题,一个servlet接收到另一个servlet转发的请求参数为null

这是Java Web应用程序的一部分,使用JPA和实体管理器管理学生(id PK)实体主题(subjectCode PK)实体多对多关系

String code = (String) request.getParameter("subCode");
int id = Integer.parseInt((String) request.getParameter("stdToAdd"));

studentFacade.addSubject(id, code);
subjectFacade.addStudent(id,code);

request.setAttribute("subjectCode", code);
request.getRequestDispatcher("ListSubStd").forward(request, response);
servlet正确地编辑了关系,但是发送到第二个servlet的参数存在问题


非常感谢您的建议。

您正在为请求设置属性,但使用的是request.getParameter()。 相反,您应该使用request.getAttribute()方法

第一部分

String code = (String) request.getAttribute("subjectCode");
System.out.println("Subject code: " + code+"\n");
第二部分

System.out.println("String passed is : "+request.getAttribute("studentId"));
int id = Integer.parseInt((String) request.getAttribute("studentId"));

您正在为请求设置属性,但使用的是request.getParameter()。 相反,您应该使用request.getAttribute()方法

第一部分

String code = (String) request.getAttribute("subjectCode");
System.out.println("Subject code: " + code+"\n");
第二部分

System.out.println("String passed is : "+request.getAttribute("studentId"));
int id = Integer.parseInt((String) request.getAttribute("studentId"));

因为您混淆了属性和参数。更改为
stringcode=(String)request.getAttribute(“subjectCode”)因为您混淆了属性和参数。更改为
stringcode=(String)request.getAttribute(“subjectCode”)
System.out.println("String passed is : "+request.getAttribute("studentId"));
int id = Integer.parseInt((String) request.getAttribute("studentId"));