Java Web 之HttpServletRequest对象初识
通过request对象获得请求行
- 获得客户端请求方式:String getMethod();
- 获得请求的资源:
- String getRequestURL();
- String getQueryString();--用于获取get提交url地址后的参数字符串(username=张三&password=123)
- String getContextPath();****重要 重要 重要--用于获取请求的web应用的名称
// 获得请求方式
String method = request.getMethod();
// 获得请求资源相关的内容
StringBuffer requestURL = request.getRequestURL();
String requestURI = request.getRequestURI();
System.out.println("URI=" + requestURI + "\r\nURL=" + requestURL);
// 获得web应用的名称
String contextPath = request.getContextPath();
System.out.println("web应用名称为:"+contextPath);
//获得地址后的参数字符串
String queryString = request.getQueryString();
System.out.println(queryString);
注意:request可以获得访问客户端的一些信息,例如:
request.getRemoteAddr();--获得访问的客户端的ip地址
通过request获得请求头
String getHeader()
// 获得指定的头
String header = request.getHeader("User-Agent");
System.out.println(header);
// 获得所有头的名称
Enumeration<String> headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()) {
String headerName = headerNames.nextElement();
String headerValue = request.getHeader(headerName);
System.out.println(headerName + ":" + headerValue);
}
referer头信息的作用:意思是执行该次访问的来源,可以做防盗链
通过request获得请求体
response.setContentType("text/html;charset=UTF-8");
request.setCharacterEncoding("UTF-8");
// 获得单个表单值
String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println("username=" + username + ";password=" + password);
// 获得多个表单的值
String[] hobbies = request.getParameterValues("hobby");
for (String hobby : hobbies) {
System.out.println(hobby);
}
// 获得所有请求参数的名称,该方法很少用
Enumeration<String> paramNames = request.getParameterNames();
while (paramNames.hasMoreElements()) {
System.out.println(paramNames.nextElement());
}
// Map<String, String[]> getParameterMap()
// 获得所有的参数,分装在一个map中
Map<String, String[]> parameterMap = request.getParameterMap();
for (Map.Entry<String, String[]> entry : parameterMap.entrySet()) {
String key = entry.getKey();
String[] values = entry.getValue();
// 值是一数组,还要遍历
for (String value : values) {
System.out.println(key + ":" + value);
}
}
request的其他功能
request是一个域对象
request也是一个存储数据的区域对象,所以也具有以下方法:
- setAttribute(String name, Object o)
- getAttribute(String name)
- removeAttribute(String name)
request完成请求转发
- 获得请求转发器--path是转发的地址
RequestDispather getRequestDispather(String path) - 通过转发器对象转发
requestDispather.forward(ServletRequest request, ServletResponse response)
//Servlet1将请求转发给Servlet2
//1获得请求转发器对象,由于是在服务器内部进行的转发,所以下面写的地址不是/WEB15/servlet2(客户端地址),而是/servlet2(服务器端地址)
RequestDispatcher dispatcher = request.getRequestDispatcher("/servlet2");
//2执行转发的方法
dispatcher.forward(request, response);
注意:
- 转发的地址是不会变的,因为是服务器内部进行的,客户端并不知道,所以客户端的地址不会变。
- 每次访问都会有一对新的
request和response对象,这对对象是服务器帮我们创建的。 - request的作用范围:一次请求
Java Web 之HttpServletRequest对象初识的更多相关文章
- java web学习总结(十) -------------------HttpServletRequest对象
一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象 ...
- java web 学习十(HttpServletRequest对象1)
一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象 ...
- Java web 中的HttpServletRequest对象
一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象 ...
- Java Web学习总结(7)——HttpServletRequest对象
一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象 ...
- [原创]java WEB学习笔记14:JSP的9 个隐含对象 及 JSP 的基本语法
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- [原创]java WEB学习笔记08:HttpServletRequest & ServletRequest
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- Java Web学习总结(5)HttpServletRequest
一,HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象 ...
- java web HttpServletRequest
一.HttpServletRequest介绍 HttpServletRequest 对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,通过这个对象提供的方法,可以获得客户端请求的所有信息. ...
- httpServletRequest对象、filter、servlet、servlet容器、catalina、tomcat、以及web容器之间的关系
学习servlet的时候经常感到疑惑 HttpServletRequest是服务器创建的?还是servlet容器创建的? 过滤器是服务器创建的?还是servlet容器创建的? serlet容器和tom ...
随机推荐
- 求超大文件上传方案( Java )
最近遇见一个需要上传百兆大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现. 在某些业务中,大文件上传是一个比较重要的交互场景,如上传入库比较大的Excel表 ...
- FastDFS整合普通Maven项目(四)
1.下载官方的源代码:https://codeload.github.com/happyfish100/fastdfs-client-java/zip/master 2.采用maven命令编译成jar ...
- 批量搞机(二):分布式ELK平台、Elasticsearch介绍、Elasticsearch集群安装、ES 插件的安装与使用
一.分布式ELK平台 ELK的介绍: ELK 是什么? Sina.饿了么.携程.华为.美团.freewheel.畅捷通 .新浪微博.大讲台.魅族.IBM...... 这些公司都在使用 ELK!ELK! ...
- TabController定义顶部tab切换
前面通过DefaultTabController组件实现了AppBar里面的顶部导航切换,但是在项目中有数据请求,上拉加载更多等操作的时候,前面的写法,就不是很方便操作,因此,在flutter里面,还 ...
- oracle比较两个库同表栏目差异
select T.COLUMN_NAME,t.data_type ,c.comments from ALL_TAB_COLUMNS T ,user_col_comments c and c.table ...
- WCF Error Handling
https://docs.microsoft.com/en-us/dotnet/framework/wcf/wcf-error-handling The errors encountered by a ...
- SPOJ AEROLITE
题目链接: http://www.spoj.com/problems/AEROLITE/en/ ---------------------------------------------------- ...
- 【ABAP系列】SAP ABAP实现LOG显示的方法
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP实现LOG显示的 ...
- Codeforces - 1191E - Tokitsukaze and Duel - 博弈论 - 尺取
https://codeforc.es/contest/1191/problem/E 参考自:http://www.mamicode.com/info-detail-2726030.html 和官方题 ...
- bzoj1897. tank 坦克游戏(决策单调性分治)
题目描述 有这样一款新的坦克游戏.在游戏中,你将操纵一辆坦克,在一个N×M的区域中完成一项任务.在此的区域中,将会有许多可攻击的目标,而你每摧毁这样的一个目标,就将获得与目标价值相等的分数.只有获得了 ...