Request对象

Request对象概述

Request对象获取客户端的请求数据, 接口ServletRequest,子接口HttpServletRequest继承ServletRequest.

HttpServletRequest接口的实现类是Tomcat引擎提供.

Request对象获取请求行

  • String getMethod() 获取提交的方式 (GET,POST)
  • String getRequestURI() 获取请求的参数,请求服务器路径
  • StringBuffer getRequestURL() 获取请求的参数,请求服务器路径
  • String getQueryString()获取请求行 问号后面的参数 (GET)
  • String getContextPath()    获取WEB应用名称

Request对象获取请求头

请求头数据格式键值对, k:v

指导性信息,指导服务器

  • String getHeader(String key)返回对应键的值
         //方法  String getHeader(String key)
        String key = request.getHeader("Referer");   // 获取上一个网站地址
        System.out.println(key);
  • Enumeration getHeaderNames()
/*
 * Enumeration getHeaderNames() 获取所有的请求头的键
 * 返回值Enumeration接口 (向量枚举)
 * 集合:1.0-1.1 Enumeration    集合1.2  迭代器
 * Iterator迭代器接口:  hasNext()   next()
 * Enumeration接口:  hasMoreElement()  nextElement()
 */
package com.itheima.request;

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;
import java.util.Enumeration;

@WebServlet(urlPatterns = "/header")
public class Header extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        /*
         * request获取请求头
         */
         //方法  String getHeader(String key)
        String key = request.getHeader("Referer");   // 获取上一个网站地址
        System.out.println(key);

  
        Enumeration<String> enums  = request.getHeaderNames();
        while (enums.hasMoreElements()){
             key = enums.nextElement();
             String value = request.getHeader(key);
            System.out.println(key+"=="+value);
        }
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
}

Request获取请求参数

  • String getParameter("表单中的name值")获取指定的请求参数
  • String[] getParameterValues("表单中的name值")获取参数中的一键多值
  • Map<String,String[]> getParameterMap()获取提交的所有参数

Request域对象

作用域: Request域对象的作用域比较小,范围是一次请求有效

再一次请求无效

  • 域对象存储数据: setArratibute(String key, Object value)
  • 取出域对象数据: Object getAttribute(String key)
  • 移除域对象数据: removeAttribute(String key)
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //向域对象 ,request 存储数据
    request.setAttribute("heima","java");
    //取出域对象数据
    Object value = request.getAttribute("heima");
    System.out.println("servlet1="+value);
}

转发的实现步骤

  • request对象方法获取转发器 RequestDispatcher getRequestDispatcher("转发地址")返回值就是转发器
  • 使用转发器对象的方法 forward

//获取转发器对象,传递转发的路径
RequestDispatcher dispatcher = request.getRequestDispatcher("/servlet2");
//转发器方法
dispatcher.forward(request,response);

转发和重定向区别

重定向:浏览器两次请求(url地址发生改变);转发:浏览器一次请求(url地址不改变)

三层结构

注册功能三层架构

开发步骤

  • 创建数据库数据表
  • 创建新Module
  • 复制页面
  • 创建包
  1. 添加需要jar
  2. 配置文件
  • 功能,编写服务器程序

导入包:

用户注册(BeanUtils.populate()

BeanUtils.populate():https://blog.csdn.net/zuoyixiao/article/details/40376991

web层用到servlet

用户登录

登录成功:重定向首页

登录失败:还在本页面

 用户登录过程:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值