你的uname,upassword是从哪里来的?

解决方案 »

  1.   

    %@ page contentType="text/html;charset=gb2312"%>
    <%-- 导入java.sql包,表示要使用数据库操作 --%>
    <%@ page import="java.sql.*"%>
    <html>
    <head>
    <title>登陆</title>
    </head>
    <body>
    <center>
    <h1>登陆范例——用户名及密码固定</h1>
    <hr>
    <br>
    <br>
    <%
    // 接收请求的内容
    String name = request.getParameter("uname") ;
    String password = request.getParameter("upassword") ; // 定义变量,如果用户是合法用户,则将此标记变为true
    boolean flag = false ;
    %>
    <%
    // 定义数据库操作的常量、对象
    // 数据库驱动程序
    final String DBDRIVER = "com.mysql.jdbc.Driver" ;
    // 数据库连接地址
    final String DBURL = "jdbc:mysql://localhost:3306/test" ;
    // 数据库用户名
    final String DBUSER = "root" ;
    // 数据库连接密码
    final String DBPASSWORD = "1234" ;
    // 声明一个数据库连接对象
    Connection conn = null ;
    // 声明一个数据库操作对象
    Statement stmt = null ;
    // 声明一个结果集对象
    ResultSet rs = null ;
    // 声明一个SQL变量,用于保存SQL语句
    String sql = null ;
    %>
    <%
    // 进行数据库操作
    try
    {
    // 加载驱动程序
    Class.forName("com.mysql.jdbc.Driver") ; 
    // 连接数据库
    conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
    // 实例化数据库操作对象

    // 编写SQL语句
     String sql = "select * from student where sname='"+name+"' and spassword='"+password+"'"  ;
                    
                            System.out.println(sql) ;
    // 查询记录
                            stmt = conn.createStatement() ;
    rs = stmt.executeQuery(sql) ;
    // 判断是否有记录
    if(rs.next())

    // 如果有记录,则执行此段代码
    // 用户是合法的,可以登陆
    flag = true ;
    }
    // 依次关闭
    rs.close() ;
    stmt.close() ;
    conn.close() ;
    }
    catch(Exception e)
    {}
    %>
    <%
    // 判断用户名及密码
    if(flag)
    {
    // 合法用户
    %>
    <jsp:forward page="login_success.jsp"/>
    <%
    }
    else
    {
    // 非法用户
    %>
    <jsp:forward page="login_failure.jsp"/>
    <%
    }
    %>
    </center>
    </body>
    </html>这是代码,谢谢了
      

  2.   

    运行上面代码还是错误type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: 52 in the jsp file: /login_conf.jsp
    Duplicate local variable sql
    49:  // 实例化数据库操作对象
    50: 
    51:  // 编写SQL语句
    52:   String sql = "select * from student where sname='"+name+"' and spassword='"+password+"'"  ;
    53:                 
    54:                         System.out.println(sql) ;
    55:  // 查询记录
    Stacktrace:
    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:85)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
    org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:415)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:308)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:308)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    note The full stack trace of the root cause is available in the Apache Tomcat/6.0.10 logs.
      

  3.   

    String sql = "select * from student where sname='"+name+"' and spassword='"+password+"'"  ;???????
      

  4.   

    RE  dengfeiling()     这句代码哪错了啊
      

  5.   

    你重复定义了sql字符串变量,将
    String sql = "select * from student where sname='"+name+"' and spassword='"+password+"'"  ;
    这一句的String去掉即可...
    结帖给分吧...^_^
      

  6.   

    re: dengfeiling() 
    还有错啊:
     我用对的用户密码怎么也登陆不了啊
      

  7.   

    晕哦,多了一个String sql=null嘛String sql = null ; String sql = "select * from student where sname='"+name+"' and spassword='"+password+"'"  ;//把String去了
      

  8.   

    re:AWUSOFT(想开Blog)    还是不行  啊就是登陆时,我用数据库中的正确用户和密码登陆,页面却跳到了用户密码错误的页面啊
      

  9.   

    String name = request.getParameter("uname") ;
    String password = request.getParameter("upassword") ;
    加个trim()或者QueryString()试试看;
      

  10.   

    // 判断是否有记录
    if(rs.next())

    // 如果有记录,则执行此段代码
    // 用户是合法的,可以登陆
    flag = true ;
    }
    你这句 有没有返回你查询的结果出来啊~~ 麻烦检查哈。
      

  11.   

    re: dengfeiling() 
    真不好意思,加什么地方啊?
      

  12.   

    RE:Ice39281624(Ice.Lj.Angel) 
    好象有点,用RETURN(FLAG);吗?
      

  13.   

    RE:Ice39281624(Ice.Lj.Angel)怎么返回FLAG的值呢??谢谢
      

  14.   

    To: Ice39281624(Ice.Lj.Angel)
    不用返回值...
      

  15.   

    String name = request.getParameter("uname").trim() ;
    String password = request.getParameter("upassword").trim() ;以上的语句可运行的前提是前一页面中的uname和upassword都输入的数据,不能为空。建议改成以下内容:String name = request.getParameter("uname").trim()==null ? "" : request.getParameter("uname").trim();
    String password = request.getParameter("upassword").trim()==null ? "" : request.getParameter("uname").trim();
      

  16.   

    不好意思,上面的语句有点问题,应改成以下内容:
    建议改成以下内容:String name = request.getParameter("uname")==null ? "" : request.getParameter("uname").trim();
    String password = request.getParameter("upassword")==null ? "" : request.getParameter("uname").trim();
      

  17.   

    <%@ page contentType="text/html;charset=gb2312" language="java" import="java.sql.*"%>
    <% request.setCharacterEncoding("gb2312");%>
    <%@ page import="com.bwn.db.Condb"%>
    <%@ page import="java.util.Date"%>
    <%
    Date date=new Date();
    Condb con=new Condb();
    String username=request.getParameter("username");
    String Rname=request.getParameter("Rname");
    String password=request.getParameter("password");
    String email=request.getParameter("email");
    String address=request.getParameter("address");
    String photo=request.getParameter("photo");
    String pass=request.getParameter("pass");
    String question=request.getParameter("question");
    //查询数据表中用户是否被注册
    String str="select Username from tb_User where Username='"+username+"'";
    ResultSet rs=con.executeQuery(str);
    if(rs.next()){
    %>
    <script language="javascript">
    alert("此用户已经被占用请重新注册");
    history.back();
    </script>
    <%
    }else{
    String sql="insert into tb_User(Username,Rname,Userpass,Email,Address,Photo,Question,Result,Dattime)values('"+username+"','"+Rname+"','"+password+"','"+email+"','"+address+"','"+photo+"','"+pass+"','"+question+"','"+date.toLocaleString()+"')";
        int temp=con.executeUpdate(sql);
    %>
    <script language="javascript">
    alert("注册成功");
    window.location.href=("../index.jsp");
    </script>
    <%
    }con.close();
    %>
      

  18.   

    <%@ page contentType="text/html;charset=gb2312" language="java" import="java.sql.*"%>
    <%@ page import="com.bwn.db.Condb"%>
    <%@ page import="com.bwn.cart.BuyList"%>
    <%@ page import="java.util.Vector"%>
    <html>
    <head>
    <meta http-equiv="Content-Type"content="text/html;charset=gb2312">
    <title>订单添加页</title>
    </head>
    <link href = "../css/online.css" rel = "stylesheet">
    <body>
    <%@ include file = "../top.jsp"%>
    <table width="800" height="500" border="0" align="center" cellspacing="0" cellpadding="0" background="../images/bg.gif" class="tableBorder">
    <form action="clear.jsp" method="post" name="form1">
    <tr>
    <td height="429" colspan="2" valign="top">
    <table width="800" height="136" align="center" border="0" cellspacing="0" cellpadding="00">
    <tr align="center" valign="middle">
    <td height="37" colspan="8" nowrap class="bgcolor"><font color="#ff0000">
    <%
    if(session.getAttribute("username") == null)
    {
    out.println("您还没有登录");
    }
    else
    {
    out.println(session.getAttribute("username"));
    }
    %></font>
    </td>
    </tr>
    <tr align="center" valign="middle" bgcolor="#fcbe3f">
    <td height="24" colspan="8" nowrap background="..images/top1.gif" class="head">
    <font size="3" face"宋体" class="head">我的购物车></font>
    </td>
    </tr>
    <tr align="center" valign="middle" class="bgcolor">
    <td width="73" height="21">&nbsp;</td>
    <td width="96">序号</td>
    <td width="267" height="21">商品名称</td>
    <td width="95" height="21">价格</td>
    <td width="88" height="21">数量</td>
    <td width="107" height="21">总金额</td>
    </tr>

    </body>
    </html>
      

  19.   

    <%@ page contentType="text/html;charset=gb2312" language="java" import="java.sql.*"%>
    <% request.setCharacterEncoding("gb2312");%>
    <%@ page import="com.bwn.db.Condb"%>
    <%
    Condb con = new Condb();
    String username = request.getParameter("username");
    String email = request.getParameter("email");
    String question = request.getParameter("question");
    String result = request.getParameter("result");
    String sql = "select * from tb_User where Username = '"+username+"' and Email = '"+email+"' and Question = '"+question+"' and Result = '"+result+"'";
    ResultSet rs = con.executeQuery(sql);
    String password = "";
    String pass = "你的密码是:";
    if(rs.next())
    {
    password = rs.getString(4);
    %>
    <script language = "javascript">
    alert("<%=pass+password%>");
    window.location.href = "../index.jsp"
    </script>
    <%
    }else{
    out.println("<script language = 'javascript'>alert('你输入的信息有误');history.back();</script>");

    %>
      

  20.   

    把表单提交给servlet,servlet调用类方法返回就可以了