javaweb之servlet2
来源:互联网 发布:php遍历json对象 编辑:程序博客网 时间:2024/05/16 18:02
一、ServletContext实现请求转发
1、得到请求分发器:RequestDispatcher
ServletContext.getRequestDispatcher(String path):path转发的目标。
path路径必须以"/"开头,"/"就代表当前应用。比如/day05 /
特点:原来用户请求的地址不变,响应由目标响应的。
二、读取配置文件的三种方式
*.properties *.xml
1、使用ServletContext.getRealPath(String filePath)读取资源文件。path路径
必须以"/"开头,"/"就代表当前应用。
作用:getRealPath:得到指定相对路径path资源的实际存放路径(部署绝对路径)
特点:可以读取任何文件,只能用在web开发环境下。
2、ResourceBundle:非Web环境下。专门读取*.properties文件的。只能读取类路径
下的资源文件。
3、类加载器:ClassLoader
非Web环境下。读取任何资源文件。只能读取类路径下的资源文件。
三、Servlet规范中核心接口类图
四、HttpServletResponse概述
1、作用:向客户端输出内容。
2、具体方法:
响应行:响应码;响应码描述;
响应头:
正文:流
五、向客户端页面输出中文数据
1、字节流
data.getBytes("UTF-8")
解决浏览器乱码问题:
a、更改浏览器的编码(不可取)
b、通知浏览器使用UTF-8解码。(响应头:Content-type=text/html;charset=UTF-8)
response.setHeader("Content-Type", "text/html;charset=UTF-8");
或者response.setContentType("text/html;charset=UTF-8");
c、给客户端输出<meta>头
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
2、字符流
a、PrintWriter(JavaWeb中)默认查ISO-8859-1,
可以通过response.setCharacterEncoding(charset)更改默认编码不要忘记通知浏览器以相同的
编码进行解码。
b、HttpServletResponse.setContentType("text/html;charset=UTF-8")
有2个作用:更改字符流的默认编码为UTF-8,同时通知了客户端解码码表
六、HttpServletResponse应用案例:
1、控制动态资源不要缓存
2、控制静态资源的缓存时间
3、文件下载:中文名称的文件下载
4、定时刷新
5、动态输出随机验证码图片
七、HttpServletResponse的一些细节
1、在同一个Servlet中,response的字节和字符输出流互斥。
2、response的所有输出是输出到自己的缓存中的。容器从response对象的缓存中取出正文数据
与响应头和响应码组织成HTTP协议的格式,然后再打给浏览器。
3、response的输出流,容器会自动给你关闭。
八、HttpServletRequest概述及常用方法
1、该对象中包含了所有客户端带过的东东
九、HttpServletRequest获取请求头
十、HttpServletRequest获取请求参数(内省;BeanUtils框架)
getParameter(name)方法
getParameterValues(String name)方法
getParameterNames方法
getParameterMap方法 :key:请求参数名 value:请求参数值数组
getInputStream:以流的形式获取正文数据
十一、请求参数的中文乱码问题:
1、POST:
客户端使用什么编码,就以什么编码传递请求参数。
通知自己的处理程序,客户端提交过来的数据编码:request.setCharacterEncoding("UTF-8");(对get无效)
2、GET:
ISO-8859-1
手工编码:new String(data.getBytes("ISO-8859-1"),"UTF-8");
十二、请求转发和重定向的不同
请求重定向:(客户端行为)与http协议有关
地址栏会变。发出了2次请求。
response.setStatus(302);
response.setHeader("Location", "/day05/servlet/RequestDemo5");
或者
response.sendRedirect("/day05/servlet/RequestDemo5");
请求转发:(服务器行为)
地址栏不会变。发出了1次请求。
源资源(工商局) 目标资源(民政局):共享请求中的数据
重点:
ServletRequest也是一个域对象:Map<String,Object>
十三、各种表单输入域
十四、请求转发和包含
十五、各种URL地址的写法
1、得到请求分发器:RequestDispatcher
ServletContext.getRequestDispatcher(String path):path转发的目标。
path路径必须以"/"开头,"/"就代表当前应用。比如/day05 /
特点:原来用户请求的地址不变,响应由目标响应的。
二、读取配置文件的三种方式
*.properties *.xml
1、使用ServletContext.getRealPath(String filePath)读取资源文件。path路径
必须以"/"开头,"/"就代表当前应用。
作用:getRealPath:得到指定相对路径path资源的实际存放路径(部署绝对路径)
特点:可以读取任何文件,只能用在web开发环境下。
2、ResourceBundle:非Web环境下。专门读取*.properties文件的。只能读取类路径
下的资源文件。
3、类加载器:ClassLoader
非Web环境下。读取任何资源文件。只能读取类路径下的资源文件。
三、Servlet规范中核心接口类图
四、HttpServletResponse概述
1、作用:向客户端输出内容。
2、具体方法:
响应行:响应码;响应码描述;
响应头:
正文:流
五、向客户端页面输出中文数据
1、字节流
data.getBytes("UTF-8")
解决浏览器乱码问题:
a、更改浏览器的编码(不可取)
b、通知浏览器使用UTF-8解码。(响应头:Content-type=text/html;charset=UTF-8)
response.setHeader("Content-Type", "text/html;charset=UTF-8");
或者response.setContentType("text/html;charset=UTF-8");
c、给客户端输出<meta>头
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
2、字符流
a、PrintWriter(JavaWeb中)默认查ISO-8859-1,
可以通过response.setCharacterEncoding(charset)更改默认编码不要忘记通知浏览器以相同的
编码进行解码。
b、HttpServletResponse.setContentType("text/html;charset=UTF-8")
有2个作用:更改字符流的默认编码为UTF-8,同时通知了客户端解码码表
六、HttpServletResponse应用案例:
1、控制动态资源不要缓存
2、控制静态资源的缓存时间
3、文件下载:中文名称的文件下载
4、定时刷新
5、动态输出随机验证码图片
七、HttpServletResponse的一些细节
1、在同一个Servlet中,response的字节和字符输出流互斥。
2、response的所有输出是输出到自己的缓存中的。容器从response对象的缓存中取出正文数据
与响应头和响应码组织成HTTP协议的格式,然后再打给浏览器。
3、response的输出流,容器会自动给你关闭。
八、HttpServletRequest概述及常用方法
1、该对象中包含了所有客户端带过的东东
九、HttpServletRequest获取请求头
十、HttpServletRequest获取请求参数(内省;BeanUtils框架)
getParameter(name)方法
getParameterValues(String name)方法
getParameterNames方法
getParameterMap方法 :key:请求参数名 value:请求参数值数组
getInputStream:以流的形式获取正文数据
十一、请求参数的中文乱码问题:
1、POST:
客户端使用什么编码,就以什么编码传递请求参数。
通知自己的处理程序,客户端提交过来的数据编码:request.setCharacterEncoding("UTF-8");(对get无效)
2、GET:
ISO-8859-1
手工编码:new String(data.getBytes("ISO-8859-1"),"UTF-8");
十二、请求转发和重定向的不同
请求重定向:(客户端行为)与http协议有关
地址栏会变。发出了2次请求。
response.setStatus(302);
response.setHeader("Location", "/day05/servlet/RequestDemo5");
或者
response.sendRedirect("/day05/servlet/RequestDemo5");
请求转发:(服务器行为)
地址栏不会变。发出了1次请求。
源资源(工商局) 目标资源(民政局):共享请求中的数据
重点:
ServletRequest也是一个域对象:Map<String,Object>
十三、各种表单输入域
十四、请求转发和包含
十五、各种URL地址的写法
- javaweb之servlet2
- JavaWeb-Servlet2-Method
- servlet2
- servlet2
- Servlet2
- 将Servlet3.0版本的JavaWeb项目 回退到Servlet2.5版本
- servlet2.3规范之三——Servlet上下文
- servlet2.3规范之二——Servlet接口
- servlet2.3规范之四——请求
- servlet2.3规范之五——响应
- servlet2.3规范之六——过滤
- servlet2.3规范之七——会话
- servlet2.3规范之八——转发请求
- servlet2.3规范之十——应用生命周期事件
- servlet2见解
- Servlet2/3
- servlet2 --6.16
- 旧的java工程(J2EE4转J2EE6 tomcat6 转 tomcat8 Java6转Java8 Servlet2转Servlet3 Java工程转Javaweb工程)
- 差分约束系统之Bellman_Ford与Spfa判断负权回路
- 删除一个指定路径的文件夹
- Latex的安装配置使用
- 初学IOS
- 在当前路径创建一个报告文件
- javaweb之servlet2
- Struts2技术环境搭建
- selenium运行自动化脚本(验证通过)
- javaBean自动生成通过xml配置文件
- xmlhttprequest生成方式
- qmake 使用问题
- 关于JS中乘法的浮点错误解决方法
- 在winXP中新装的IIS5报错
- Windows与Ubuntu双系统重装WIN7后修复Grub2