我创建了会话变量,因为我想将数据从一个JSP传输到另一个JSP。
我的每个JSP都是一个标签。
我使用请求主体将用户从一个JSP提供的数据传输到另一个JSP。我在最后一个JSP中有<form>..><button type = "submit"/> </form>
,我提交数据并在Java类中使用它。
当我尝试从所有JSP页面访问会话数据时,它会为所有数据返回一个空值。
我应该如何将所有会话数据从所有JSP传输到Java类? 请注意,每个JSP都是一个选项卡,我从最后一个JSP提交数据。
代码:
<%
String joindate = request.getParameter( "joindate" );
session.setAttribute("joindate",joindate);
String birthdate = request.getParameter( "birthdate" );
session.setAttribute("birthdate",birthdate);
%>
答案 0 :(得分:1)
通常,只是尽量避免使用scriptlet。你肯定应该做Makoto推荐的事情:通过让你的JSP将数据提交给servlet来使用MVC模式,这可以解决繁重的问题。
每当在JSP中有表单时,请考虑使用
<form action="servletpattern?action=add_date" method="post">
然后在servlet中:
HttpSession session = request.getSession();
String action = request.getParameter("action");
if(action.equals("add_date")){
String joindate = request.getParameter( "joindate" );
session.setAttribute("joindate",joindate);
String birthdate = request.getParameter( "birthdate" );
session.setAttribute("birthdate",birthdate);
} else if(action.equals("someotheraction"){
//do something else
}
在JSP中,您应该再次使用scriptlet,而是通过EL访问会话变量:
join date: ${joindate}, birth date: ${birthdate}