我原来只会用response.getWriter().println("..."),可这成了完全新写的一个返回页面;
后来试了试request.getRequestDispatcher("login.jsp").forward(request, response),可原来login.jsp中的数据又保存不下来,可怎么办呐,这应该是一个非常常见的问题吧! 初学Jsp,感觉好难啊!

解决方案 »

  1.   

    form标签中加入action="_blank" 在一个新页面中做身份校验,校验成功则刷新前叶,不成功则popup一个message,本页不用改变。或者用xml提交form数据,刷新页面局部内容的InnerHtml。
      

  2.   

    out.println("<script>history.back();</script>");
    绝对跟刚才的一样
      

  3.   

    <%
    String sName = (String) request.getAttribute("username");
    String sPassword = (String) request.getAttribute("password");%><form action="/login?action=validate">
    用户名:<input type="text" name="username" value="<%=sName%>">
    密  码:<input type="password" name="password" value="<%=sPassword%>">
    <input type="submit" value="登录">
    </form>java类里在调用
    request.getRequestDispatcher("login.jsp").forward(request, response),之前加上
    request.setAttribute("name", 取到的username值);
    request.setAttribute("password", 取到的password值);