我试图检查使用request.getParameter声明的字符串是否为null或空。当在java中使用request.getParameter声明字符串时,检查字符串是否为空
但我不断收到错误,当我试着做这个代码: 错误是nullexception错误。 (“”),但无济于事。我也尝试过.equals(“”),但无济于事。
我在做什么错在这里,我想检查字符串是否为空或空以防止它形成重定向到另一个页面。
谢谢
我试图检查使用request.getParameter声明的字符串是否为null或空。当在java中使用request.getParameter声明字符串时,检查字符串是否为空
但我不断收到错误,当我试着做这个代码: 错误是nullexception错误。 (“”),但无济于事。我也尝试过.equals(“”),但无济于事。
我在做什么错在这里,我想检查字符串是否为空或空以防止它形成重定向到另一个页面。
谢谢
这可能是值得检查出Apache的StringUtils
类,更具体的isEmpty(String str)
方法:
公共静态boolean isEmpty(String str)检查字符串是否为空 (“”)或null。
StringUtils.isEmpty(空)=真
StringUtils.isEmpty( “”)=真
StringUtils.isEmpty( “ ”)= FALSE
StringUtils.isEmpty(“ 鲍勃”)= FALSE
StringUtils的。 isEmpty(“bob”)= false注意:此方法在Lang版本2.0中进行了更改。它不再修剪字符串。该功能在isBlank()中可用。
参数:str - 要检查的字符串,可以为null
返回:如果字符串为空或空
此外,您可能需要使用您的SQL查询预处理语句。你拥有的是倾向于SQL注入。
所以使用字符串!= null是一个坏主意?什么时候应该使用.isempty和!= null?谢谢。我打算在进行一些验证之后,将所有基本的东西都解决了。谢谢 – magicianiam 2013-02-25 07:41:45
@magicianIam:从我所了解到的情况来看,无论您检查什么对象,空检查都会变得混乱。我认为Apache提供的'Util'类可以帮助你更好地处理不同类型的空检查。该框架很可能比您的代码更强大。 – npinti 2013-02-25 07:43:39
我看到了,谢谢,它在PHP中更加简单,我对java web很陌生。再次感谢你 :) – magicianiam 2013-02-25 07:45:26
我相信你变的异常到达if(name != null)
之前。在初始化sql
变量时使用这些参数。你是否期待null
字符串出现?
我觉得你做任何DB相关的操作之前,应该有一个空检查:
if (nullChecksPassed) {
Class.forName("");
Connection conn = DriverManager.getConnection("");
String sql = "";
Statement stmt = conn.createStatement();
stmt.execute(sql);
conn.close();
}
if (name != null) {
response.sendRedirect("index.jsp");
}
为什么?你能否向我解释为什么我无法工作?谢谢 – magicianiam 2013-02-25 07:38:41
是的,你的权利,如果它为空,他们不应该在数据库输入。谢谢你指出我错过了它。但如果我在.execute的空检查将重定向,如果它返回true为空? – magicianiam 2013-02-25 07:43:55
在这种情况下,您应该在执行任何数据库相关操作之前进行空检查。让我更新我的答案。 – 2013-02-25 07:55:33
你在哪一行得到错误?并尝试isEmpty()可能是它的帮助 – 2013-02-25 07:37:11
@AlekseiBulgak我不能告诉,我正在寻找一个行号,但它说,一个根错误已遇到,不能继续。 – magicianiam 2013-02-25 07:38:08
看看服务器的日志文件 – user000001 2013-02-25 07:38:40