java - 如何确保url中没有任何参数?

标签 java jsp

我知道如何确定特定参数是否存在于 url 中。 我想确保网址中没有任何参数,而不仅仅是指定的参数。我怎样才能做到这一点?我有一个很长的参数列表,为所有参数列出一个条件列表看起来效率很低。

示例 URL 为:www.domain.com/Product/UniqueId

由于每个产品都有许多独特的参数,用户可能会通过产品的唯一代码、唯一供应商、唯一 sig、唯一 pod 等访问产品页面。

例如:

www.domain.com/Product/UniqueId?code=uniqueCode
www.domain.com/Product/UniqueId?sig=uniqueSig
www.domain.com/Product/UniqueId?pod=uniquepod
www.domain.com/Product/UniqueId?circle=circleNumber&location=Location&color=Color

我发现相关但对我的案例没有用的问题是 1 , 2 , 3 , 4

我需要在 JSP 而不是 Java 中进行此类测试。

最佳答案

使用 URI 类会更容易一些:

import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;

public class UrlTest2
{

   public static void main( String[] args )
           throws MalformedURLException, URISyntaxException
   {
      URI url = new URI( "www.domain.com/Product/UniqueId" );
      System.out.println( url.getQuery() );  // prints "null"
      URI url2 = new URI( "www.domain.com/Product/UniqueId?pod=uniquepod" );
      System.out.println( url2.getQuery() );  // prints "pod=uniquepod"
   }
}

因此,如果 getQuery() 返回 null,则没有参数。否则,有。

关于您的编辑:嗯,我真的不建议将代码放在 JSP 中。如今,这被认为是不好的做法。

但如果必须的话,看起来你可以要求所有参数,如果结果为 0,则没有任何参数。

<%
   Map params = request.getParameterMap();
   boolean noParams = (params.getSize() == 0);
%>

JSP 代码未经测试,但应该会给您思路。然后您可以稍后在 JSP 代码中使用 boolean 值 noParams

关于java - 如何确保url中没有任何参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33557485/

相关文章:

java - 弹出乘法表

java - Oracle 包和 Java 包之间的映射

java - 多播数据包未正确到达 podman 内部。已找到解决方法,但不清楚是防火墙问题还是 podman 问题?

java - 我们如何从操作中获取 JSON 响应

Java外部类扩展静态内部类

java - 聚光灯不工作

java - 在 Google App Engine 上调试编译和部署的 JSP

java - spring mvc 与 hibernate 一起使用更好吗?

javascript - 在网页上显示图标的问题

mysql - 如何在JSP页面中显示来自2个表的数据