2013-02-25 17 views
0

我试图检查使用request.getParameter声明的字符串是否为null或空。当在java中使用request.getParameter声明字符串时,检查字符串是否为空

但我不断收到错误,当我试着做这个代码: 错误是nullexception错误。 (“”),但无济于事。我也尝试过.equals(“”),但无济于事。

我在做什么错在这里,我想检查字符串是否为空或空以防止它形成重定向到另一个页面。

谢谢

+1

你在哪一行得到错误?并尝试isEmpty()可能是它的帮助 – 2013-02-25 07:37:11

+0

@AlekseiBulgak我不能告诉,我正在寻找一个行号,但它说,一个根错误已遇到,不能继续。 – magicianiam 2013-02-25 07:38:08

+0

看看服务器的日志文件 – user000001 2013-02-25 07:38:40

回答

2

这可能是值得检查出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注入。

+0

所以使用字符串!= null是一个坏主意?什么时候应该使用.isempty和!= null?谢谢。我打算在进行一些验证之后,将所有基本的东西都解决了。谢谢 – magicianiam 2013-02-25 07:41:45

+0

@magicianIam:从我所了解到的情况来看,无论您检查什么对象,空检查都会变得混乱。我认为Apache提供的'Util'类可以帮助你更好地处理不同类型的空检查。该框架很可能比您的代码更强大。 – npinti 2013-02-25 07:43:39

+0

我看到了,谢谢,它在PHP中更加简单,我对java web很陌生。再次感谢你 :) – magicianiam 2013-02-25 07:45:26

2

我相信你变的异常到达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"); 
} 
+0

为什么?你能否向我解释为什么我无法工作?谢谢 – magicianiam 2013-02-25 07:38:41

+0

是的,你的权利,如果它为空,他们不应该在数据库输入。谢谢你指出我错过了它。但如果我在.execute的空检查将重定向,如果它返回true为空? – magicianiam 2013-02-25 07:43:55

+0

在这种情况下,您应该在执行任何数据库相关操作之前进行空检查。让我更新我的答案。 – 2013-02-25 07:55:33

相关问题