当前位置: 代码迷 >> Java Web开发 >> 【初学者】JSP页面与数据库的疑问
  详细解决方案

【初学者】JSP页面与数据库的疑问

热度:4533   发布时间:2013-02-25 21:12:11.0
【菜鸟求助】JSP页面与数据库的疑问
上代码

HTML code
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@page import="java.sql.Connection"%><%@page import="java.sql.Statement"%><%@page import="java.sql.ResultSet"%><%@page import="java.text.SimpleDateFormat"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>My JSP 'login2.jsp' starting page</title>        <meta http-equiv="pragma" content="no-cache">    <meta http-equiv="cache-control" content="no-cache">    <meta http-equiv="expires" content="0">        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">    <meta http-equiv="description" content="This is my page">    <!--    <link rel="stylesheet" type="text/css" href="styles.css">    -->  </head>  <jsp:useBean id="db" scope="page" class="com.cn.db.OpenDb"></jsp:useBean>  <body>    <%        String uid = request.getParameter("uid");        String pwd = request.getParameter("pwd");        String sql = "select * from userinfo where uid = '" + uid + "'" +                        " and pwd = '" + pwd +"'" ;        Connection conn = db.getConnection();        Statement stmt = conn.createStatement();        ResultSet rs = stmt.executeQuery(sql);        if(rs.next()){            rs.close();                        String lastTime = new SimpleDateFormat("yyyy-MM-dd HH:ss:mm").format(new Date());            sql = "update userinfo set loginTimes = loginTimes + 1 , lastTime = '" + lastTime +"' where uid = '"+ uid +"'";            stmt.execute(sql);            stmt.close();            conn.close();            session.putValue("uid",uid);             %>     <script type="text/javascript">         self.location="all.jsp";     </script>     <%         }else{             rs.close();             stmt.close();             conn.close();         }      %>      <script type="text/javascript">          alert("对不起,您输入有错误,请重新输入");          history.back();      </script>  </body></html>


其中loginTimes有问题 登录一次就加1,可是 没登录一次loginTimes直接加2 琢磨了半天 没琢磨出来。。求指导
有什么好办法调试吗?
我直接在数据库里运行 update userinfo set loginTimes = loginTimes + 1 没有问题,可是登录以后 无论是我在数据库里查询 还是页面显示 都是每登录一次加2.。。。。。

------解决方案--------------------------------------------------------
估计是你这句话执行了2次:
sql = "update userinfo set loginTimes = loginTimes + 1 , lastTime = '" + lastTime +"' where uid = '"+ uid +"'";
你在它后面加个打印,看看输出几次
Systems.out.println("sql:"+sql);
再检查下这个页面
 self.location="all.jsp";

------解决方案--------------------------------------------------------
<script type="text/javascript">
self.location="all.jsp";
</script>
这个的问题
  相关解决方案