老师求解,怎么报500错误了,不知错在哪
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Insert title here</title>
</head>
<body>
<form action="http://localhost:8080/FirstWeb/fs">
<input type="text" placeholder="请输入100以内的数字" name="number" value="number">
<input type="submit" value="求累加和">
</form>
</body>
</html>
package com.imooc.servlet;
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;
/**
* Servlet implementation class FirstServlet
*/
@WebServlet("/fs")
public class FirstServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public FirstServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String number=request.getParameter("number");
int number1 = Integer.parseInt(number);
int sum=0;
for(int i=0;i<=number1;i++){
sum=sum+i;
}
request.setAttribute("sum", sum);
request.getRequestDispatcher("/FirstWeb/ss").forward(request,response);
}
}
package com.imooc.servlet;
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;
/**
* Servlet implementation class SecondServlet
*/
@WebServlet("/ss")
public class SecondServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public SecondServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
int sum=(Integer)request.getAttribute("sum");
response.getWriter().println("累加总和为:"+sum);
}
}
正在回答 回答被采纳积分+1
同学不要灰心哦。首先我们来解释一下这个错误:
由报错信息可知,是FirstServlet这个类中的第31行报错了,同学可以看一下你的这个类中31行处的代码。如果我没猜错,应该是int number1 = Integer.parseInt(number); 这一行代码。

错误原因是数字转换异常,值是null
意思是同学要转换成Interger的这个number 是null。null怎么可以转换成Int类型的数字呢?所以它就报错了。
了解原因后我们就要找为什么这个number 是null。
原因有可能是同学先访问的是http://localhot:8080/FirstWeb/fs
没有从jsp页面上获取number这个参数。所以它是null。

也有可能是同学忘记在jsp页面上的输入框中填写数字了。

同学先访问你的jsp页面,输入数字再点求累加和,这样跳转到 http://localhot:8080/FirstWeb/fs 中是就能获取到number的值了。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
- 参与学习 人
- 提交作业 1088 份
- 解答问题 10204 个
如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!
了解课程

恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星