如何访问查询参数JSP,JSTL,Javascript

Pul*_*tal 25 html javascript jsp jstl query-parameters

我一直在使用以下3种方式来访问URL中的查询参数.

JSP

String success = request.getParameter("success");
if(success!=null) {
//do something
}
Run Code Online (Sandbox Code Playgroud)

JSTL

<c:if test="${not empty param.success}">
//do something
</c:if>
Run Code Online (Sandbox Code Playgroud)

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";
}
Run Code Online (Sandbox Code Playgroud)

所有这3个都适合我,但我想知道是否有任何问题,哪个是首选?

Roh*_*sal 15

在第一种方法中,您使用Scriptlet访问请求参数,肯定它可以工作,但您必须额外检查null.因此总是避免使用Scriptlet.

在使用JSTL的第二种方法中,它优于第一种方法,相对于scriptlet的改进版本为您提供了更大的灵活性和健壮性.所以,这是我们一直鼓励的事情.这是三者中最好的方法.

在最后一种方法中,使用Javascript,虽然是另一种方法; 但从不鼓励.它需要额外注意小心处理params,你有更好的选择来做同样的工作.对于Javascript来说,这不是一个理想的任务!