当前位置: 首页 > 知识库问答 >
问题:

将数据库字符串值与getParameter html值进行比较?

楚博雅
2023-03-14

我有一个本地数据库,一个登录页面和一个servlet。我可以从数据库中获得我想要的值,例如用户名和密码。我还可以在html登录表单中获得用户输入。我对HTML使用Request.GetParameter。我想检查数据库中的用户名是否等于输入的用户名,以及数据库中的密码是否等于输入的密码,否则访问被拒绝。这是我的代码:

 /*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.Servlet;

import static com.sun.corba.se.spi.presentation.rmi.StubAdapter.request;
import java.sql.*;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;
import javax.servlet.RequestDispatcher;
import javax.sql.DataSource;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author Jony
 */
public class LoginServlet extends HttpServlet {

    private static Object request;

    public static void main(String[] args) throws SQLException, ClassNotFoundException {
        Connection connection = null;
        Statement stmt = null;



        try {
            //STEP 2: Register JDBC driver
            Class.forName("com.mysql.jdbc.Driver");
        } catch (Exception e) {
        }
        //STEP 3: Open a connection
        System.out.println("Connecting to database...");
        connection = DriverManager
                .getConnection("jdbc:mysql://localhost:3306/user_pass", "user", "pass");

        //STEP 4: Execute a query
        System.out.println("Creating statement...");
        stmt = connection.createStatement();
        String sql;
        sql = "SELECT username, password FROM information";
        ResultSet rs = stmt.executeQuery(sql);

        while (rs.next()) {
            //retrieve by column name
            String usernamedb = rs.getString("username");
            String passworddb = rs.getString("password");

            if (usernamedb.equals(inputUsername) && passworddb.equals(inputPassword)) {
                System.out.println("Login successful " + usernamedb + " " + passworddb);
            } else {
                System.out.println("Login failed " + usernamedb + " " + passworddb);
            }

        }

    }

    /**
     *
     * @param request
     * @param response
     * @throws ServletException
     * @throws IOException
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

      PrintWriter out = response.getWriter();
      String title = "Welcome";
      String docType =
      "<!doctype html public \"-//w3c//dtd html 4.0 " +
      "transitional//en\">\n";
      out.println(docType + title);

      String inputUsername = request.getParameter("Name");
      String inputPassword = request.getParameter("Pass");
    }
}

共有1个答案

龚跃
2023-03-14

您正在混合基于命令行的java应用程序和基于servlet的应用程序。有关基本的servlet数据库示例,请参阅https://www.tutorialspoint.com/servlets/servlets-database-access.htm。

 类似资料:
  • 想改进这个问题吗?通过编辑这篇文章添加细节并澄清问题。 我想知道是否可以将字符串数组值与字符串进行比较,例如;我有一个字符串数组,上面有5个值我想知道哪个索引值具有a或b。我想到了一个主意,但没有成功。 基本上,如果索引0是a,则应打印“Apple”,如果是b,则应打印“ball”,依此类推。有没有办法将值或字符串数组与字符串进行比较?

  • 我犯了一个错误,在数据库中将日期存储为VARCHAR,这里看起来是2018年12月2日,我使用carbon创建了一个变量来获取14天的当前日期。

  • 如何比较两个列表是否相等验证数据来自Excel工作表。我需要验证两个列表是否相同,并且列表中没有附加元素或缺少元素。我不需要对列表进行排序。打印输出CAGID Excel data=CAGID Web列表

  • 以下代码的输出为假 我不明白。我想它会返回true。在我为SCJP做准备时,了解其背后的原因可能会有所帮助。有人能帮忙吗?

  • 我正在尝试将哈希检查从服务器应用程序移动到PostgreSQL。换句话说,我需要调用一个对PGSQL的查询,它将来自查询的字符串与来自字段的字符串进行比较,并将相等比较的结果返回为bool,但如果没有关于clear SQL的过程,我不知道如何实现这一点。 upd:我有字段密码的表用户(当前为文本,将来为bytea)。我想写点什么 它必须返回true或false作为相等比较的结果。

  • 问题内容: 我有一个简单的疑问。如果有人帮助我,那就太好了。 我有两个字符串: 这两个值相等,但是如何在Java中比较它们呢?我们拥有并用于比较字符串alpha值,类似地,如何比较数字值。 问题答案: 这就对了。您可以使用方法将数字字符串转换为整数,该方法将返回类型。然后比较与相同。