2017-02-21 2 views
0

Можно ли вызвать другой метод после вызова sendRedirect с использованием сервлета. Я также использовал return или response.setHeader («REFRESH», «5; url =/Receive.jsp»); как в предыдущем ответе Srackoverflow. Есть ли способ добиться этого? .. открывает страницу google, но doesnot/Receive page.Невозможно вызвать другой метод после sendRedirect

В основном я хочу сделать мобильную без веры, в которой после ввода номера мобильного телефона она попадет в ссылку api и вернется на новую страницу jsp с текстовым полем otp.

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, но не открывает страницу получения 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> 

После установки его, теперь создать класс фильтра, который реализует javax.servlet.Filter и называет его FilterClassThatWillTakeCareOfTheSaidIssue или что-то еще (имя должно быть одинаковым в пространстве имен <filter-class> в вашем web.xml), переопределить метод doFilter, а затем применить свою логику там:

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

И это должно быть сделано.