到目前为止,我对wait()和yield()方法的理解是,当线程没有执行任何任务并让CPU执行其他一些线程时,会调用yield().当一些线程被搁置并且通常用于同步的概念时,使用wait().但是,我无法理解其功能的差异,我不确定我所理解的是对还是错.有人可以解释它们之间的区别(除了它们存在的包装).
我正在使用以下代码在浏览器上打印用户名:
<body>
<form>
<h1>Hello! I'm duke! What's you name?</h1>
<input type="text" name="user"><br><br>
<input type="submit" value="submit">
<input type="reset">
</form>
<%String user=request.getParameter("user"); %>
<%if(user == null || user.length() == 0){
out.print("I see! You don't have a name.. well.. Hello no name");
}
else {%>
<%@ include file="response.jsp" %>
<% } %>
</body>
Run Code Online (Sandbox Code Playgroud)
的response.jsp:
<body>
<h1>Hello</h1>
<%= request.getParameter("user") %>
body>
Run Code Online (Sandbox Code Playgroud)
每次我执行它,消息
我知道了!你没有名字..好吧..你好,没有名字
即使我没有在文本框中输入任何内容,也会显示.但是,如果我在其中输入任何内容,则会显示response.jsp代码,但我不希望在执行时显示第一条消息.我该如何做到这一点?请修改我的代码.
PS我在一些问题中已经读过,而不是检查与null的相等性,必须检查它是否为等于,以便它不会抛出空指针异常.当我尝试同样的,即if(user != null && ..),我得到了NullPointerException.
我有以下正则表达式,它执行非常基本的验证,只允许整数,不应允许任何浮点数和负数.我发现以下表达式是这样做的方法之一:
var reg = new RegExp('^(([0-9]+)|\.[0-9]+)$');
Run Code Online (Sandbox Code Playgroud)
此表达式正确验证以下输入:
validatePercentage(56.67); --> not an integer
validatePercentage(67); --> integer
validatePercentage(-5667); --> should not be negative
Run Code Online (Sandbox Code Playgroud)
但是,我无法理解' \的用法.'在表达式中(某种程度上似乎对输出产生了影响).有人可以解释一下正则表达式是如何消除负面输入的?提前致谢.