【问题标题】:is there a simple way to get URL in java有没有简单的方法在java中获取URL
【发布时间】:2012-07-27 15:30:52
【问题描述】:

我正在为网站制作电子邮件验证链接。当用户注册并填写完他们的个人数据(并且通过了所有检查)时,他们会被发送到一个 jsp 页面,说明一封电子邮件已发送到他们作为用户名输入的地址,并带有一个链接以单击以验证电子邮件地址。所以这部分一切都很好,我生成了链接(现在只使用我的本地主机),它看起来像这个例子http://localhost:9999/javawork/msc/validate/?6FRQ8RAT&u=1s3w1Iih64egX01188HT。当他们单击链接时,它会转到验证文件夹中的 jsp 页面 index.jsp。此时我需要获取整个 URL 并将其发送到函数以确保 URL 格式正确(出于安全目的)。如果通过并且格式没问题,我需要在“?”之后立即获取 8 位代码。还有'u'的值。然后我将这些值发送到一个函数,检查它们是否与我们的数据库中的内容匹配,如果匹配,我会使用验证日期更新数据库记录,以便我们知道他们已经验证了他们的电子邮件地址。

所以我的问题是第一,我如何抓取整个 URL 来检查格式,第二,我如何抓取 8 位代码,以及 'u' 的值?我一直在网上查找,所有示例都需要创建多个函数或类,并使用 URL 类。他们都希望我创建一个 URL 对象的实例并使用整个 URL 对其进行初始化。但这不是一个静态 URL,每个注册的用户都会有所不同,因为它会生成一个随机的 8 位代码进行检查,并且“u”的值是来自数据库的屏蔽用户 ID。我不明白它如何要求您初始化整个 URL 以获取值,当您在从 URL 获取值之前不知道值是什么时。

有没有一种简单的方法来获取值和整个 URL?即使我可以在“?”之后获取所有内容,我也知道基本 URL,并且可以构建一个新字符串来检查格式是否可以从“?”中获取之后。请帮忙处理那部分。谢谢。

【问题讨论】:

  • 您是在编写一个 servlet 来处理来自客户端的请求,还是只是一个 .jsp 页面?
  • 只是一个jsp页面。我已经在 java 类中有函数来检查数据库的值。我只需要 jsp 页面获取 URL 值,将它们传递给函数(返回布尔值),然后如果返回 true,则 jsp 页面显示成功消息,如果返回 false,则显示失败消息。

标签: url request.querystring


【解决方案1】:

接口 HTTPServletRequest 包含一个方法getRequestURL,它返回一个StringBuffer,您可以使用它来检查整个 URL 的格式。 你可以在一个jsp页面中得到它:

<%=request.getRequestURL()%>

如果您使用的是上面指定的请求格式,那么您的第二个问题:

如何获取 8 位代码和 'u' 的值?

可以通过操纵 StringBuffer 在 ?和 & 用于 8 位代码。 或者使用其他请求方法, ServletRequest.getParameter(java.lang.String name)

不过,要获取每个参数,我不确定它最终将如何处理 8 位代码的未命名参数。让我知道情况如何。

【讨论】:

  • 这正是我所需要的。获得完整的 URL 后,我可以将其拆分为“?”就像你所说。非常感谢。
  • &lt;%=request.getRequestURL()%&gt; 只给了我“?”但不是“?”或之后的任何事情。知道如何获取查询字符串参数吗?
  • 你说得很好,我的错。我提供的第二种方法可以解决问题。 request.getParameterNames() 将返回参数名称的枚举,您可以将其与request.getParameter(java.lang.String name) 一起使用来逐步检查每个参数并获取其值。
【解决方案2】:

不要将 8 位代码视为未命名参数。将其视为没有值的参数。

request.getParameterNames() 将为您提供 8 位代码以及“u”。所以你可以像这样循环: 字符串代码 = "";

for(String paramName : request.getParameterNames()) {
    if(!paramName.equalsIgnoreCase("u"))
        code = paramName;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-13
    • 2010-12-15
    • 2010-11-27
    • 2011-04-21
    • 2011-03-02
    • 2015-05-12
    • 2012-12-01
    • 1970-01-01
    相关资源
    最近更新 更多