从Servlet调用JSP页面

时间:2015-05-27 03:30:32

标签: java jsp servlets

有人可以告诉我是否存在除RequestDispatcher以外的任何方法,从我的servlet调用jsp页面?因为我已经尝试了很多但没有成功。

我的servlet正常工作,并从jsp恢复了所有数据。当用户正确输入用户名和密码时,我所需要的只是被重定向到另一个页面。

我的代码:

首先我的servlet“登录”

protected void processRequest(HttpServletRequest request,HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();

}


  protected void doGet(HttpServletRequest request, HttpServletResponse      response)
        throws ServletException, IOException {
    processRequest(request, response);
}


    protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    try {
        String user = request.getParameter("username");
        String pass = request.getParameter("password");         
      System.out.println(" le user est "+user+ " le mot de passe est " + pass);

          String query = "SELECT * FROM users WHERE username = '"+user+"' and password='"+pass+"'";

      dbconn = new DBAccess();
      Connection conn = dbconn.connect();

         stmt = conn.createStatement();
         ResultSet res = stmt.executeQuery(query);

            if(res.next()){
              ServletContext sc = this.getServletContext();
              RequestDispatcher rd =sc.getRequestDispatcher( "inscreption.jsp");
              rd.forward(request, response);   
                 System.out.println(" il existe");

            }else { 
           ServletContext sc = this.getServletContext();
            RequestDispatcher rd = sc.getRequestDispatcher("index.jsp");
             //   RequestDispatcher rd =request.getRequestDispatcher("index.jsp");
                rd.forward(request, response);   
                System.out.println("not found");


      }
    } catch (SQLException ex) {
        Logger.getLogger(login.class.getName()).log(Level.SEVERE, null, ex);
    }


    finally{
        System.out.close();
    }





    }}
    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
      */
   /* @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

我的jsp,我将被重定向为

<html>
<head>
    <!--local jquery-->
    <script  src="jQuerys/jquery-1.9.1.min.js"></script>
    <script  src="jQuerys/jquery.mobile-1.3.1.min.js"></script>
    <link rel ="stylesheet" type="text/css" href="css/jqueryMobile-1.3.1.css"/>
    <!--/local jquery-->
      </head>

      <body>
<div data-role="page" id="inscription">
<div data-role="header" data-theme="b">
    <center>CERIST</center>
</div>
                  <form id="insc" method="post" action="login">

  <div data-role="content">
    <div data-role="fieldcontain">
        <label for="identifiant">Identifiant </label>
        <input type="text" id="identifiant"/>
    </div>
    <div data-role="fieldcontain">
        <label for="password1">Mot de passe </label>
        <input type="password" id="password1"/>
    </div>
    <div data-role="fieldcontain">
        <label for="password2">Confirmation</label>
        <input type="password" id="password2"/>
    </div>
    <div data-role="fieldcontain">
        <fieldset data-role="controlgroup">
            <legend>Vous &ecirc;tes :</legend>
                <input type="radio" name="profil" id="radio-choice-1" value="Candidat" />
                <label for="radio-choice-1">Utilisateur</label>

                <input type="radio" name="profil" id="radio-choice-2" value="Entreprise"  />
                <label for="radio-choice-2">Administrateur</label>
        </fieldset>
    </div>
    <br/>
    <a href="#" data-role="button" onclick="">S'inscrire</a>

        </form>

  </div>
 </div>
      </body>
</html>

1 个答案:

答案 0 :(得分:-1)

index.jsp:

var Outter = React.createClass({
    clickHandler: function(innerName){
        console.log(innerName);
    },
    render: function() {
        return <div><Inner name="inner" clickHandler={this.clickHandler} /></div>;
    }
});

var Inner = React.createClass({
    _clickHandler : function() { 
        /*
        Here you could add some validation that you truly have a callback in your props.
        if(_(this.props.clickHandler).isFunction() ) {
        }
        */
        this.props.clickHandler('innerName');
    },
    render: function(){
        return <div onClick={this._clickHandler}>This is Inner.</div>
    }
});

Myservlet.java:

<form action="Myservlet" method="post"><br>
            User name`<`input type="text" name="username"`>`<br>
            Password `<`input type="password" name="password"><br>
            `<`input type="submit" value="Submit" `>`

</form>

您可以创建两个以上要分派请求的页面,所以我在这里创建了两个以上的jsp页面名称:protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); out.print("Oppos!!!"); } @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String user = request.getParameter("username"); String pass = request.getParameter("password"); RequestDispatcher rd; if (user.equals("username") && pass.equals("password")) { rd = request.getRequestDispatcher("/inscreption.jsp"); rd.forward(request, response); } else { rd = request.getRequestDispatcher("/wrong.jsp"); rd.forward(request, response); } } right.jsp。如果用户名和密码是正确的,那么如果它错误的话会向wrong.jsp页面转发,它会将请求转移到right.jsp页。