首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >结果集jsp -如何使用?

问结果集jsp -如何使用?
EN

Stack Overflow用户
提问于 2011-03-19 07:02:32
回答 2查看 2.2K关注 0票数 0

有没有人能告诉我为什么这个不起作用?我希望能够检查从DB查询返回的用户名/密码是否等于某个值。

会话属性"loginSuccess“总是返回false,即使这些值应该是匹配的。

代码语言:javascript
复制
<%@ page language="java" import="java.sql.*" %>
<%
            String driver = "oracle.jdbc.driver.OracleDriver";
            Class.forName(driver).newInstance();

            Connection con = null;
            ResultSet rst = null;
            Statement stmt = null;

            try {
                String url = "jdbc:oracle:thin:username/password@url:port:SID";
                con = DriverManager.getConnection(url);
                stmt = con.createStatement();
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }
            if (request.getParameter("action") != null) {
                rst = stmt.executeQuery("select username, password"
                        + " from table");
                }
%>


                <%

                boolean loginCheck = false;
                           int count = 1;
                            while (rst.next()) {

if(request.getParameter("action")!=null){
    if("username1"==rst.getString("username")){
        if("password1"==rst.getString("password")){
            loginCheck = true;
            }
        }
    }

                            count++;
                            }

                           if(loginCheck==true){
                               session.setAttribute("loginSuccess", "true");
                               }else{
                               session.setAttribute("loginSuccess", "false");
                               }

                            rst.close();
                            stmt.close();
                            con.close();
                %>

<jsp:forward page="login.jsp"/>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-19 07:09:02

您正在使用==比较字符串。请尝试使用equals。

我建议不要以这种方式将scriptlet代码放在JSP中。您应该使用JSTL标记库编写JSP。

我还建议将数据库代码放在POJO中,这样您就可以离线测试它,独立于servlet/JSP引擎。然后让servlet实例化POJO,与数据库交互,并将结果发送到JSP。

这需要做更多的工作,但从长远来看,设计会更好地扩展和扩展。

票数 1
EN

Stack Overflow用户

发布于 2011-03-19 11:19:50

我认为您在这行代码中有一个基本的语法错误。

“username1”用户名(“==rst.getString”)

应该是这样的

rst.getString("username").equalsIgnoreCase("username1");

密码也是一样的。请检查这是否有帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5358662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档