向与数据库交互的 Servlet 提交表单会导致空白页面

2024-01-19

我有一个从数据库检查用户名和密码的 servlet。

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
    try {
        Class.forName("com.mysql.jdbc.Driver").newInstance();
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mvs_user", "root", "pass");
        if (req.getParameter("usrnm") != null && req.getParameter("pwd") != null) {
            String username = req.getParameter("usrnm");
            String userpass = req.getParameter("pwd");
            String strQuery = "select * from user where username='" + username + "' and  password='" + userpass + "'";
            System.out.println(strQuery);
            Statement st = conn.createStatement();
            ResultSet rs = st.executeQuery(strQuery);
            if (rs.next()) {
                req.getSession(true).setAttribute("username", rs.getString(2));
                res.sendRedirect("adminHome.jsp");
            } else {
                res.sendRedirect("index.jsp");
            }
        } else {
            res.sendRedirect("login.jsp");
        }
        conn.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

问题是浏览器只显示一个空白页面,但我希望它在重定向页面中显示“Hello World”。问题可能出在哪里?请帮我解决问题。


您需要正确处理异常情况。你不仅应该打印它们,而且真的应该throw them.

Replace

    } catch (Exception e) {
        e.printStackTrace(); // Or System.out.println(e);
    }

by

    } catch (Exception e) {
        throw new ServletException("Login failed", e);
    }

通过此更改,您现在将获得一个正常的错误页面,其中包含有关问题原因的完整堆栈跟踪。当然,您也可以在服务器日志中挖掘以查找您刚刚打印而不是重新抛出的堆栈跟踪。

您的问题有多种可能的原因。也许是一个ClassNotFoundException or a SQLException。所有这些都应该是不言自明的并且可以通过谷歌搜索。

也可以看看:

  • 我应该如何在基于 servlet 的应用程序中连接到 JDBC 数据库/数据源? https://stackoverflow.com/questions/2299469/how-should-i-connect-to-jdbc-database-datasource-in-a-servlet-based-applicatio
  • 如何在Eclipse Web项目中安装JDBC驱动程序而不面临java.lang.ClassNotFoundException https://stackoverflow.com/questions/2353141/how-to-install-jdbc-driver-in-eclipse-web-project-without-facing-java-lang-class
  • 臭名昭著的 java.sql.SQLException: 找不到合适的驱动程序 https://stackoverflow.com/questions/1911253/the-infamous-java-sql-sqlexception-no-suitable-driver-found

无关具体问题是,您的 JDBC 代码很容易遭受资源泄漏和 SQL 注入攻击。对此也进行研究并进行相应的修复。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

