2017-02-21 8 views
0

サーブレットを使用してsendRedirectコールの後に別のメソッドを呼び出すことは可能ですか?私も戻り値またはresponse.setHeader( "REFRESH"、 "5; url =/Receive.jsp");を使用しています。以前のSrackoverflowの回答と同様です。これを達成する方法はありますか? Googleページを開きますが、受信ページは表示されません。sendRedirectの後に別のメソッドを呼び出すことができない

基本的には携帯電話番号を入力した後、apiリンクをクリックしてotpテキストボックスで新しいjspページに戻るようにします。

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 SignUp extends HttpServlet { 

    protected void doGet(HttpServletRequest request,HttpServletResponse response) 
      throws ServletException, IOException { 
      String mobno=request.getParameter("mobile"); 

        response.sendRedirect("https://google.com"); 
        response.setHeader("REFRESH", "5;url=/Receice.jsp"); 
     } 

    protected void doPost(HttpServletRequest request, 
      HttpServletResponse response) throws ServletException, IOException { 
     String mobno = request.getParameter("mobile"); 

     if (mobno.equals("")) { 
      PrintWriter out = response.getWriter(); 
      out.print("mob number can't be empty"); 
      out.flush(); 
      response.setContentType("text/html;charset=UTF-8"); 
      RequestDispatcher myDispatch = request 
        .getRequestDispatcher("/OtpVerification.html"); 
      myDispatch.include(request, response); 
     } else { 
      request.setAttribute("TextValue", mobno); 
      doGet(request, response); 
      request.getRequestDispatcher("/Receive.jsp"); 


     } 
    } 


} 
    [here is the screen shot of the above code][1] 
+0

よく起こりますか? –

+0

Googleのページを開いていますが、Receive jspページは開かれていません。 –

+0

それはあなたの答えです。 –

答えて

0

あなたは、セットアップgoogle.com

ファーストへの呼び出しをインターセプトするフィルターをすることができ、あなたのweb.xmlファイルでそれを設定します。

<filter> 
<filter-name>SomeName123</filter-name> 
<filter-class>packagename.FilterClassThatWillTakeCareOfTheSaidIssue</filter-class> 
</filter> 

<filter-mapping> 
<filter-name>SomeName123</filter-name> //name here should be exactly the same as above <filter-name> 
<url-pattern>/google.com</url-pattern> //play around with this google.com until you get it right 
</filter-mapping> 

それを設定した後、今ではFilterクラスを作成しますjavax.servlet.Filterを実装し、それをFilterClassThatWillTakeCareOfTheSaidIssueと呼びます(名前はweb.xmlの<filter-class>名前空間で同じでなければなりません)、doFilterメソッドをオーバーライドしてからロジックを適用してください:

HttpServletResponse res = (HttpServletResponse) response; 
res.setHeader("REFRESH", "5;url=/Receice.jsp"); //This is your logic 
chain.doFilter(request, response); 

これはそうする必要があります。

関連する問題