HttpServletRequest程序员
取得请求行的信息:浏览器
返回值 : String getMethod() 请求方式服务器
返回值 : String getRequestURI()请求目标框架
返回值 : String getProtocol() 使用协议工具
取得请求头的信息:spa
返回值 : String getHeader(String name)
传一个请求头的key值,返回一个请求头的value值对象
返回值 : String getHeaderNames(String name) 生命周期
取得全部请求头的名字,封装在枚举集合中字符串
获取获得的对象,有连个方法,hasMoreElement() 判断集合中是否存在下一个元素, nextElement() 取得下一个元素(请求头的名字)get
取得请求体的信息(重要)
返回值 : 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工具,在把字符串转成什么类型时使用此转换器)