servlet1
request.getSession().setAttribute("user", user.getUid());
request.getRequestDispatcher("home.jsp").forward(request,response);
home.jsp代码
<h5>Servlet communicated message to JSP: ${user}
Please Select an image to upload</h5>
<form action = "SaveInDBServlet" method = "GET"
enctype = "multipart/form-data">
<input type = "file" name = "filepath" size = "50" accept="image/*" />
<br />
<input type = "submit" value = "Submit" />
</form>
用户值从servlet1发送到JSP 现在我需要将其从JSP转移到Servlet 2。 我需要在servlet 2中访问用户的值 这该怎么做?
$ user是由Servlet发送的属性1 $ user在此网页上打印值 现在,为了进一步处理,必须将此变量发送到servlet2
答案 0 :(得分:1)
首先让我开始解释重载的 $fileId = '0BwwA4oUTeiV1UVNwOHItT0xfa2M';
$response = $driveService->files->get($fileId, array(
'alt' => 'media'));
$content = $response->getBody()->getContents();
方法。无参数getSession()
总是返回与getSession()
类似的新session
对象,但是在getSession(true)
的情况下,它将检查现有会话,如果存在则返回它否则返回null。
一旦您为会话设置了属性,用户就可以使用该属性,直到他的会话可用(不为null)或getSession(false)
不可用为止,因此您的数据invalidated
将在您的JSP中可用和servlet2也。但是,您用来设置会话属性的方法很容易受到攻击,因为user
还会返回一个新会话,其中您的属性将不存在。
因此,安全的方法是将会话对象检索到引用,检查它是否为null或获取或设置属性。
getSession()
第二种方法是像这样使用HttpSession session = request.getSession(false);
if(session != null) {
// set/get data whatever you need. Avoids NullPointerException
}
中的隐藏属性
JSP
因此,您只需要将属性设置为request并在<input type="hidden" name="user" value="<%=request.getAttribute("user") %>"/>
中获取其值,然后为隐藏字段设置值即可。现在,在第二个servlet中,使用jsp
方法(返回String)来获取值。
getParameter
答案 1 :(得分:1)
在您的JSP中执行此操作
<form action = "SaveInDBServlet" method = "GET"
enctype = "multipart/form-data">
<input type = "file" name = "filepath" size = "50" accept="image/*" />
<br />
<input type = "hidden" name= "user" value="${user}"/>
<input type = "submit" value = "Submit" />
</form>
在您的Servlet GET方法中
String username = request.getParameter("user");