从Servlet中的请求中读取参数

时间:2016-06-24 23:35:13

标签: java servlets

我想从HttpServletRequest中读取一个参数,然后检查它是否符合某些条件。所以这三个条件是

  1. 参数的值只能包含字母数字(仅限ASCII字符),下划线和破折号
  2. 它不能以破折号开头。
  3. 最长可达200​​个字符。
  4. 所以我编写了以下代码来检查它是否符合上述条件。

    String tempParameter = request.getParameter("X");
    if (tempParameter.matches("^[\\u0000-\\u007F]*$") 
        && tempParameter.length() <= 200        
        && !(tempParameter.substring(0, 1)).equals("-")) {
          A = tempParameter;
        }
    

    所以我运行servlet并在请求中将“X”的值作为“-sample”传递,变量“A”为null(看起来正确)。然后我在请求中将“X”的值作为“样本”传递,变量“A”被赋予“样本”(仍然正确)。但是,如果我将“X”的值更改为“-sample”,变量“A”将被赋予“样本”(不应该发生)。请求中似乎忽略了Dash。我可以在这里知道我的代码有什么问题吗?对不起,如果我错过了一些明显的东西。谢谢。

    更新:如果我重新启动网络应用程序,代码似乎运行正常,但是在没有Dash的任何请求之后它忽略了Dash。

1 个答案:

答案 0 :(得分:3)

您声明A的位置?

看起来代码是正确的,但你的变量保持过去的结果。

尝试在A = null

中设置else