servlet基础知识2
doget()和 dopost()方法
doget()和 dopost()方法和service()方法的关系
在servlet中默认情况下,无论你是get还是post提交过来都会经过service()方法来处理,然后转向到doGet
service()方法中会通过: request.getMethod(); 来判断出页面是get提交还是post提交;
doget(),dopost() 方法中 HttpServletRequest request, HttpServletResponse response两个参数的作用:
可以获取页面url 和urd
可以获得浏览器信息和电脑信息等;
改变request 参数的值:
request.setAttribute("name",name); 改变 request 的值
request的转发和重定向
转发 :request.getRequestDispatcher("/跳转的页面").forward(request,response); 地址栏不会改变
return;
重定向 : response.sendRedirect("/跳转的页面"); 地址栏会改变
return;
转发和重定向的区别:
区别一:
重定向时浏览器上的网址改变
转发是浏览器上的网址不变
forward 是服务器请求资源,服务器直接访问目标地址的URL,把那个URL 的响应内容读取过来,然
后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中
还是原来的地址。
redirect 就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说浏览器
会用刚才请求的所有参数重新请求,所以session,request 参数都可以获取。
区别二:
重定向实际上产生了两次请求
转发只有一次请求