Получить текущую страницу jsp

#html #jsp #url #servlets

#HTML #jsp #url #сервлеты

Вопрос:

У меня есть нижний колонтитул с несколькими ссылками, которые открываются на той же вкладке, но я хочу, чтобы они открывались на новой вкладке всякий раз, когда пользователь находится на странице оплаты. Я решил сделать это с использованием boolean условия, которое становится истинным всякий раз, когда пользователь включен /payment.jsp . В чем я не уверен, так это в том, как получить текущую страницу?

 <% boolean paymentPage = false; %>

<% if(paymentPage ){ %>
        <new tab>
<% } else{ %>
        <same tab>
<% } %>
  

Мне кажется, что лучший способ сделать это — использовать HttpServletRequest интерфейс. Я надеялся, что смогу получить совет о том, как реализовать это в моем коде. Я предполагаю, что это будет выглядеть примерно так?

 <% private boolean paymentPageTest (HttpServletRequest request) { %>
<%  return request.getRequestURL.equals("/Payment.jsp"); %>
<% } %>
  

Ответ №1:

Согласно вашему предположению (логике), функция paymentPageTest должна быть объявлена в теге объявления JSP, как показано ниже:

 <%! 
 private boolean paymentPageTest (HttpServletRequest request){
    return request.getRequestURL.equals("/Payment.jsp"); 
 } 
 %>
  

Используйте приведенную ниже логику, чтобы проверить, является ли страница /Payment.jsp

 <%! 
    private boolean paymentPageTest(HttpServletRequest request){

     String path = ((HttpServletRequest) request).getRequestURI();
     if (path.endsWith("/Payment.jsp")) {
         return true;//new tab
     }else{
         return false;//current tab
     }
    }
%>
  

Комментарии:

1. Да, это действительно выглядит чище. К сожалению, это не работает.

2. хорошо, логику необходимо обновить. Попытаюсь ее собрать. Где вы написали первый код (код в первом блоке кода)? какой jsp / файл? Мне нужно его имя файла.

Ответ №2:

В файле JSP:

 request.getAttribute("javax.servlet.forward.request_uri")
  

Ответ №3:

Понял это.

 <% boolean paymentPage = false; %>

<% String str = request.getRequestURL().toString(); %>
<% if(str == "<url>") {paymentPage = true;} %>

<% if(paymentPage ){ %>
        <new tab>
<% } else{ %>
        <same tab>
<% } %>