我一直使用以下3种方式访问网址中的查询参数。
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";
}
这三项工作对我而言,但我想知道是否有任何问题,哪一个是首选?
答案 0 :(得分:15)
在第一种方法中,您使用Scriptlet访问请求参数,绝对可行,但您必须额外检查null。因此总是避免使用Scriptlet。
在使用JSTL的第二种方法中,它优于第一种方法,相对于scriptlet的改进版本为您提供了更大的灵活性和健壮性。所以,这是我们一直鼓励的事情。 这是三者中最好的方法。
在最后一种方法中,使用Javascript,虽然是另一种方法;但从不鼓励。它需要额外注意小心处理params,你有更好的选择来做同样的工作。对于Javascript来说,这不是一个理想的任务!