关于servlet的一些问题 http://topic.csdn.net/u/20081213/22/3b882bd9-31e3-4108-84c2-adcea27e9adf.html?seed=724907633 看这个帖子去吧 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 request.setAttribute() 设置reqeust范围中的属性值 内部跳转: request.getRequestDispatcher("index.jsp").forward(request, resposne); 外部跳转: response.sendRedirect("index.jsp"); 内部跳转是一次请求和一次响应 外部跳转是两次请求和两次响应 request.setAttribute(name) :获得由指定的属性的值,如果不存在指定的属性,返回NULLrequest.getRequestDispatcher() :跳转页面 request.setAttribute(name, value) 设置一个name的value并保存于request范围中 如有这个name存在则覆盖request.getRequestDispatcher("页面").forward(request, response);带上原有的request response实现页面转发response.sendRedirect("页面");没有带request response参数 这个是重定向 原来的request.setAttribute的值都无法获取到了 request.getAttribute():用来在同一个request周期中保存变量使用。比如servlet调用后,推出JSP页面,这是一个request周期,如果在Jsp页面需要servlet中的一些 处理结构,就从request.getAttribute中获取。request.getRequestDispatcher("url").forword(request,response):request.getRequestDispatcher("url").forword(request,response)是请求转发,也就是说,一个Servlet向当前的Servlet发出请求后,经过这个方法后,请求会继续转发到请求的URL,在这个过程中,只向服务器发出一次请求.效率当然也就高了.从在浏览器地址栏中显示的URL来看,response.sendRedirect("url"),地址栏中的URL会发生变化,会显示重定向的这个URL的地址,而request.getRequestDispatcher("url").forword(request,response)这种方法,地址栏中的地址是不变的forward():forward()是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。 ireport 横向分栏的问题 hibernate 问题 如何保障RMI的安全? JAVA论坛中验证码图片无法显示的问题 天气预报程序 web servlet xfire 异常处理求助 tomcat JNDI 问题? 应届毕业生怎么这么难找工作! 为什么Driver中没有Sql Server Jbdc的驱动? java框架入门怎么学习,感觉配置文件什么的无从下手 grizzly 我想要一个ejb3.0+struts的小例子
内部跳转:
request.getRequestDispatcher("index.jsp").forward(request, resposne);
外部跳转:
response.sendRedirect("index.jsp");
内部跳转是一次请求和一次响应
外部跳转是两次请求和两次响应
获得由指定的属性的值,如果不存在指定的属性,返回NULL
request.getRequestDispatcher() :
跳转页面
request.getRequestDispatcher("页面").forward(request, response);带上原有的request response实现页面转发
response.sendRedirect("页面");没有带request response参数 这个是重定向 原来的request.setAttribute的值都无法获取到了
从在浏览器地址栏中显示的URL来看,response.sendRedirect("url"),地址栏中的URL会发生变化,会显示重定向的这个URL的地址,而request.getRequestDispatcher("url").forword(request,response)这种方法,地址栏中的地址是不变的forward():forward()是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。