在servlet中使用Jsp变量
servlet1在servlet中使用Jsp变量,jsp,servlets,Jsp,Servlets,servlet1 request.getSession().setAttribute("user", user.getUid()); request.getRequestDispatcher("home.jsp").forward(request,response); Jsp代码 <h5>Servlet communicated message to JSP: ${user} Please Select an image to upload</h5>
request.getSession().setAttribute("user", user.getUid());
request.getRequestDispatcher("home.jsp").forward(request,response);
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>
Servlet将消息传递给JSP:${user}
请选择要上载的图像
用户值从servlet1发送到JSP
现在我需要将它从JSP传输到Servlet2。
我需要访问servlet 2中用户的值
如何做到这一点
$user是servlet发送的属性。1$user在此网页上打印值
现在为了进一步处理,必须将此变量发送到servlet2首先让我从重载的
getSession()
方法开始解释。no arggetSession()
总是返回一个新的session
对象,该对象类似于getSession(true)
,但在getSession(false)
的情况下,它会检查现有会话,如果存在,则返回它,否则返回null
一旦您将属性设置为session,它将对用户可用,直到其会话可用(非空)或未无效
,因此您的数据用户
也将在JSP和servlet2中可用。但是,您用于为会话设置属性的方法是易受攻击的,因为getSession()
还可以返回属性不存在的新会话
因此,安全的方法是将会话对象检索到引用,检查它是否为null,然后获取或设置属性
HttpSession session = request.getSession(false);
if(session != null) {
// set/get data whatever you need. Avoids NullPointerException
}
第二种方法是在JSP
中使用隐藏属性,如下所示
<input type="hidden" name="user" value="<%=request.getAttribute("user") %>"/>
在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>
您必须通过GET或POST请求将其传递给servlet您可以提供一个代码段吗您提供了您试图从JSPI调用的代码servlet编辑了code@HeenaMittal不鼓励在servlet1中使用Scriptlet添加用户值的代码,而是使用JSTL。
<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>
String username = request.getParameter("user");