2017-01-12 15 views
0

jspファイルに要求と応答を転送しようとしています。最初に私はその後ホームサーブレットで、私はJSPファイルへの要求を転送していますログインというサーブレットからホームというサーブレットにリクエストを転送していますhome.jspをと呼ばれます。サーブレットがjspにフォワードせずに別のサーブレット(リクエストディスパッチャ)に転送しています

すべて私のjspファイルはWEB-INFの中にあります。

これは私のLogin.java(サーブレット)です:

package com.webauth.login; 

import com.webauth.constants.ResponseConstants; 
import com.webauth.db.DB; 
import com.webauth.model.UserData; 
import java.io.IOException; 
import java.io.PrintWriter; 
import java.sql.Connection; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.util.logging.Level; 
import java.util.logging.Logger; 
import javax.servlet.RequestDispatcher; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import javax.servlet.http.HttpSession; 
import org.json.simple.JSONObject; 

/** 
* 
* @author admin 
*/ 
public class Login extends HttpServlet { 





    @Override 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 

     String userID = request.getParameter("userID"); 
     DB db = new DB(); 
     Connection connection = null; 
     boolean result = false; 
     String message = "Sorry User id doesn't exist or something went wrong"; 
     UserData user = new UserData(); 
     try { 
      connection = db.getConnection(); 
      ResultSet rs = db.checkIfUserExist(connection, userID); 

      if(rs!=null){ 
       if(rs.isBeforeFirst()){ 
        while(rs.next()){ 
         String username = rs.getString("username"); 
         String email = rs.getString("email"); 

         user.setUsername(username); 
         user.setEmail(email); 

         HttpSession session = request.getSession(); 
         session.setAttribute("UserData", user); 

         result = true; 

        } 
       } 

      } 

     } catch (ClassNotFoundException ex) { 
      Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex); 
     } catch (SQLException ex) { 
      Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex); 
     }finally{ 
      try { 
       connection.close(); 
      } catch (SQLException ex) { 
       Logger.getLogger(Login.class.getName()).log(Level.SEVERE, null, ex); 
      } 
     } 

     if(result){ 
      //This request dispatcher is working fine 
      RequestDispatcher rd = request.getRequestDispatcher("Home"); 
      rd.forward(request, response); 
     }else{ 
       JSONObject res = new JSONObject(); 
       res.put(ResponseConstants.RESULT,result); 
       res.put(ResponseConstants.MESSAGE, message); 

       PrintWriter out = response.getWriter(); 
       out.println(res); 
     } 



    } 



} 

これは私のHome.java(サーブレット)です:

package com.webauth.home; 

import java.io.IOException; 
import java.io.PrintWriter; 
import javax.servlet.RequestDispatcher; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 


public class Home extends HttpServlet { 




    @Override 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
      //This is line printed onto console 
      System.out.println("This line is being printed); 

      //This request dispatcher is not working 
      RequestDispatcher rd = request.getRequestDispatcher("/WEB-INF/home.jsp"); 
      rd.forward(request, response); 

    } 

} 

これは私のweb.xmlのです:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"> 
    <servlet> 
     <servlet-name>Register</servlet-name> 
     <servlet-class>com.webauth.registiration.Register</servlet-class> 
    </servlet> 
    <servlet> 
     <servlet-name>Login</servlet-name> 
     <servlet-class>com.webauth.login.Login</servlet-class> 
    </servlet> 
    <servlet> 
     <servlet-name>Home</servlet-name> 
     <servlet-class>com.webauth.home.Home</servlet-class> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>Register</servlet-name> 
     <url-pattern>/Register</url-pattern> 
    </servlet-mapping> 
    <servlet-mapping> 
     <servlet-name>Login</servlet-name> 
     <url-pattern>/Login</url-pattern> 
    </servlet-mapping> 
    <servlet-mapping> 
     <servlet-name>Home</servlet-name> 
     <url-pattern>/Home</url-pattern> 
    </servlet-mapping> 
    <session-config> 
     <session-timeout> 
      30 
     </session-timeout> 
    </session-config> 
</web-app> 

注:すべてのjspファイルはWEB-INFフォルダにあります。

私が間違っている場所を教えてもらえますか?ありがとう

答えて

0

response.sendRedirect()メソッドを使用して、.jspファイルへの応答を転送してみます。 Servletにはforward() and sendRedirect()の違いがあります。

関連する問題