HttpServlet类常用方法

常用方法:

  1. getRequestURI() 获取请求的资源路径
  2. getRequestURL() 获取统一资源定位符(绝对路径)
  3. getRemoteHost() 获取客户端的ip地址
  • 使用localhost访问,得到的客户端ip地址是===>127.0.0.1
  • 使用127.0.0.1访问,得到的客户端ip地址是===>127.0.0.1
  • 使用真实ip访问,得到的客户端ip地址是===>真实的客户端ip
  1. getHeader() 获取请求头
  2. getMethod() 获取请求的方式GET或POST
public class ParameterServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取请求参数
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        String[] hobby = req.getParameterValues("hobby");
        System.out.println("用户名:"+username);
        System.out.println("密码:"+password);
        System.out.println("兴趣:"+ Arrays.toString(hobby));

    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("UTF-8");
        System.out.println("-----------------------post--------------------");
        //获取请求参数
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        String[] hobby = req.getParameterValues("hobby");
        System.out.println("用户名:"+username);
        System.out.println("密码:"+password);
        System.out.println("兴趣:"+ Arrays.toString(hobby));

    }
}

请求的转发

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

public class Servelt1 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取请求的参数
        String username = req.getParameter("username");
        System.out.println("在servlet1中查看参数:"+username);
        //传递至servlet2
        req.setAttribute("key","servlet1的证明");
        //问路:servlet2怎么走
        /**
         * 请求转发必须以斜杠打头,斜杠表示:http://ip:port/工程名/ 映射到IDEA代码的web目录
         */
        RequestDispatcher requestDispatcher = req.getRequestDispatcher("/servlet2");
        requestDispatcher.forward(req,resp);

    }
}
public class Servelt2 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取请求的参数(办事的材料)查看
        String username = req.getParameter("username");
        System.out.println("在servlet2中查看参数:"+username);
        //查看有servlet1的证明
        Object key1 = req.getAttribute("key");
        System.out.println("是否有证明:"+key1);
        //servlet2处理自己的业务
        System.out.println("servlet2处理自己的业务");
    }
}

请求转发的特点:

  1. 浏览器地址栏没有变化
  2. 他们是依次请求
  3. 他们共享Request域中的数据
  4. 可以转发到WEB-INF目录下
  5. 不能访问工程以外的资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值