向与数据库交互的 Servlet 提交表单会导致空白页面 的相关文章

  • 在会话即将到期之前调用方法

    我的网络应用程序有登录的用户 有一个超时 在会话过期之前 我想执行一个方法来清理一些锁 我已经实现了sessionListener但一旦我到达public void sessionDestroyed HttpSessionEvent eve
  • Tomcat 服务器向 servlet 发出 3 个请求

    下面是我的doGet method WebServlet name IndexServlet urlPatterns home initParams WebInitParam name sortBy value Constants POPU
  • HTTP 状态 405 - 此 URL java servlet 不支持 HTTP 方法 POST [重复]

    这个问题在这里已经有答案了 我无法使页面正常工作 我有要发布的表单方法和我的 servlet 实现doPost 然而 它不断地向我表明我并不支持POST方法 我只是想做一个简单的网站并将值插入到我的 MySQL 数据库中 type Stat
  • Java HttpSession 属性存储在哪里?

    对象是否被序列化并发送给用户并在每个连接上返回 存储在 cookie 中 或者它们存储在服务器堆中并且cookie只是一个非常小的标识符 有关此主题的任何信息都会有所帮助 谢谢 你第二次猜到了 该 cookie 包含一个 JSESSIONI
  • HttpSession 内的同步是否可行?

    UPDATE 问题后立即解决 问题 通常 同步是在 JVM 内序列化并行请求 例如 private static final Object LOCK new Object public void doSomething synchroniz
  • 如何在 .JSP 文件中显示列表?

    经过一个小时的扎实研究 我仍然无法做到这一点 这是我的 Servlet 代码 package com fdm ProjectWeb RedirectServlets import java awt List import java io I
  • web.xml 中的多个安全约束不起作用

    我正在升级一个 Web 应用程序 Servlet 3 0 Tomcat 7 它的大部分页面都需要基本身份验证 该应用程序具有一小组监视 servlet 其中任何一个都不应该受到保护 在我的web xml 我目前有以下内容security c
  • 在 Tomcat 中触发内部 ServletRequest

    我正在使用 Quartz 来安排 Web 应用程序的后台任务 其中一些任务只是针对同一 Web 应用程序发出请求 我想避免依赖于任何类型的网络设置 例如 如果从数据中心内发出带有我自己域名的请求 则可能无法正确路由 是否有一个 Java A
  • 该驱动程序未配置为集成身份验证

    尝试使用以下命令将我的 Java Web 应用程序与 MS SQL 服务器连接sqljdbc41 for jdk 1 8 这是数据库连接代码 Connection connection String url jdbc sqlserver l
  • 当请求来自网络服务器而不是网络浏览器时,HTTPSession 的创建如何工作?

    我有一个非常基本的问题 HTTPSession 的创建是如何工作的 我知道你们会因为我把这个问题视为类似的问题而解雇我 存在问题 但是我问这个问题是有原因的 我知道 httpsession 是 Web 浏览器所独有的 当我们第一次执行 Ht
  • 有没有办法测量 Java (Servlet) I/O 流量?

    我尝试做的是使用以下代码实现 servlet 过滤器 int up request getContentLength if HttpServletRequest request getQueryString null up Math max
  • Web应用程序web.xml错误[重复]

    这个问题在这里已经有答案了 我在 Eclipse 中开发的 GWT 应用程序中遇到错误 它位于web xml文件 这是错误 The content of element type web app must match icon displa
  • 如何解决 javax.net.ssl.SSLHandshakeException 错误?

    我通过 VPN 连接来设置库存 API 来获取产品列表 效果很好 一旦我从网络服务获得结果并绑定到用户界面 而且我将 PayPal 与我的应用程序集成在一起 以便在我拨打电话付款时进行快速结帐 但我遇到了此错误 我使用 servlet 进行
  • 使用注解的Servlet初始化参数

    我正在尝试学习 Servlet 注释并遇到了这个片段 WebServlet urlPatterns MyPattern initParams WebInitParam name ccc value 333 这对我来说很有意义 但是 我不明白
  • HttpServletResponse sendRedirect 永久

    这将重定向一个请求暂时的302 HTTP 状态代码 HttpServletResponse response response sendRedirect http somewhere 但是是否可以用 a 来重定向它永恒的301 HTTP 状
  • 何时使用 doGet、doPost 和 service [重复]

    这个问题在这里已经有答案了 我想知道这些 servlet 方法 我对这些方法有所了解 比如 doPost对参数数量没有限制 同时doGet has doGet比doPost doPost安全于doGet 我的问题是 因为这些方法采用相同的参
  • Grails 项目 - Servlet 调用 - ClassNotFoundException:javax.servlet.AsyncContext

    我在用 IntelliJ IDEA 终极版 12 4 grails 2 2 0 BuildConfig groovy 文件中的 grails servlet version 2 5 并实现了简单的 servlet post 请求 使用 RE
  • Java 文件上传速度非常慢

    我构建了一个小型服务 它从 Android 设备接收图像并将其保存到 Amazon S3 存储桶中 代码非常简单 但是速度非常慢 事情是这样的 public synchronized static Response postCommentP
  • Jetty - 找不到 Servlet

    我是 Servlet 新手 想通过使用 Eclipse 的 Jetty 插件来调用一个简单的 Servlet 我可以调用 index html 但是当尝试访问 Servlet 时 我得到 HTTP 错误 404访问 ProjectServl
  • 如何在 JAVA servlet 中处理压缩 (gzip) HTTP 请求(不是响应) - 简单示例?

    我为这个问题苦苦挣扎了很长一段时间 在找到一个简单的解决方案后 想问一个问题和答案 这个问题在堆栈溢出时以不同的方式被多次提出 并且accepted solutions是partially correct and complex或谈论res

