java - 这不应该起作用吗?显示来自 servlet 的错误消息

标签 java jsp servlets error-handling try-catch

因此,我有一个 servlet 作为 RSS 提要项目的一部分,它接受 URL,然后它继续执行一系列超出此特定问题的其他操作。如果用户(通过表单)提交空白或无效的 URL,我有以下代码:

protected void doGet(HttpServletRequest request, HttpServletResponse response) 
        throws ServletException, IOException {

    URL feedURL = null;

    try {
        feedURL = new URL(request.getParameter("url"));
    } catch (MalformedURLException e) {
        PrintWriter out = response.getWriter();
        out.println("Please go back and submit a valid URL.");
    } 

现在,我得到的是 NullPointerException,而不是 MalformedURLException。我以正确的方式处理这件事吗?我是否必须将错误消息定向到更具体的位置才能到达用户?我最好使用 response.sendError() 或其他方法(例如客户端的 JavaScript)吗?

如果重要的话,请求来自 JSP。

一如既往,StackOverflow 社区,提前感谢您的帮助。

最佳答案

try {
    feedURL = new URL(request.getParameter("url"));
} catch (MalformedURLException e) {
    PrintWriter out = response.getWriter();
    out.println("Please go back and submit a valid URL.");
    return;
} 

您应该在 catch block 中返回。下一行可能会抛出空指针,因为 feedURL 将为空。如果这不是原因,请分享您获得的空指针跟踪。

在我看来,您应该从 catch block 转发到错误页面。

关于java - 这不应该起作用吗?显示来自 servlet 的错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13833218/

相关文章:

java - 如何通过 ServletOutputStream 以 UTF-8 编码发送字符

java - 在 get 方法中使用 html 代码时出现 Web servlet 错误

java - 如何将文件从 Java servlet 上传到 Tomcat/webapps 中 Web 服务器上的某个位置

java - 如何让我的 AlertDialog 在 EditText 获得焦点时立即出现?

java.lang.NoSuchMethodError : javax. servlet.http.HttpServletRequest.getPart(Ljava/lang/String;)Ljavax/servlet/http/Part;

javascript - 使用 JavaScript/JQuery 动态添加 Struts 2 选择下拉列表

java - 为什么这个 ArrayList 将所有内容存储在第一个索引中?如何在 JSP 中从该数组列表动态加载图像 url?

java - 在项目中导入jar

java - No qualifying bean of type ... not defined 我的存储库类之一的错误消息

jsp - 使用struts2动态分配id给tr标签