0

我创建了会话变量,因为我想将数据从一个 JSP 传输到另一个。我的每个 JSP 都是一个选项卡。我使用请求正文将用户提供的数据从一个 JSP 传输到另一个。我<form>..><button type = "submit"/> </form>在最后一个 JSP 中提交数据并在 Java 类中使用它。

当我尝试从所有 JSP 页面访问会话数据时,它会为所有数据返回一个空值。

我应该如何将所有 JSP 中的所有会话数据传输到 Java 类?请注意,每个 JSP 都是一个选项卡,我从最后一个 JSP 提交数据。

代码:

<% 
    String joindate = request.getParameter( "joindate" );
    session.setAttribute("joindate",joindate);
    String birthdate = request.getParameter( "birthdate" );
    session.setAttribute("birthdate",birthdate);
%>
4

1 回答 1

1

一般来说,尽量避免使用scriptlet。您绝对应该按照 Makoto 的建议去做:使用 MVC 模式,让您的 JSP 将他们的数据提交给一个 servlet,该 servlet 完成繁重的工作。

每当您在 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}
于 2013-03-09T04:45:25.470 回答