2014-10-13 2 views
0

У меня есть jsp, который вызывает сервлет. Этот сервлет выполняет некоторые задачи, а затем я хочу вернуться на страницу, на которой я был, и перезагрузить ее. Это было бы просто, если бы я знал точный url, который будет каждый раз использовать redirectUrl. Тем не менее, я не могу жестко закодировать значение в этом, поскольку оно динамически создается. Есть ли способ сделать это, когда предыдущий URL-адрес мне неизвестен?Перезагрузка страницы jsp из сервлета при использовании данных формы

ответ

0

Я не уверен, правильно ли я вас понял, вам нужно перейти от jsp к сервлету и вернуться к тому же jsp? Если это то, что вам нужно, я бы поставил какой-то скрытый вход в Jsp форме с пути

<input type="hidden" name="jspPath" value="${pageContext.request.requestURI}"/> 

Так полное решение ниже:

Page1.jsp

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<body> 
${requestScope.dataFromServlet } 
<form action="${pageContext.request.contextPath}/HelloWorldServlet " method="POST"> 
<input type="hidden" name="jspPath" value="${pageContext.request.requestURI}"/> 
<input type="hidden" name="param1" value="value1"/> 
<input type="submit" value="Submit"> 
</form> 
</body> 
</html> 

HelloWorldServlet.java

public class HelloWorldServlet extends HttpServlet { 
    protected void doPost(HttpServletRequest request, 
      HttpServletResponse response) throws ServletException, IOException { 
     String jspPath = request.getParameter("jspPath"); 
     if(jspPath == null || "".equals(jspPath)) 
      jspPath = "errorPage.jsp"; 

     request.setAttribute("dataFromServlet", "Hello World"); 

     RequestDispatcher rd = request.getRequestDispatcher(jspPath); 
     rd.forward(request, response); 
    } 
} 
Смежные вопросы