如何将javascript变量值从JSP页面传递给Servlet?

时间:2012-04-30 16:09:33

标签: javascript jsp servlets session-variables

我有一个名为menu.jsp的JSP页面。在此页面上,用户必须从菜单中选择一个选项。我已经使用JavaScript在每个菜单项上实现了onclick("myredirect(choiceValue)")。该功能使用确认弹出框来检查用户是否想继续他当前的选择。如果用户选择ok,那么它将返回true并将存储在check变量中。我想将此作为choiceValue发送到名为CheckLogin.java的servlet,该servlet检查用户是否使用会话跟踪登录。如果用户未登录,则会将其重定向到login.jsp页面,否则他将被重定向到instructions.jsp页面。

我已经实现了以下所有内容。我想在整个会话期间使用choiceValue,但它没有按照我的预期工作。

menu.jsp

<script type="text/javascript">
<!--
    function myredirect(choiceValue){
    var check=window.confirm("You have Choosen "+choiceValue+" !\n Do you want to continue?");
        if(check){
            window.location.replace("checklogin.do?choice="+choiceValue);
            //window.location.replace("instructions.jsp?choice="+choiceValue);
        }
    }
//-->
</script>

CheckLogin.java

public class CheckLogin extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //cache controlling
        response.setHeader("Pragma", "no-cache");
        response.setDateHeader("Expires",0);
        response.setHeader("Cache-Control", "no-cache");

        HttpSession session=request.getSession(false);

        if(session==null)                                   //checking existing session
            response.sendRedirect("login.jsp");
        else if(session.isNew())
            response.sendRedirect("login.jsp");
        else{
            //setting choiceValue to session object so that it can be used further
            String choiceValue=request.getParameter("choice");
            session.setAttribute("choice",choiceValue);
            response.sendRedirect("instructions.jsp");      //redirecting to instruction.jsp page
        }
    }

0 个答案:

没有答案