Подтвердить что ты не робот

Способы доступа к параметрам запроса JSP, JSTL, Javascript

Я использовал следующие 3 способа доступа к параметрам запроса в URL.

JSP

String success = request.getParameter("success");
if(success!=null) {
//do something
}

JSTL

<c:if test="${not empty param.success}">
//do something
</c:if>

JavaScript

function getQueryParameter ( parameterName ) {
  var queryString = window.top.location.search.substring(1);
  var parameterName = parameterName + "=";
  if ( queryString.length > 0 ) {
    begin = queryString.indexOf ( parameterName );
    if ( begin != -1 ) {
      begin += parameterName.length;
      end = queryString.indexOf ( "&" , begin );
        if ( end == -1 ) {
        end = queryString.length
      }
      return unescape ( queryString.substring ( begin, end ) );
    }
  }
  return "null";
}

Все три из них работают для меня, но я хотел бы знать, есть ли какие-либо из них, есть какая-то проблема и какой из них предпочтительнее?

4b9b3361

Ответ 1

В первом подходе вы обращаетесь к параметрам запроса с помощью Scriptlets, определенно это работает, но вы должны сделать дополнительную проверку для null. Поэтому Scriptlets всегда избегают.

Во втором подходе, использующем JSTL, это лучше, чем первый подход, усовершенствованная версия по сценариям, которая дает вам большую гибкость и надежность. Поэтому мы всегда будем поощрять. Это лучший подход для трех.

В последнем подходе, используя Javascript, хотя и другой метод; но никогда не поощряется. Это требует дополнительной осторожности, чтобы тщательно обрабатывать параметры, и у вас есть лучшие варианты для выполнения той же работы. Не идеальная задача для Javascript для этого!