(一)Response对象的概述
一、什么是Response我们开发的软件是B/S结构的软件,是可以通过浏览器访问服务器的软件。
从浏览器输入一个地址,访问服务器的这个过程称为请求。服务器接收到请求,需要进行处理,处理以后,还需要将处理结果发回浏览器端显示,这个过程称为响应
(二)Response对象的API
一、Response关于响应行的方法setStatus(int sc)设置响应的状态码
200成功
302重定向
304查找本地缓存
404请求资源不存在
500服务器内部错误
二、Response关于响应头的方法
setDateHeader(String name, long date)
setHeader(String name, String value)
setIntHeader(String name, int value)
set开头的方法用于设置:针对一个key对应一个value的情况举例:原头信息
Content-Type:text/html调用setHeader("Content-Type","text/html");最终结果:Content-Type:text/htmladdDateHeader(String name, long date)addHeader(String name, String value)addIntHeader(String name, int value)add
开头的方法用于追加:针对一个key对应多个value的情况举例:原头信息Content-Type:text/html调用addHeader("Content-Type","text/plain");最终结果:Content-Type:text/html,text/plain
三、Response关于响应体的方法getOutputStream()将二进制字节发送到客户端getWriter()将字符文本发送到客户端用于向浏览器端输出内容
四、Response其他的
APIaddCookie(Cookie cookie)服务器向浏览器回写Cookie的方法sendRedirect(String location)重定向的方法setContentType(String type)设置浏览器打开页面时候采用的字符集setCharacterEncoding(String charset)设置响应字符流的缓冲区的字符集
五、Response对象的API的代码演示
(1)设置状态码
(2)完成重定向1)重定向:是302状态码和Location响应头结合使用的效果2)实际开发中可以使用response.sendRedirect("/web01/ResponseDemo2");替换重定向那两句的写法
(3)完成定时刷新效果
六、
页面定时跳转的扩展
(1)使用JS完成读秒的效果
(2)在HTML中完成页面跳转使用JS完成读秒效果
(三)Response对象响应的中文乱码处理
一、使用字节流响应中文
1、编写代码
2、向页面输出中文是否会有乱码?不一定!
3、原因:其实这个乱码的产生,与中文转成字节数组,以及浏览器的打开
方式(打开的时候采用的默认字符集)有关
4、解决:将中文转成字节数组的时候,和浏览器默认打开的时候采用的字符集一致即可
二、使用字符流响应中文
1、编写代码
2、向页面输出中文是否会有乱码?一定乱码
3、原因:字符流是有缓冲区的,Response获得字符流,老外设计默认的缓冲区编码是ISO-8859-1,这个字符集不支持中文
4、解决:设置Response获得字符流缓冲区的编码,和设置浏览器默认打开时采用的字符集一致即可
(四)Request对象的概述及API的介绍
一、Request
对象的概述什么是Request对象
我们开发的软件都是B/S架构的软件,从浏览器向服务器提交一些数据时,将这些数据内容进行封装,封装成一个请求对象,即Request对象
二、Request对象的API
1、获得客户端的信息
getMethod()获得请求的方式getQueryString()
获得查询字符串的(即请求路径后的提交参数字符串)
getRequestURI()获得请求路径的
URI()获得请求路径的URLgetRemoteAddr()获得客户端的IP地址
2、获得请求头的方法getHeader获得一个Key对应一个Value的请求头getHeaders获得一个Key对应多个Va
下一天的
一)JSP的概述
一、什么是JSPJSP:JavaServer Pages(Java服务器页面),其实就是在HTML中嵌入Java代码
二、为什么学习JSPSUN公司提供了动态网页开发技术:Servlet,Servlet自身有一些缺点,SUN公司发现了这些问题,就推出了一个新的动态网页开发技术JSPServlet的缺点:
Servlet需要进行配置,不方便维护Servlet很难向网页中输出HTML页面内容
(二)JSP的运行原理
一、JSP的简单使用1、创建一个JSP页面
2、运行JSP(JSP需要发布到服务器中才能运行)发布项目到Tomcat中
JSP的运行原理分析JSP文件会翻译成Java文件,将这个Java文件编译生成class文件,再运行class文件
(三)JSP的脚本元素
一、JSP的脚本元素概述什么是
JSP的脚本元素JSP=HTML+Java代码+JSP自身的东西JSP的脚本元素就是在JSP中嵌入Java代码
二、JSP的脚本元素的分类
1、声明标签
(1)语法:<%!变量或方法声明%>写在这个脚本中的代码,会被翻译成Servlet内部的成员变量、或成员方法
(2)用法:<%!//声明变量int i = 3;%>
2、表达式标签
(1)语法:<%=表达式%>写在这个脚本中的代码,会被翻译成方法内部的out.print();当中的内容
(2)用法:<%= i %>
3、程序代码标签(1)语法:<%程序代码%>写在这个脚中的代码,会被翻译成方法内部的局部变量或方法内部的代码片段
(2)用法:<%//程序代码int x = 5;%
一、JSP开发模式动态网页开发模式的发展
(五)开发中的路径问题
一、路径问题描述什么时候会遇到路径问题开发中我们会提供一些页面,在页面中会提供链接或者表单,当点击链接或表单时,需要进行提交,提交到
Servlet中,从页面向Servlet发送请求的地址(路径)应该如何编写
二、路径的分类
1、相对路径(1)相对路径的写法:相对路径不是以/开头的(2)相对路径的使用:1)在根路径下的页面访问
Servlet
demo2.jsp
的访问路径:
http://localhost:8080/web02/demo2.jsp
ServletDemo1
的访问路径:
http://localhost:8080/web02/ServletDemo1
2)在某个目录下的页面访问Servletdemo2.jsp的访问路径:http://localhost:8080/web02/demo2/demo2.jspServletDemo1的访问路径(不变):http://localhost:8080/web02/ServletDemo1
2、绝对路径
(1)绝对路径的写法:通常以/开头使用绝对路径,就不需要关心当前文件和要请求的文件之间的相对位置关系了
(2)注意:绝对路径分成服务器端路径和客户端路径客户端路径需要带工程名服务器端路径不需要带工程名
(六)案例需求介绍
一、案例需求描述
1、提供登录页面,用于用户登录(用户名和密码需要查询数据库)
2、如果登录失败,需要回到登录页面(给出提
示信息)
3、如果登录成功,页面进行跳转,在成功页面上显示登录成功的总人数
二、案例
流
程分析
(七)Request作为域对象存取数据
一、Request作为域对象的API向Request域中保存数据set Attribute(String name,Object o)从Request域中获取数据getAttribute(String name)从Request域中移除数据removeAttribute(String name)
二、Request作为域对象的作用范围Request对象其实就是从客户端浏览器,向服务器送的一次请求信息的封装,那么实质上向Request中所保存的数据,有效期也是一次请求范围一次
请求范围:从客户端浏览器向服务器发送一次请求,服务器针对这次请求对浏览器作出响应,当服务器作出响应之后,请求对象就销毁了,保存在其中的数据就无效了
(八)请求转发和重定向完成页面的跳转
一、请求转发
1、请求转发的写法
(1)通过ServletRequest对象RequestDispatchergetRequestDispatcher(String path)
(2)再根据RequestDispatcher中的方法进行请求转发
forward(ServletRequest request ServletResponse response)
2、请求转发的代码实现
3、请求转发的效果(请求Servlet显示JSP)
二、重定向
1、重定向的写法
(1)通过HttpServletResponse对象中的方法实现:send Redirect(String location)
2、重定向的代码实现
2、请求转发和重定向区别