向与数据库交互的 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 提交表单会导致空白页面 的相关文章

  • HttpSession 内的同步是否可行?

    UPDATE 问题后立即解决 问题 通常 同步是在 JVM 内序列化并行请求 例如 private static final Object LOCK new Object public void doSomething synchroniz
  • 检查应用程序是否在 Android Market 上可用

    给定 Android 应用程序 ID 包名称 如何以编程方式检查该应用程序是否在 Android Market 上可用 例如 com rovio angrybirds 可用 而 com random app ibuilt 不可用 我计划从
  • 如何在 Servlet 中打开弹出窗口,然后重定向页面

    我想在调用 servlet 时打开一个弹出窗口 然后想将 servlet 重定向到某个 jsp page 这就是我所做的 protected void doGet HttpServletRequest request HttpServlet
  • 如何重定向到WEB-INF文件夹中的JSP

    我有一个带有 NAV 的 jsp 其中还包含 UL 和以下元素 如下面的代码所示
  • jsp/servlet 从数组填充下拉框

    大家好 我正在尝试创建一个表单 允许您为某个主题创建一个实验室 它有一个下拉框 您可以在其中选择与该用户相关的主题 但是 当我去加载页面时 我收到此错误g apache jasper JasperException java lang Nu
  • 尝试获取 GCS 中存储的图像的 getServingUrl 时出现 OBJECT_NOT_FOUND

    我写了一个Servlet 我正在其中读取图像blobstore 来自 GCS 的另一张图像 然后在对这两个图像应用合成后 我将合成图像存储回 GCS 中 我的代码到目前为止运行良好 之后 当我尝试获取合成图像的服务 url 时 我得到了一个
  • AJAX(原型/java)在执行期间获取部分状态更新

    这部分模仿了AJAX 原型 php 在脚本执行期间获取部分状态更新 https stackoverflow com questions 800997 ajax prototype php getting partial status upd
  • 访问 PUT 或 POST 请求的原始正文

    我正在 Grails 中实现 RESTful API 并使用自定义身份验证方案 该方案涉及对请求正文进行签名 以类似于 Amazon 的 S3 身份验证方案的方式 因此 为了验证请求 我需要访问原始 POST 或 PUT 正文内容来计算和验
  • 如何将未知列数的 ResultSet 映射到 List 并将其显示在 HTML 表中?

    我使用 Netbeans GlassFish 和 JavaDB 创建了一个数据库应用程序 现在我的控制器 Servlet 代码执行一些动态 SQL 查询并返回结果集 或者我可以更改 toString 现在 如何以表格格式显示返回的结果集 我
  • Java Servlet 中限制 HTTP 请求

    在 java servlet 中 如何根据客户端的 IP 地址限制来自用户的 http 请求 我不想每秒处理来自特定源 IP 地址的超过 X 个请求 其中 X 是可配置的并且具有 0 1 中的实际值 10 范围 从 10 秒内 1 个请求到
  • Servlet 从 Amazon S3 读取数据非常慢

    我需要一个 Servlet 来从 Amazon S3 服务器返回文件 只有服务器有访问凭据 S3 存储桶不公开 我无法改变这一点 有人告诉我使用数据流 但它们太慢了 为了进行测试 我有一个带有缩略图的小项目 当您单击一个项目时 它会打开一个
  • 如何防止我的 servlet 被其他网站调用

    好的 我有一个像这样的简单的 servlet public class SimpleServlet extends HttpServlet public void doPost HttpServletRequest req HttpServ
  • 如何更新 session.setAttribute(name,value) 值,其中名称相同?

    我遇到一种情况 我需要更新名称保持不变的 setAttribute 的值 考虑以下情况为例 假设我有三个JSP abc jsp xyz jsp pqr jsp 现在 首先运行 abc jsp 然后将控制转发到 xyz jsp 然后转发到 p
  • Java 会话变量

    我听说有些人认为在会话中将信息存储在服务器上是一个坏主意 因为它不安全 因此 在多页面业务流程功能中 应用程序将数据写入数据库 然后在需要时检索信息 在会话中存储私人信息是否一定不安全 只要会话本身安全 在会话中存储属性就不存在安全风险劫持
  • Web应用程序web.xml错误[重复]

    这个问题在这里已经有答案了 我在 Eclipse 中开发的 GWT 应用程序中遇到错误 它位于web xml文件 这是错误 The content of element type web app must match icon displa
  • ServletContext 是每个 Web 应用程序一个还是每个 JVM 一个?

    这是我提出的一个疑问 ServletContext 是每个 Web 应用程序一个 每个 JVM 一个 但是如果我在同一个 JVM 上运行多个 Web 应用程序 然后每个 JVM 有 2 个 ServletContext 是否可以 有人可以详
  • 在 servlet 会话和 java.io.NotSerializedException 中保存对象

    SEVERE IOException while loading persisted sessions java io WriteAbortedException writing aborted java io NotSerializabl
  • Java 文件上传速度非常慢

    我构建了一个小型服务 它从 Android 设备接收图像并将其保存到 Amazon S3 存储桶中 代码非常简单 但是速度非常慢 事情是这样的 public synchronized static Response postCommentP
  • jqgrid删除:没有获取值

    我使用 JSP 和 Servlet IDE Eclipse 数据库 Oracle10 开发 Web 应用程序 我在用JQGRID以表格格式显示数据 我还想要添加 编辑 删除的功能JQGRID 到目前为止我已经完成了编辑功能 现在我想要Del
  • jsp ${pageContext.request.contextPath} 未收到请求

    目前我有一个 jsp 项目 其中我的欢迎页面是一个 servlet

随机推荐

  • 如何使用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