老师帮我检查一下为什么出不了结果谢谢
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <form action="FreeCoding/servlet1"> <input type="text" name="num" placeholder="请输入100以内的数字"> <input type="submit" value="求累加和"> </form> </body> </html>
package com.imooc.freecoding; 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 servlet1 */ @WebServlet("/servlet1") public class servlet1 extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public servlet1() { 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 num=Integer.parseInt(n); int sum=0; for(int i=1;i<=num;i++){ sum=sum+i; } request.setAttribute("sum", sum); request.getRequestDispatcher("/servlet2").forward(request, response); } }
package com.imooc.freecoding; 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 servlet2 */ @WebServlet("/servlet2") public class servlet2 extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public servlet2() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=utf-8"); String sum=request.getAttribute("sum").toString(); response.getWriter().println("累加和为"+sum); } }
正在回答
同学你好,1、getParameter()获取的是客户端设置的数据,常用来在servlet中获取页面里通过表单中的name属性提交的数据,比如 :request.getParameter() 方法是获取参数的方法, request.getParameter(“teacher”) 获取到这个页面中name为teacher的数据。
2、getAttribute()获取的是服务器设置的数据。getAttribute表示从request范围取得设置的属性,必须要先在servlet中setAttribute设置属性,才能通过getAttribute来获取参数,设置与获取的为Object对象类型 。
3、getAttribute()可以通过setAttribute()设置任意值,但是getParameter()没有set方法哟。
4、getAttribute()和getParameter()的返回值不同,一个是Object,一个是String类型。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
同学你好,1、这里复制运行贴出代码,运行出现404错误,一般出现404问题就是找不到路径。
2、原因是因为在html中项目路径的问题,在form的action路径中FreeCoding/servlet1(在FreeCoding前面加上一个斜杠)-->/FreeCoding/servlet1这样写在解析时表示的是根路径
但是如果是FreeCoding/servlet1这样表示的是一个绝对路径,在解析时,会自动加上项目名,导致路径找不到。
建议同学以后将自己的报错内容截图贴出,便于老师根据错误信息定位问题。
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
- 参与学习 人
- 提交作业 676 份
- 解答问题 9666 个
本阶段将从前端网页搭建入手,到Java Web基础,前后端结合助你完成Java Web小白的蜕变!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星