将会话变量数据从jsp传递到java

时间:2013-03-09 03:54:08

标签: java javascript jsp session session-variables

我创建了会话变量,因为我想将数据从一个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);
%>

1 个答案:

答案 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}