我想从HttpServletRequest中读取一个参数,然后检查它是否符合某些条件。所以这三个条件是
所以我编写了以下代码来检查它是否符合上述条件。
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。
答案 0 :(得分:3)
您声明A
的位置?
看起来代码是正确的,但你的变量保持过去的结果。
尝试在A = null
块
else