最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

servlet请求转发的三种方式

来源:动视网 责编:小OO 时间:2025-09-27 21:12:53
文档

servlet请求转发的三种方式

servlet请求转发的三种方式 servlet中的请求转发主要有三种方式:1、  forward:是指转发,将当前request和response对象保存,交给指定的url处理。并没有表示页面的跳转,所以地址栏的地址不会发生改变。2、  redirect:是指重定向,包含两次浏览器请求,浏览器根据url请求一个新的页面,所有的业务处理都转到下一个页面,地址栏的地址会变发生改变。3、  include:意为包含,即包含url中的内容,进一步理解为,将url中的内容包含进当前的servlet当中
推荐度:
导读servlet请求转发的三种方式 servlet中的请求转发主要有三种方式:1、  forward:是指转发,将当前request和response对象保存,交给指定的url处理。并没有表示页面的跳转,所以地址栏的地址不会发生改变。2、  redirect:是指重定向,包含两次浏览器请求,浏览器根据url请求一个新的页面,所有的业务处理都转到下一个页面,地址栏的地址会变发生改变。3、  include:意为包含,即包含url中的内容,进一步理解为,将url中的内容包含进当前的servlet当中
servlet请求转发的三种方式

 

servlet中的请求转发主要有三种方式:

1、  forward:是指转发,将当前request和response对象保存,交给指定的url处理。并没有表示页面的跳转,所以地址栏的地址不会发生改变。

2、  redirect:是指重定向,包含两次浏览器请求,浏览器根据url请求一个新的页面,所有的业务处理都转到下一个页面,地址栏的地址会变发生改变。

3、  include:意为包含,即包含url中的内容,进一步理解为,将url中的内容包含进当前的servlet当中来,并用当前servlet的request和respose来执行url中的内容处理业务.所以不会发生页面的跳转,地址栏地址不会发生改变。

 

测试如下:

首先编写三个html界面:分别是登录界面:login.html;登录成功界面:success.html;登录失败界面:fail.html.

之后,处理登录逻辑的servlet类如下:

 

Java代码  

1.protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  

2.        request.setCharacterEncoding("gbk");  

3.        response.setCharacterEncoding("gbk");  

4.        response.setContentType("text/html;charset=gbk");  

5.        String username = request.getParameter("username");  

6.        String password = request.getParameter("password");  

7.        PrintWriter pw = response.getWriter();  

8.        pw.write("include包含。");  

9.        if(username.equals("123")&&password.equals("123")){  

10.        //include测试  

11.            request.getRequestDispatcher("/success.html").include(request, response);  

12.              

13.        }else{  

14.            //在sendRedict中url前必须加上当前web程序的路径名.....  

15.            response.sendRedirect(request.getContextPath()+"/fail.html");  

16.        }  

17.          

18.          

19.    }  

 

 

运行后如果输入正确的用户名密码,则执行include方法,界面显示:include包含。登录成功!并且地址栏地址未改变,若是输入错误登录名或者密码,界面显示:登录失败!并且地址栏地址改变。其中要注意的是sendRedirect方法中在要跳转的页面url前必须加上当前web程序路径名,这个路径通过request.getContextPath()可以得到。

 

如果吧其中include方法改为forward方法:

 

Java代码  

1.if(username.equals("123")&&password.equals("123")){  

2.            request.getRequestDispatcher("/success.html").forward(request, response);  

3.                          

4.        }else{  

5.            //在sendRedict中url前必须加上当前web程序的路径名.....  

6.            response.sendRedirect(request.getContextPath()+"/fail.html");  

7.        }  

 

登录时输入正确信息,则跳转的页面地址不变,显示:登录成功!不包含url中的内容。

 

总结如下:

redirect与include、forward的区别在于是不是同一个Request,redirect会有两次交互。

include与forward的区别在于输出的内容,include包含本身servlet与跳转页面内容的结果,而forward不包含本身servlet的内容。

文档

servlet请求转发的三种方式

servlet请求转发的三种方式 servlet中的请求转发主要有三种方式:1、  forward:是指转发,将当前request和response对象保存,交给指定的url处理。并没有表示页面的跳转,所以地址栏的地址不会发生改变。2、  redirect:是指重定向,包含两次浏览器请求,浏览器根据url请求一个新的页面,所有的业务处理都转到下一个页面,地址栏的地址会变发生改变。3、  include:意为包含,即包含url中的内容,进一步理解为,将url中的内容包含进当前的servlet当中
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top