老师帮我检查一下为什么出不了结果谢谢

老师帮我检查一下为什么出不了结果谢谢

<!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);
	}

}


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,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类型。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

好帮手慕小班 2019-09-23 18:40:39

同学你好,1、这里复制运行贴出代码,运行出现404错误,一般出现404问题就是找不到路径。

2、原因是因为在html中项目路径的问题,在form的action路径中FreeCoding/servlet1(在FreeCoding前面加上一个斜杠)-->/FreeCoding/servlet1这样写在解析时表示的是根路径

但是如果是FreeCoding/servlet1这样表示的是一个绝对路径,在解析时,会自动加上项目名,导致路径找不到。

建议同学以后将自己的报错内容截图贴出,便于老师根据错误信息定位问题。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • getParameter和getAttribute都是获取属性,它们有什么区别呢
    2019-09-23 18:44:28
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师