作业问题

作业问题

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

      //接收数据 ,把接收的数据强制转换成int

    int num=Integer.parseInt(request.getParameter("num"));

    int sum=0;

  //进行for循环,累加和

    for(int i=1;i<=num;i++) {

    sum=sum+i;

    }

  //对数据进行保存到request中,进行二次请求转发 ,sum是属性名,sum是值;num是请求接收的数据

    request.setAttribute("sum", sum);

    request.setAttribute("num", num);

  //进行二次转发方法

    request.getRequestDispatcher("/TestTwo2-6").forward(request, response);

     

 

     

}


}

int num=Integer.parseInt(request.getParameter("num"));不可以这样写吗?报错了。。


问题2:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//对数据进行接收,因为返回的是Obj类型,所以需要进行强制转换

Integer num=(Integer)request.getAttribute("num");

Integer sum=(Integer)request.getAttribute("sum");

//对内容进行响应输出;

response.setContentType("text/html;charset=utf-8");

response.getWriter().println("<h1>"+num+"的累加和:"+sum+"</h1>");

}


}

为什么不可以写String num=(String)request.getAttribute("num");  这个方法返回的不是Obj吗,String是ojb的子类,为什么不可以强制转换了,只能转换Integer?


问题3:

http://img1.sycdn.imooc.com//climg/6049b0a409ef955e03260140.jpg为什么这个映射要写2个/ 呢?

正在回答 回答被采纳积分+1

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

2回答
好帮手慕阿满 2021-03-11 16:32:02

同学你好,存入request中的是int类型数据,名称是num(名称是字符串,用引起了的双引号)。在另一个Servlet中取值时,也应该转换为int,不需要转换为字符串。


​不是直接转换为Integer,这里是转换Integer类型数据,Integer是int的包装类,int类型和Integer类型可以自动转换。

祝学习愉快~

好帮手慕阿满 2021-03-11 14:43:04

同学你好,关于同学的问题,有如下回答:

1、int num=Integer.parseInt(request.getParameter("num"));可以这么写并且不会报错,如:

http://img1.sycdn.imooc.com//climg/6049b94309fabbc508730191.jpg

如果同学的代码报错,请将报错信息贴一下。

2、String num=(String)request.getAttribute("num"); 代码本身并没有什么问题,getAttribute()返回的是Object类型。但是存入request中的num是int类型,这里取出数据后应该转换为int类型,强转为String就会报错。如:

http://img1.sycdn.imooc.com//climg/6049b9c90981330b05830426.jpg

3、可以拥有区分不同的映射,比如说/book/add,/book/update是对图书的添加和修改。/category/add,/category/update是对分类的添加和修改。

祝学习愉快~

  • 提问者 rock221 #1

    问题2,也就是因为保存request里的信息是int,只是名称是字符串,如果我在下一个servlet中想接收,并输出,需先转换成字符串,然后在转换成int对吧?

    下一个问题:

    那为什么直接转成Integer没问题呢?这是个类啊, int是数据类型啊。之前保存的是数据类型啊。 

    2021-03-11 14:53:08
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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