我的学习之路_第三十二章_HttpServletRequest

HttpServletRequest

取得请求行的信息:

返回值 : String getMethod() 请求方式

返回值 : String getRequestURI()请求目标

返回值 : String getProtocol() 使用协议

取得请求头的信息:

返回值 : String getHeader(String name)
传一个请求头的key值,返回一个请求头的value值

返回值 : String getHeaderNames(String name)

取得所有请求头的名字,封装在枚举集合中

获取得到的对象,有连个方法,hasMoreElement() 判断集合中是否存在下一个元素, nextElement() 取得下一个元素(请求头的名字)

取得请求体的信息(重要)

返回值 : String getParameter(String name)

返回值 : String[] getParameterValues(String name)

取得提交的内容中一个名对个值得参数

返回值 : Enumeration<String> getParameterNames()

返回值 : Map<String,String[]> getParameterMap()

获取所以得请求体中所有的参数,将参数封装到Map集合中,其中key是提交的name,字符串数据是值.

注意前面两个方法是给程序员用的,后面两个方法给框架用(通用代码)(BeanUtils工具类)

设置字符集

setCharacterEncoding("UTF-8") :只能解决POST方式提交的参数中的中文乱码问题

内部转发

getRequestDispatcher("WebPath").forward(req,resp)
注意:目标页面是从服务器内部转跳到过去的,所以没有产生新的请求和响应,所以目录页面使用和当前页面相同的请求和响应对象.所以
才能实现连个页面之间使用Request域传递数据.

域对象:生命周期是请求到达服务器时产生,响应发回给浏览器后就销毁的.

重定向和内部转发的区别:

重定向:先由浏览器发送请求到服务器,服务器发回指令,要求浏览器发送请求到指定的URL.
实际上浏览器发了两个请求,所以浏览器的地址栏上是第二个页面的地址
所以此时按F5刷新页面,则提交到第二个页面的请求
因为到第二个页面是新的请求,所以第一个页面和第二个页面之间想要传递数据,不能用Request域.

内部转发:由浏览器发送请求道服务器,服务器内部把此请求转到第二个页面中,第二个页面运行结果后,把最终的页面结果
响应给浏览器. 所以浏览器中的地址栏是没有变化的,还是第一个页面的地址,但浏览器中显示的页面内容是第二个页面的内容.
因为第一个页面和第二个页面使用的都是访问第一个页面的请求和响应对象,所以在传递数据时,可以使用Request域.

优先使用内部转发,只有第一个页面是表单提交,且第二个页面有需要刷新的需求时,才使用重定向.(需要显示一次性的数据时,
所以必须用Request域来在两个页面之间传递数据,所以必须内部转发)

BeanUtils工具类

popuplate(Object bean , Map)

日期转换: 1,创建一个日期转换器对象 2.设置转换器的格式 3.注册转换器(告诉BeanUtils工具,在把字符串转成什么类型时使用此转换器)

时间: 2024-10-29 11:32:44

我的学习之路_第三十二章_HttpServletRequest的相关文章

我的学习之路_第三十五章_EL&amp;JSTL

回顾:JSP:JavaServerPage=servlet 三种脚本: <% %> <%= %> <%! %> 三种注释: <%-- --%> <% // /**/ %> <!-- --> 三个编译指令: <%@ page %> contentType pageEncoding import errorPage isErrorPage <%@ include %> file <%@ taglib %>

【WPF学习】第三十二章 执行命令

原文:[WPF学习]第三十二章 执行命令 前面章节已经对命令进行了深入分析,分析了基类和接口以及WPF提供的命令库.但尚未例举任何使用这些命令的例子. 如前所述,RoutedUICommand类没有任何硬编码的功能,而是只表达命令,为触发命令,需要有命令源(也可使用代码).为响应命令,需要有命令绑定,命令绑定将执行转发给普遍的事件处理程序. 一.命令源 命令库中的命令始终可用.触发他们的最简单的方法是将它们关联到实现了ICommandSource接口的控件,其中包括继承自ButtonBase类的

