HttpServletRequest对象使用和注意事项

前台到后台的几种请求的方式

  1. 地址栏输入
  2. 超链接
  3. Form表单(可以传送数据)
  4. ajax(可以传送数据,还有可以接受的回调函数)
  5. 请求转发
  6. 重定向

HttpServletRequest对象

HttpSevletRequest对象:主要作用是用来接收客户端发送过来的请求信息,例如:请求的参数,发送的头信息等都属于客户端发来的信息,service()方法中形参接收的是HttpServletRequest接口的实例化对象,表示该对象主要应用在HTTP协议上,该对象是由Tomcat封装好传递过来

常用的一些方法

  1. getRequestURL() 获取客户端发出请求时的完整URL

    1. getRequestRUI() 获取请求行中欧冠的资源名称部分(项目名称开始)
    2. getQueryString() 获取请求行中的参数部分
    3. getMethod() 获取客户端请求方式
    4. getProtocol() 获取HTTP版本号
    5. getContextPath() 获取webapp名字
    6. getHeader(String) 获取单个请求头内容
    7. Enumeration getHeaderNames() 获取所有的请求头名称集合
    8. getParameter(name) 获取指定名称的参数
    9. getParameterValues(String name) 获取指定名称参数的所有值
    10. getParameterNames() 获取一个包含请求消息的所有参数名的Eumeration对象
    11. getParameterMap() 返回一个保存了请求消息中的所有参数名称和值的Map对象

请求乱码问题

1. **乱码原因**
  	1. 由于现在的request属于接受客户端的参数,所有必然有其默认的语言编码,主要是由于在解析过程中默认使用的编码方法为ISO-8859-1(此编码不支持中文),所以解析时一定会出现乱码。
2. **post请求**
    	1. Tomcat8乱码
        	2. Tomcat7乱码
3. **get请求**
    	1. Tomcat7乱码
        	2. Tomcat8不会乱码
4. **解决POST请求乱码**
    	1.  request.setCharacterEncoding("UTF-8"); // 设置服务器的编码方式,该方式只对post请求生效,如果是get请求没有任何效果
        	2.  new String(request.getParameter(name).getBytes("ISO-8859-1"),"UTF-8");
5. **解决GET请求乱码:(如果原来不乱码,通过new String()去处理,会出现另外一种乱码)**
    	1. new String(request.getParameter(name).getBytes("ISO-8859-1"),"UTF-8");
6. **总结**
    	1. Post请求:无论什么版本的服务器,都乱码
        	2. Get请求:Tomcat8及以上版本,不乱码;Tomcat7及以下版本乱码。

请求转发

  1. request.getRequestDispatcher(url).forward(request, response);

    1. 是服务器行为
    2. 地址栏不会发生改变
    3. 只有一次请求,request对象共享

request域对象

  1. 将数据存到request作用域中,前台页面(JSP)从作用域中获取域对象的值

    1. setAttribute(name,value):设置作用域,name是字符串类型,value是object类型
    2. getAttribute(name):获取指定名称的域对象的值,返回的是object类型
    3. removeAttribute(name):移除指定名称的域对象的值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值