将Arraylist从Servlet返回到DAO,再返回到Servlet,然后返回到Jsp

紫色猫头鹰

我的目标是要求用户输入日期,我的应用程序将检索该日期中的所有数据并显示在jsp表中。

现在,arraylist返回的是null,因此它将转到错误页面。但是在我的数据库中,有。

帮助将不胜感激。:)

以下是我的代码。

search.jsp

<form method="post" action="SearchServlet">
Date:<input name="rdate">
<input type="submit" value="Search">
</form>

SearchServlet

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws   ServletException, IOException {
String rdate = request.getParameter("rdate");
PersonBean pb = new PersonBean();
pb.setDate(rdate);
PersonDAO pd = new PersonDAO();

ArrayList personarraylist = pd.getDatePerson(pb);
System.out.println(personarraylist);
if (personarraylist.isEmpty() == true) {
response.sendRedirect("error.jsp");
} else {
request.setAttribute("person", rd.getDatePerson(pb));
RequestDispatcher view = request.getRequestDispatcher("success.jsp");
view.forward(request, response);
}
}

PersonDAO

public ArrayList getDatePerson(PersonBean pb) {

ArrayList<PersonBean> listdateperson = new ArrayList<PersonBean>();
String rdate = pb.getDate();
System.out.print(rdate);

int pendingcount = 0;

try {
currentCon = ConnectionManager.getConnection();
Statement statement = currentCon.createStatement();
String count = "SELECT COUNT(*) FROM person where date='" + rdate + "'";

PreparedStatement countstmt = currentCon.prepareStatement(count);
ResultSet countrs = countstmt.executeQuery();

while (countrs.next()) {
pendingcount = countrs.getInt(1);
System.out.print(pendingcount);
}

if (pendingcount == 0) {
PersonBean pbb = null;
pbb.setDate("0");
listdateperson.add(pbb);
}

else {

ResultSet rs = statement.executeQuery("SELECT name, date FROM person WHERE date='" + rdate + "'");
PersonBean pbbb = null;

while (rs.next()) {
PersonBean = new PersonBean();
pbbb.setName(rs.getString("name"));
pbbb.setDate(rs.getString("date"));

}

}
} catch (Exception asd) {
System.out.println(asd.getMessage());
}
return listdateperson;
}
阿尼凯特·库尔卡尼

1)PersonDAO内部代码if抛出NullPointerException

if (pendingcount == 0) {
 PersonBean pbb = null;  //assign null reference
 pbb.setDate("0");  //setting value to null reference throws NPE
 listdateperson.add(pbb);
}

2)缺少分配对象引用

PersonBean pbbb = null; 
while (rs.next()) {
 PersonBean = new PersonBean(); //how can you assign object reference to class PersonBean?

肯定是

pbbb = new PersonBean();

您正在使用PreparedStatement,然后使用占位符(?)来将参数传递给查询,这将防止SQL注入

也可以看看

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Java Servlet将JSON对象返回到AngularJS

来自分类Dev

将输入返回到段落

来自分类Dev

Python:将值读入空数组,然后返回到文件

来自分类Dev

将Mat转换为Blob,然后返回到Mat

来自分类Dev

如何将printf()重定向到文件,然后再返回到控制台

来自分类Dev

将Mat转换为Blob,然后再返回到Mat

来自分类Dev

如何将字符串转换为 ASCII,然后再返回到 Haskell?

来自分类Dev

返回到今天的天数

来自分类Dev

从Nvidia返回到Nouveau

来自分类Dev

返回到tr的引用

来自分类Dev

从跳转返回到主

来自分类Dev

将值从arraylist返回到ajax成功函数

来自分类Dev

将JSON返回到GET请求

来自分类Dev

将剃刀视图返回到iframe

来自分类Dev

将UpdatePanel返回到默认状态

来自分类Dev

jQuery将函数返回到变量

来自分类Dev

将URL从回形针返回到JSON

来自分类Dev

将结果返回到Webview操作

来自分类Dev

将骆驼路线配置返回到xml

来自分类Dev

是否可以将数据返回到Dialogflow?

来自分类Dev

将查询/表返回到变量

来自分类Dev

将foreach值从函数返回到数组

来自分类Dev

将默认网格返回到表格ExcelPackage

来自分类Dev

将Java列表返回到jQuery对象

来自分类Dev

异步android将值返回到数组

来自分类Dev

将结果返回到Webview操作

来自分类Dev

jQuery将函数返回到变量

来自分类Dev

无法将数据返回到网页

来自分类Dev

将变量从函数返回到视图