第三十二章

道恒无名,朴虽小,而天下弗敢臣.侯王若能守之,万物将自宾.天地相合,以俞甘露,民莫之令而自均焉.始制有名,名亦既有,夫亦将知止,知止所以不殆.譬道之在天下也,犹小谷之与江海也. 第三十二章1 如何让大家都来顺服你? 各位朋友大家好,今天我们接着来聊<道德经>.今天我们不唱歌了,昨天放了一首我唱的歌,这唱歌在我这儿就是一个养生运动.因为唱歌的时候你要调呼吸,这时候是锻炼肺.我之前写过两篇文章,专门讲唱歌的,我们家有一位邻居.一位朋友,这肺间质性病变,很严重的肺病,结果人家天天唱歌,现在恢复的特别

Gradle 1.12用户指南翻译——第三十二章. JDepend 插件

本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://github.com/msdx/gradledoc/tree/1.12. 直接浏览双语版的文档请访问: http://gradledoc.qiniudn.com/1.12/userguide/userguide.html. 另外,Android 手机用户可通过我写的一个

我的学习之路_第三章_匿名内部类

final: final是最终修饰符,可以修饰类.成员方法.变量. final修饰的类无法被继承. final修饰的方法无法被重写. final修饰的变量无法被再次赋值,变为了常量. final修饰的引用数据类型变量,可以修改对象里面的属性内容,不可改变地址值 final修饰的成员变量,不能使用默认值,没有意义,必须在创建对象之前完成赋值. static: 静态修饰符,被static修饰的内容属于类不专属于某个对象,多个对象共享使用这一个成员 使用static修饰的成员可以用类名直接访问,建议这

奋斗吧,程序员——第三十二章 十年磨一剑,霜刃未曾试

"elber先生,问题很严重啊,你来看看,怎么手机显示传输完成,数码相框这里却显示Fail呢?" "......"我无语地看了看相框的内存情况,指了指"memory full"的提示告诉他,"松本先生,这个警告标示相框的内存已经满了,所以发过来的图片存不下来." "elber先生,问题很严重啊,为什么这次会传输失败啊?" "晤,松本先生,高速红外不是遥控,需要对得很准才行,而且不能距离太远哦.&q

SpringBoot | 第三十二章:事件的发布和监听

前言 今天去官网查看spring boot资料时,在特性中看见了系统的事件及监听章节.想想,spring的事件应该是在3.x版本就发布的功能了,并越来越完善,其为bean和bean之间的消息通信提供了支持.比如,我们可以在用户注册成功后,发送一份注册成功的邮件至用户邮箱或者发送短信.使用事件其实最大作用,应该还是为了业务解耦,毕竟用户注册成功后,注册服务的事情就做完了,只需要发布一个用户注册成功的事件,让其他监听了此事件的业务系统去做剩下的事件就好了.对于事件发布者而言,不需要关心谁监听了该事件

第三十二章 elk(3)- broker架构 + 引入logback

实际中最好用的日志框架是logback,我们现在会直接使用logback通过tcp协议向logstash-shipper输入日志数据.在上一节的基础上修改!!! 一.代码 1.pom.xml 1 <!-- logstash-logback --> 2 <dependency> 3 <groupId>net.logstash.logback</groupId> 4 <artifactId>logstash-logback-encoder</a

第三十二章——数据库打包和三大范式

package程序包和程序体 package---包头 package body---包体 dbms_output.put_line(); 上面的输出语句就是一个程序包加存储过程 dbms_output是包的名字, 调用里面的某个方法 包头的语法: create or replace package 包头名 as 变量的说明... 存储过程或者函数的声明(不需要写实现的代码块) end; 声明了一个包头, 就要有一个包体与之对应, 去实现包头中写明的存储过程或者函数 包体的语法: create