亮剑电视剧完整版:JSP高手帮忙啊~~!!!

来源:百度文库 编辑:中科新闻网 时间:2024/04/29 13:23:11
<jsp:useBean id="db" class="db.dataConn" scope="page"/>//连接数据库的JAVABEAN

<%
String sql="select * from a.zz";//
ResultSet rs=db.exeQuery(sql);
rs.isBeforeFirst();
while(rs.next())
{

String iniDay=rs.getString("dat");//dat数据库DATE yyyy-MM-dd格式存储的记录
SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd");//
Date date=new Date(System.currentTimeMillis());
String nowDay=sd.format(date);

ParsePosition pos = new ParsePosition(0);
ParsePosition pos1 = new ParsePosition(0);
Date dt1=sd.parse(nowDay,pos);
Date dt2=sd.parse(iniDay,pos1);
long l = (dt1.getTime() - dt2.getTime())/(3600*24*1000);

if(l<=30&&l>0)
{
response.sendRedirect("mainx.jsp");
}
else
{response.sendRedirect("main.jsp");}
}
%>
目的:提取数据库里dat字段的记录和系统当前时间做差,判断结果 掉转到不同页面。
如果去掉 连接数据库的这部分 换成一个固定日期就能做查并且转到相应的页面,可是一加数据库就出有错!
请高手们帮忙啊!!解决了问题马上给分!
db是我调用的JAVABEAN啊~
我没写上来的 地方就是引用的包而已啊
java.lang.IllegalStateException
org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:423)
org.apache.jsp.dat_jsp._jspService(org.apache.jsp.dat_jsp:95)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

这是错误报告,加上了try catch 还是这个错误

数据库查询用
try{

}catch(Excetpion e){

}

以下几个建议希望对你有帮助:
1、取出数据库记录后rs.isBeforeFirst();这一句应该是返回游标是否位于第一条记录之前的布尔值,实际上没有意义,建议删除;
2、你查询的条件可能过于宽松,如果返回多条记录,你是不是希望它能执行多次页面重定向?我觉得逻辑上不够严谨。
3、确认您的数据中相应字段是Date型而不是DateTime型吗,建议在String iniDay=rs.getString("dat");这一句之后输入iniDay观察一下;
4、确认您的代码在使用固定日期能测试通过吗?虽然您说可以但我还是有些怀疑。建议检查response.sendRedirect("mainx.jsp"); 和response.sendRedirect("main.jsp"); 的两个页面路径是否正确,这里可能存在问题。
5、您用try catch没有捕获到异常,可能跟您try的范围太小有关,不如将代码部分全部try进去试试。

前面还应该有代码吧?
如果确定问题出在这里,那应该是要加上try catch语句.
db.exeQuery(sql);(看起来db应该是一个Statement的对象)
和rs.next()都要抛出SQLException异常
故应该
try{
ResultSet rs=db.exeQuery(sql);
rs.isBeforeFirst();
while(rs.next())
{
......
}
......

} catch(SQLException e){....}
另外没有发现rs.close(),如果没有要注意加上,不然除了第一次,以后访问会一直打不开的.....