随机推荐

  • 如何使用ggpmisc的stat_poly_eq在方程中显示不同的y标签

    我正在尝试使用以下命令在绘图上显示方程stat poly eq的函数ggpmisc 我的问题是如何改变y 在等式中 由y1 and y2 通过参考key争论 我尝试添加eq with lhs映射中的参数 但它无法识别该参数 我试图将向量传递
  • WPF 学习曲线有多糟糕? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 轨道形式的单选按钮标签

    我的问题类似于this one https stackoverflow com questions 658689 how to associate labels with radio buttons但对于 Rails 应用程序 我有一个带有
  • 是否可以运行异步调用来在 ASP.NET 中设置会话?

    我有一个页面访问数据库 运行一个繁重的存储过程并返回结果 结果将根据会话变量 Session isShown 显示 我想使用Ajax调用另一个页面来设置 xmlhttp open POST frmCancelWfSearch aspx tr
  • 如何优化SIMD转置函数(8x4 => 4x8)?

    我需要使用 AVX 优化 8x4 和 4x8 浮点矩阵的转置 我用阿格纳 福格的矢量类库 http www agner org optimize vectorclass 青色任务 构建 BVH 并求和最小 最大 每个循环的最后阶段都会使用转
  • 如何在ListActivity中引用OnListItemClick

    我正在开发一个 Android 应用程序 但我遇到了困难ListActivity 我想要有一个不一样的Activity根据单击列表中的哪个项目开始 我列了一个清单并引用它setListAdapter在java中 但我不知道如何在OnList
  • oracle pl/sql DBMS_LOCK 错误

    在Oracle PL SQL中 我想测试睡眠功能 我正在使用 hr 模式 但它给了我错误 PLS 00201 identifier DBMS LOCK must be declared code begin DBMS LOCK Sleep
  • 如何使用 CherryPy 捕获所有异常?

    I use CherryPy http www cherrypy org 运行一个非常简单的网络服务器 它的目的是处理GET参数 如果它们正确 则用它们做一些事情 import cherrypy class MainServer objec
  • Facebook unity SDK,“FB.Init() 已被调用”

    我正在使用 FB Unity SDK 我面临的一个持续问题是检查 FB Init 是否已被调用 设想 有一个 fb 连接按钮 用户单击它 如果用户决定取消对话框并单击 Fb 再次连接 FB sdk 抛出一条通知 指出 FB Init 已被调
  • 如何在一个页面上使用多个 AdSense 单元?

    如何在一个网站上拥有多个 AdSense 单元 Google 提供的唯一代码是按单位计算的
  • 在 CentOS 64 位上安装 ffmpeg “使用 -fPIC 安装”错误

    尝试在 64 位 CentOS 计算机上编译 ffmpeg 时出现此错误 这是我的 configure 选项 configure enable shared enable gpl enable nonfree enable postproc
  • 在C++中读取和写入int到二进制文件

    我不清楚读取长整数是如何工作的 如果我说 long int a 1 666666 ofstream o ex ios binary o write char a sizeof a 将值存储到文件中并希望按原样读回它们 long int st
  • 如何比较 Objective C 中的两个 NSDate 对象

    我有日期类型的对象 我想比较一下 我写了一个if条件 如下所示 if startDate1 isEqualToDate self getDefaultDate startDate1 self getDefaultDate m selecte
  • 面向现有 .NET 开发人员的 Delphi 资源

    任何人都可以为希望获得 Delphi 语言高级概述的 NET 开发人员推荐一些不错的资源吗 我们即将收购一家小型企业 其主要产品是在德尔福开发的 我希望积累足够的知识以便能够与他们交谈 书籍 网站等都很受欢迎 Thanks Delphi基础
  • AngularJS 中使用 Promise 和 Defer 进行同步和异步调用

    我创建了以下控制器 其中有 2 个服务调用服务 第二个响应先于第一个响应 我想做的就像我需要第一个响应 然后第二个响应 但我只是坚持异步和同步请帮我解决 第二次调用取决于第一次调用 例如 如果第一个调用返回 10 条记录 那么我必须调用第二
  • 为什么我会收到一个 TypeError 提示“不带任何参数(给定 1 个)”? [复制]

    这个问题在这里已经有答案了 我有这段代码来实现粒子群优化算法 class Particle def init self domain ID self ID ID self gbest None self velocity self curr
  • 为 Qt 项目的多个架构生成 APK

    在 3d party APK 文件中 我注意到有不同架构的文件夹 armv7 arm64 x86 mips 因此单个 APK 适用于 Android 支持的多种架构 但是 我似乎没有找到一种方法来使用 Qt 项目来做到这一点 我有一个针对多
  • python脚本录制在线直播视频

    我正在开发一个脚本来下载在线直播视频 我的脚本 print Recording video response urllib2 urlopen streaming online video url filename time strftime
  • 带 JTable 的 JScrollpane 中的背景图像

    我试图在 JScrollPane 中的 JTable 后面添加居中背景图像 背景相对于视口的位置应该居中且静态 我尝试过将 JScrollPane 添加到带有绘制图像的 JPanel 中 并使其他所有内容变为半透明 但结果很丑陋并且存在渲染
  • 向与数据库交互的 Servlet 提交表单会导致空白页面

    我有一个从数据库检查用户名和密码的 servlet Override protected void doPost HttpServletRequest req HttpServletResponse res throws ServletEx