package?com.imooc.servlet;
import?java.io.IOException;
import?java.sql.Connection;
import?java.sql.DriverManager;
import?java.sql.PreparedStatement;
import?java.sql.ResultSet;
import?java.sql.SQLException;
import?java.util.ArrayList;
import?java.util.List;
import?javax.servlet.ServletException;
import?javax.servlet.http.HttpServlet;
import?javax.servlet.http.HttpServletRequest;
import?javax.servlet.http.HttpServletResponse;
import?com.imooc.bean.Message;
/**
?*?@author?Administrator
?*?列表頁面初始化控制
?*
?*/
@SuppressWarnings("serial")
public?class?ListServlet?extends?HttpServlet?{
@Override
protected?void?doGet(HttpServletRequest?req,?HttpServletResponse?resp)
throws?ServletException,?IOException?{
try?{
req.setCharacterEncoding("UTF-8");
String?command?=?req.getParameter("command");
System.out.println(command);
String?description?=?req.getParameter("description");
Class.forName("com.mysql.jdbc.Driver");
Connection?conn?=?DriverManager.getConnection("jdbc:mysql://localhost:3306/wechat","root","shuai");
StringBuilder?sql?=?new?StringBuilder("select?ID,COMMAND,DESCRIPTION,CONTENT?from?message?where?1=1");
List<String>?paramList?=?new?ArrayList<String>();
if(command?!=null?&&?!"".equals(command.trim())){
sql.append("and?COMMAND="+command);
paramList.add(command);
}
if(description?!=null?&&?!"".equals(description.trim())){
sql.append("and?DESCRIPTION?like?'%'???'%'");
paramList.add(description);
}
????PreparedStatement?sta?=?conn.prepareStatement(sql.toString());
????for(int?i=0;i<paramList.size();i++){
???? sta.setString(i,?paramList.get(i));
????}
????ResultSet?rs?=?sta.executeQuery();
????List<Message>?messageList?=?new?ArrayList<Message>();
??
????
????while?(rs.next())?{
Message?message?=?new?Message();
message.setId(rs.getString("ID"));
message.setCommand(rs.getString("COMMAND"));
message.setDescription(rs.getString("DESCRIPTION"));
message.setContent(rs.getString("CONTENT"));
messageList.add(message);
}
????req.setAttribute("messageList",?messageList);
}?catch?(ClassNotFoundException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}?catch?(SQLException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
req.getRequestDispatcher("/WEB-INF/jsp/back/list.jsp").forward(req,?resp);
}
@Override
protected?void?doPost(HttpServletRequest?req,?HttpServletResponse?resp)
throws?ServletException,?IOException?{
this.doGet(req,?resp);
}
}
java.sql.SQLException:?Parameter?index?out?of?range?(0?<?1?).
at?com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
at?com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987)
at?com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982)
at?com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927)
at?com.mysql.jdbc.PreparedStatement.checkBounds(PreparedStatement.java:3724)
at?com.mysql.jdbc.PreparedStatement.setInternal(PreparedStatement.java:3713)
at?com.mysql.jdbc.PreparedStatement.setString(PreparedStatement.java:4553)
at?com.imooc.servlet.ListServlet.doGet(ListServlet.java:48)
at?com.imooc.servlet.ListServlet.doPost(ListServlet.java:76)
at?javax.servlet.http.HttpServlet.service(HttpServlet.java:643)
at?javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
at?org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at?org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at?org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at?org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at?org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at?org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at?org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at?org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at?org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at?org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:610)
at?org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:503)
at?java.lang.Thread.run(Thread.java:744)