javaweb中servlet请求的转发

请求的转发

什么是请求的转发?
请求的转发是指,服务器收到请求后,从一个资源跳转到另一个资源的操作叫做请求的转发

看下图解
在这里插入图片描述
我们来写一个程序来了解一下这个东西

  1. 在我们原来的包下面写一个servlet1和一个servlet2,然后配置一下
    在这里插入图片描述
  2. 获取参数信息也就是我们图上面的的获得办事资料在这里插入图片描述
  3. 设置一个键值对,全域都可以获得的那种,当做一个章,即盖章
    在这里插入图片描述
  4. 获取指定路径的项目,即柜台,这里等于指路,制作地图在这里插入图片描述
  5. 前进到我们指定的项目
    在这里插入图片描述注意这里forward()方法中传入的两个参数,就是我们的HttpServletRequest和HttpServletResponse创建的两个对象,这里其实是把这两个对象传到了servlet2中了,等于说,此时servlet1和servlet2中的数据通过这俩对象相通了

这就是我们的servlet1在这里插入图片描述

  1. 在servlet2里面我们这里简单点写在这里插入图片描述
  2. 运行试验一下
    在这我们先进入我们的servlet1,同时设置参数username=zxc123在这里插入图片描述在get请求中我们可以通过地址栏为参数设置值,语法?参数名=参数值
  3. 正常打印,正在我们的意料中,而且可以看到我们地址安栏中并没有变化,虽然咱们还访问到了servlet2,但地址栏中只有sevlet1在这里插入图片描述

请求转发的特点:
1.浏览器地址不会发生变化(即上边的第8步骤)

2.他们是一次请求
即客户端和服务器端还只是请求和响应了一次(由开始的图解可知,服务器和客户端也就一次的交互)

3.他们共享Request域中的数据(见上面的第5步)
我们可以看到在servlet2中也是有HttpServletRequest和HttpServletResponse对象的,我们通过forward向servlet2中传入的俩对象就传到这来了,因为我们的操作基本上都是基于这俩对象的方法,所以同样的对象,那数据肯定一样了,这个就是这里的数据共享

4.可以转发到WEB-INF目录下
因为我们的普通访问方法无法直接访问到WEB-INF下的项目,但我们可以通过请求转发来访问到在这里插入图片描述把from放到WEB-INF中,然后修改我们servlet1中的地址,然后访问servlet1就可访问到我们的from
但是我们这个请求转发只能转发到我们的工程中的某些文件项目,不能转发到工程外面,就比如不能转到百度

猜你喜欢

转载自blog.csdn.net/qq_45821251/article/details/110203886