request和response的学习总结

亲爱的朋友们,虽然我们没有认识,但是为了让更多的朋友少犯错,我在这里提醒大家,当要使用web技术传递字符串时,切记:传过来的字符串有可能为null,这时候,如果你要使用字符串进行比较,要注意了,千万不要把有可能为空的字符串作为主要比较者,例如,字符串str1有可能为空,而字符串str2一定不会为空,这时如果想要比较这两个字符串,应该这样比较:str2.equals(str1);千万不要这样写str1.equals(str2);如果你非要写后者,如果出现了什么问题,会让你很苦恼的,切记切记。

下面是我对请求转发和请求转向的肤浅理解。
request对象有一个请求转发的方法:request.getRequestDispatcher("路径").forward(request,response);
response对象有一个请求重定向 方法:response.sendRedirect("路径");
关于请求转发和请求重定向的区别:
相同点:
 都可以转向另一个指定的页面
不同点:
 1.转向的页面地址栏不同:
  a.请求转发转向后的地址栏仍然是原地址
  b.请求重定向转向后的地址栏是另一个地址
 2.指向路径不同:
  a.请求转发指定的是当前工程下的相对或者绝对路径,路径只能是本服务器地址
   1.相对路径:
    如:request.getRequestDispatcher("servlet路径").forward(request,response);
   2.绝对路径
    如:request.getRequestDispatcher("/servlet路径").forward(request,response);
   注意:推荐大家使用请求转发时使用相对路径,使用绝对路径也可以,但要保证你的xml中的配置的路径要对应到这个地址,不然一个小小的不注意,会让你很苦恼    的。
说说我的一个苦恼吧
我建立了一个工程名称为login的项目,在login中建立了一个包one,在one中建立了两个servlet,分别命名为Servlet1、Servlet2,都是按照默认的方式自动生成。在Servlet1中还用了请求转发到Servlet2,采用绝对路径的方式发送。关键代码如下:
  request.getRequestDispatcher("/Servlet2").forward(request,response);
运行后出现了404错误。提示错误信息是请求路径不存在。我记得在此之前,我也是这么写的代码,不出现什么问题。于是 我检查代码,重新认识体验了转发的路径的问题。原来我之前建立的servlet的路径是直接在工程下面的。而绝对路径,就是在工程下的绝对路径。然而我的这个Servlet2在服务器中的路径是login/servletervlet2。所以采用绝对路径写转向到servlet2时,代码应该是:request.getRequestDispatcher("/servlet/Servlet2").forward(request,response);

  b.请求重定向指定的是绝对路径,可以是本服务器地址,也可以是其他的网页地址
   如:response.sendRedirect("/工程名称/servlet路径");

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值