相关疑难解决方法(0)

java.lang.IllegalStateException:在提交响应后不能(转发| sendRedirect |创建会话)

抛出此方法

java.lang.IllegalStateException:在提交响应后无法转发

我无法发现问题.有帮助吗?

    int noOfRows = Integer.parseInt(request.getParameter("noOfRows"));
    String chkboxVal = "";
    // String FormatId=null;
    Vector vRow = new Vector();
    Vector vRow1 = new Vector();
    String GroupId = "";
    String GroupDesc = "";
    for (int i = 0; i < noOfRows; i++) {
        if ((request.getParameter("chk_select" + i)) == null) {
            chkboxVal = "notticked";
        } else {
            chkboxVal = request.getParameter("chk_select" + i);
            if (chkboxVal.equals("ticked")) {
                fwdurl = "true";
                Statement st1 = con.createStatement();
                GroupId = request.getParameter("GroupId" + i);
                GroupDesc = request.getParameter("GroupDesc" + i); …
Run Code Online (Sandbox Code Playgroud)

servlets response forward illegalstateexception requestdispatcher

90
推荐指数
3
解决办法
26万
查看次数

如何正确处理JSP/Servlet应用程序中的异常?

你如何正确处理servlet中遇到的错误?现在,我继承了应用程序(只使用纯JSP/Servlet的),有一个叫做超Controller延伸HttpServlet和所有其他servlet的延伸.在Controller该类中是一个try和catch块,如下所示:

try {
    // execute doPost or doGet here
} catch (Exception e) {
    // show a generic error page
}
Run Code Online (Sandbox Code Playgroud)

这是正确的做法吗?它似乎很笨重,似乎并不总是奏效.我只是一名实习生,所以我对此没有太多经验.有什么建议?我正在努力使应用程序变得强大..

java jsp servlets

12
推荐指数
2
解决办法
3万
查看次数

如何解决从response.getWriter()抛出的Sonar违规问题

我有一个非常简单的 servlet,其中包含以下用于构建响应的代码:

@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
    response.setContentType(CONTENT_TYPE);
    final PrintWriter out = response.getWriter();
    // ...
Run Code Online (Sandbox Code Playgroud)

我的 Sonar 提出了一个关于规则的关键问题:“Servlet 方法不应抛出异常”。Sonar 解释说,抛出此类异常是一个坏主意:

未能捕获 servlet 中的异常可能会使系统处于易受攻击的状态,可能导致拒绝服务攻击或敏感信息的暴露,因为当 servlet 引发异常时,servlet 容器通常会将调试信息发送回用户。这些信息对于攻击者来说可能非常有价值。

但如果我理解他们的例子,我就无法弄清楚如何巧妙地管理response.getWriter()上潜在的IOException。

有些人可以向我解释一下这个语句何时会引发异常,以及如何/为什么我们自己管理它很重要?

编辑:尽管我有点沮丧,但我还是接受了第一个答案。我非常清楚让 servlet 容器管理此异常是一种不好的做法,因为默认行为会向世界公开堆栈跟踪和可能的其他敏感信息。就我而言,HTTP 端点用于内部监控。所以就我而言,我想公开(相关)信息,问题是如果我没有 PrintWriter,我该如何做到这一点......

我做了什么:我的程序打印一个错误日志,并返回一个没有内容的 HTTP 错误代码。我不知道这是否真的会发生……但 Sonar 和我很高兴。

servlets sonarqube

6
推荐指数
1
解决办法
2637
查看次数