jsp - 如何修复 "HTTP Status 500 - Internal Server Error"

标签 jsp servlets

我尝试使用 servlet 在 jsp 之间发送变量,但出现此错误,但我仍然无法弄清楚原因。它不断发送 HTTP Status 500 错误。

这是jsp:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <title> 
        Fuzzy Topsis Supplier Selection
    </title>

    <!-- Normalize -->
    <link href="assets/css/normalize.css" rel="stylesheet">

    <!-- Bootstrap -->
    <link href="assets/css/bootstrap.min.css" rel="stylesheet">

    <!-- Bootstrap -->
    <link href="assets/css/custom_style_00.css" rel="stylesheet">

    <!-- Font -->
    <link href="assets/css/font.css" rel="stylesheet">
</head>

<!-- BODY STARTS HERE -->
<body>
    <section class="main_wrapper">
        <%
            request.getSession().invalidate();
        %>
        <!-- FORM STARTS HERE -->
        <div class="form_wrapper">
            <form action="./Page_One_Controller">
                <div class="sub_form_wrapper">
                    <span>
                        Input jumlah supplier : 
                    </span>

                    <div class="sub_form_input">
                        <input type="text" class="form-control" name="sNum">
                    </div>
                </div>

                <div class="sub_form_wrapper">
                    <span>
                        Input jumlah pengambil keputusan : 
                    </span>

                    <div class="sub_form_input">
                        <input type="text" class="form-control" name="dNum">
                    </div>
                </div>

                <div class="sub_form_wrapper">
                    <span>
                        Input jumlah kriteria : 
                    </span>

                    <div class="sub_form_input">
                        <input type="text" class="form-control" name="cNum">
                    </div>
                </div>

                <div class="sub_form_wrapper">
                    <div class="sub_form_input">
                        <input class="btn btn-default btn-lg" type="submit" value="Submit" name="submit">
                    </div>
                </div>
            </form>
        </div>
    </section>     
</body>

这是 servlet:

package Controller;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(name = "Page_One_Controller", urlPatterns =           {"/Page_One_Controller"})
public class Page_One_Controller extends HttpServlet {

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");

    int sNum = (Integer)request.getSession().getAttribute("sNum");
    int dNum = (Integer)request.getSession().getAttribute("dNum");
    int cNum = (Integer)request.getSession().getAttribute("cNum");

    request.getSession().setAttribute("sNum", sNum);
    request.getSession().setAttribute("dNum", dNum);
    request.getSession().setAttribute("cNum", cNum);

    request.getRequestDispatcher("page_two.jsp").forward(request, response);
}
}

很抱歉这篇文章很长,如果有人能提供一些线索,那就太好了。

谢谢。

最佳答案

您收到 500 错误的原因在于这一行:

request.getSession().setAttribute("sNum", sNum);

在这里,您尝试将 session 属性设置为未初始化的原始数据类型。

要解决这个问题,应该从请求对象而不是 session 中获取值:

int sNum = Integer.parseInt(request.getParameter("sNum"));

所以你的 servlet 代码应该是这样的:

int sNum = Integer.parseInt(request.getParameter("sNum"));
int dNum = Integer.parseInt(request.getParameter("dNum"));
int cNum = Integer.parseInt(request.getParameter("cNum"));

request.getSession().setAttribute("sNum", sNum);
request.getSession().setAttribute("dNum", dNum);
request.getSession().setAttribute("cNum", cNum);

request.getRequestDispatcher("page_two.jsp").forward(request, response);

关于jsp - 如何修复 "HTTP Status 500 - Internal Server Error",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33298537/

相关文章:

java - 关于重写 SimpleUrlAuthenticationFailureHandler 的说明

javascript - jsp页面js函数中的EL表达式

jakarta-ee - session 监听器 - 不调用 valueBound 或 valueUnbound

java - Java Web 技术中的 AJAX 自动完成文本框(JSP 和 servlet)

java - 为什么这个 JSON 字符串无效? jQuery.parseJSON 函数抛出无效字符

jsp - 无缓存媒体的 Tomcat 配置

Spring Boot Taglibs

java - 使用response.sendError()时防止WebSphere在响应前添加 "Error 40X:"

java - servlet 不可用

java - 从动态生成的 JSP 表中获取所有选中的复选框值到 servlet?