03011_HttpServletRequest
1、HttpServletRequest概述
(1)我们在创建Servlet时会覆盖service()方法,或doGet()/doPost(),这些方法都有两个参数,一个为代表请求的request和代表响应response;
(2)service方法中的request的类型是ServletRequest,而doGet/doPost方法的request的类型是HttpServletRequest,HttpServletRequest是ServletRequest的子接口,功能和方法更加强大。
2、request的运行流程
3、通过抓包工具抓取Http请求
4、通过request获得请求行
(1)获得客户端的请求方式:String getMethod() ;
(2)获得请求的资源:
String getRequestURI()
StringBuffer getRequestURL()
String getContextPath() ---web应用的名称
String getQueryString() ---- get提交url地址后的参数字符串
username=zhangsan&password=123
(3)注意:request获得客户机(客户端)的一些信息;
request.getRemoteAddr() --- 获得访问的客户端IP地址。
5、通过request获得请求头
long getDateHeader(String name)
String getHeader(String name)
Enumeration getHeaderNames()
Enumeration getHeaders(String name)
int getIntHeader(String name) referer头的作用:执行该此访问的的来源,做防盗链
6、通过request获得请求体
(1)请求体中的内容是通过post提交的请求参数,格式是:
(2)以上面参数为例,通过以下方法获得请求参数:
String getParameter(String name)
String[] getParameterValues(String name)
Enumeration getParameterNames()
Map<String,String[]> getParameterMap()
(3)注意:get请求方式的请求参数,上述的方法一样可以获得;
(4)解决post提交方式的乱码:request.setCharacterEncoding("UTF-8"); ;
(5) 解决get提交的方式的乱码:parameter = new String(parameter.getbytes("iso8859-1"),"utf-8"); 。
7、request的其他功能
(1)request是一个域对象;
①request对象也是一个存储数据的区域对象,所以也具有如下方法:
setAttribute(String name, Object o)
getAttribute(String name)
removeAttribute(String name)
②注意:request域的作用范围:一次请求中。
(2)request完成请求转发
①获得请求转发器----path是转发的地址:RequestDispatcher getRequestDispatcher(String path) ;
②通过转发器对象转发:requestDispathcer.forward(ServletRequest request, ServletResponse response) 。
(3)ServletContext域与Request域的生命周期比较?
(4)转发(RequestDispatcher)与重定向(sendRedirect)的区别
①重定向两次请求,转发一次请求;
②重定向地址栏的地址变化,转发地址不变;
③重新定向可以访问外部网站,转发只能访问内部资源;
④转发的性能要优于重定向。
(5)客户端地址与服务器端地址的写法
①客户端地址:是客户端去访问服务器的地址,服务器外部的地址,特点:写上web应用名称。直接输入地址:重定向;
②服务器端地址:服务器内部资源的跳转的地址,特点:不需要写web应用的名称。转发。
8、修改hosts文件
修改C:\Windows\System32\drivers\etc下的hosts文件。
9、request的乱码问题解决
03011_HttpServletRequest的更多相关文章
随机推荐
- android应用开发全程实录-你有多熟悉listview?
今天给大家带来<android应用开发全程实录>中关于listview和adatper中的部分.包括listview的基本使用,listview的优化等. 我们经常会在应用程序中使用列表的 ...
- js黑科技,使用offsetParent检测元素是否隐藏
var isHidden = function (element) { return (element.offsetParent === null);}; eg:
- JavaBean+jsp开发模式 --结合form表单 实例
1.创建form表单 <%@ page language="java" contentType="text/html; charset=UTF-8" pa ...
- Android笔记--Bitmap(二)内存管理
Bitmap(二) 内存管理 1.使用内存缓存保证流畅性 这种使用方式在ListView等这种滚动条的展示方式中使用最为广泛, 使用内存缓存 内存缓存位图可以提供最快的展示.但代价就是占用一定的内存空 ...
- 什么是Office Online Server和SharePoint 2016
Microsoft Office Online Server是Microsoft Office Web Apps(OWA)服务器的下一个版本,最初于2012年发布.,可以下载Office Online ...
- 不写画面的网页程序设计,Web API、Web Service、WCF Service
客户有一个系统,经常要连上我方,查询数据 以前的作法是给对方一个账号,让他可以连上我们的DB来查询. 所以,早期的同仁,真的给他们DB链接字符串 客户的Windows程序.网站就真的靠这么危险的方式, ...
- (四)SpringMVC之使用cookie实现记住密码的功能
注意:因为实现记住密码的功能需要用到json,所以需要加上这条语句: <script type="text/javascript" src="scripts/jqu ...
- Erlang程序设计(第2版)读书笔记(一)
正如<代码的未来>中所说,为了充分利用多核,并发变成将成为未来发展的趋势,对于并发编程的支持,Erlang确实是不二之选,Erlang在国内仍然较为小众,经典书籍相对也要少很多,最终选择了 ...
- Ubuntu 忘记root user密码 关闭图形界面
忘记root密码 删除recovery nomodeset 才删除的后面添加 quiet splash rw init=/bin/bash.然后按F10, 启动 忘记User密码 http://blo ...
- MFC:Unicode和多字节字符集下 CString和char的转化(MFC中)
2011-05-16 00:10 1166人阅读 评论(0) 收藏 举报 mfcdelete Unicode下 CString转TCHAR TCHAR* szMsg = new TCHAR[wcsle ...