2015-10-23 158 views
1

我想在使用servlet的jsp之间发送变量,但我得到了这个错误,我仍然无法弄清楚为什么。它一直发送HTTP状态500错误。如何解决“HTTP状态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); 
} 
} 

很抱歉的长期职位,这将是巨大的,如果任何人都可以提供一些线索。

谢谢。

+0

它会更容易解决如果您在服务器日志中发布异常错误... – SerMintt

+0

尝试更改'

'为'' – Abubakkar

回答

1

你之所以得到500错误是在这一行:

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

在这里,您尝试会话属性设置为一个未初始化的原始数据类型。

为了解决这个问题应该从请求对象所获得的价值,而不是从会议:

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); 
+1

非常感谢,现在正在运行!我早该注意到了。 – kaloris555

相关问题