posts - 397,comments - 0,views - 25332

请求转发:一种在服务器内部的资源跳转方式:

  步骤:

    通过request对象获取请求发生器RequestDispather  getRequestDispather(String path)

    使用RequestDispatcher对象来进行转发:forward(ServletRequest request,ServletResponse response)

  特点:

    浏览器地址栏路径不发生变化

    只能转发到当前的服务器内部资源中

  

复制代码
@WebServlet("/requestDemo3")
public class requestDemo3 extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        System.out.println("deee....访问了");
/*
        RequestDispatcher requestDispatcher = req.getRequestDispatcher("/requestDemo4");
        requestDispatcher.forward(req,resp);
*/

        //req.getRequestDispatcher("/requestDemo4").forward(req,resp);
        req.getRequestDispatcher("http://www.itcat.com").forward(req,resp);

    }


    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req,resp);
    }


}
复制代码

 

 

 

 

 

 

 

 

 

 

 

 

 

Request_请求共享数据

域对象:一个作用范围的对象可以用在,可以再范围呢共享数据  

request域:代表一次请求的范围,一般用于请求转发的多个资源中共享数据方法︰

1. void setAttribute(string name,object obj):存储数据

2. object getAttitude(string name):通过键获取

3. void removeAttribute(string name):通过键移除键值对

 

复制代码
package com.itheima.server;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/requestDemo3")
public class requestDemo3 extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        System.out.println("deee....访问了");
/*
        RequestDispatcher requestDispatcher = req.getRequestDispatcher("/requestDemo4");
        requestDispatcher.forward(req,resp);
*/
        RequestDispatcher requestDispatcher = req.getRequestDispatcher("/requestDemo4");

        requestDispatcher.forward(req,resp);

        req.setAttribute("msg","hello");



        //req.getRequestDispatcher("/requestDemo4").forward(req,resp);


    }


    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req,resp);
    }


}
复制代码

 

posted on   淤泥不染  阅读(53)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示