Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在jsp中以更简单的方式检查请求参数不为null?_Java_Jsp - Fatal编程技术网

Java 如何在jsp中以更简单的方式检查请求参数不为null?

Java 如何在jsp中以更简单的方式检查请求参数不为null?,java,jsp,Java,Jsp,我想检查请求参数是否不为null,但在我的代码中,我想可能会检查两次,所以大家可以给我一些改进。我通过地址栏传递参数。 这是我的密码: <% request.setCharacterEncoding("UTF-8"); String name,password; try { name = (request.getParameter("name") != null) ? request.getParameter("name") : "null"; password = (

我想检查请求参数是否不为null,但在我的代码中,我想可能会检查两次,所以大家可以给我一些改进。我通过地址栏传递参数。 这是我的密码:

<%
request.setCharacterEncoding("UTF-8");
String name,password;

try {
    name = (request.getParameter("name") != null) ? request.getParameter("name") : "null";

    password = (request.getParameter("password") != null)? request.getParameter("password") : "null";
%>

<h3>name:<%=name%></h3>
<h3>password:<%=password%></h3>

<%
}catch (NullPointerException ex){
    ex.printStackTrace();
}
%>

简单地将空值赋给字符串不会产生Java抛出的NullPointerException的效果,如果这是您两次检查的意思的话

在您的代码片段中,您已经实现了一个逻辑来检查name和password上的null值,方法是为它们指定字符串literal null,从而在加载Jsp时获得某种视觉反馈

name = (request.getParameter("name") != null) ? request.getParameter("name") : "null";

password = (request.getParameter("password") != null)? request.getParameter("password") : "null";

<h3>name:<%=name%></h3>
<h3>password:<%=password%></h3>
也就是说,我建议在Servlet中对照null检查这些参数,因为您要求提供建议,所以让我添加两件事:

第一:您不想通过GET方法传递密码

第二:scriplets在可维护性和可重用性方面被广泛认为是不好的实践 原因。MVC模式是未来的发展方向,但这是另一个主题

了解它们是什么,然后继续:不要尝试在Jsp中实现一些复杂的Java逻辑,因为您将看到有更强大、更干净、更有用的技术来创建Jsp dynamc,如JSTL、自定义标记和EL

例如,假设您的最终目标是向用户提供您可能有的某种反馈

<h3>name: ${name != null && name != "" ? name : 'not assigned' }</h3>
如上所述,您可能希望检查Servlet中的空值,并从中控制应用程序的流,例如,如果没有输入值,您可以重新显示表单。 这将允许在Jsp上简单地使用它

<h3>name: ${name}</h3>

希望这会有所帮助。

如果您指的是检查两次,那么简单地为字符串指定null值不会产生Java抛出的NullPointerException的效果

在您的代码片段中,您已经实现了一个逻辑来检查name和password上的null值,方法是为它们指定字符串literal null,从而在加载Jsp时获得某种视觉反馈

name = (request.getParameter("name") != null) ? request.getParameter("name") : "null";

password = (request.getParameter("password") != null)? request.getParameter("password") : "null";

<h3>name:<%=name%></h3>
<h3>password:<%=password%></h3>
也就是说,我建议在Servlet中对照null检查这些参数,因为您要求提供建议,所以让我添加两件事:

第一:您不想通过GET方法传递密码

第二:scriplets在可维护性和可重用性方面被广泛认为是不好的实践 原因。MVC模式是未来的发展方向,但这是另一个主题

了解它们是什么,然后继续:不要尝试在Jsp中实现一些复杂的Java逻辑,因为您将看到有更强大、更干净、更有用的技术来创建Jsp dynamc,如JSTL、自定义标记和EL

例如,假设您的最终目标是向用户提供您可能有的某种反馈

<h3>name: ${name != null && name != "" ? name : 'not assigned' }</h3>
如上所述,您可能希望检查Servlet中的空值,并从中控制应用程序的流,例如,如果没有输入值,您可以重新显示表单。 这将允许在Jsp上简单地使用它

<h3>name: ${name}</h3>
希望对您有所帮助。

当您需要为空对象设置空字符串时,可以使用该方法:

name = String.valueOf(request.getParameter("name"));
当需要为空对象设置空字符串时,可以使用方法:

name = String.valueOf(request.getParameter("name"));

传递的参数是这样使用的:request.jsp?name=usre?password=0000为什么不使用name:${param.name}并且不检查null。@zfireer请查看我的答案。它可能会对您有所帮助。传递的参数是这样使用的:request.jsp?name=usre?password=0000为什么不使用name:${param.name}并且不检查null。@Zfireer请查看我的答案。这可能对你有帮助。