为什么一提交就显示404啊我的错误在哪里,还有我这个思路对吗
来源:2-6 自由编程
慕勒2048820
2019-01-15 22:03:17
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <form action="http://localhost:8080/myjsp/ServletAdd"> <input style="text" name="num" placeholder="请输入100以内的数字"> <button style="submit">求累加和 </button> </form> </body> </html>
上面是html
package com.imooc.servlet.add;
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 ServletAdd
*/
@WebServlet("/sa")
public class ServletAdd extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public ServletAdd() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String n = request.getParameter("num");
int sum = 0;
for(int i = 0; i <= Integer.parseInt(n); i++ ) {
sum = sum + i;
}
request.setAttribute("sum", "sum");
request.getRequestDispatcher("/sa2").forward(request, response);
}
}package com.imooc.servlet.add;
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 ServletAdd2
*/
@WebServlet("/sa2")
public class ServletAdd2 extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public ServletAdd2() {
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 = (int)request.getAttribute("sum");
response.getWriter().println(sum);
}
}3回答
你好同学,测试了你的代码有如下两点错误,
1、既然使用了@WebServlet("/sa")注解,
那么在html需要更改一下action中的路径,修订之后的代码如下:

2、在测试你的代码时,出现了类型转换异常,原因如下图,你存入request作用域中的是字符串类型的数据。

修改意见,应将sum变量存入request作用域中,修订之后的代码如下,祝学习愉快~

好帮手慕阿满
2019-01-16
同学你好,ServletAdd中的注解是@WebServlet("/sa"),所以在html页面的form表单中,action应该是"http://localhost:8080/myjsp/sa",这里的myjsp应该是同学的项目名。另外在ServletAdd中,应该将计算结果sum存放在request中,所以是request.setAttribute("sum", sum);后一个sum是累加和的计算结果,不应该用引号引起来。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
慕勒2048820
提问者
2019-01-15

相似问题