JSP初学者3
reponse代表服务器对客户端的响应。大部分时候,程序无须使用response来响应客户端请求,因为有更简单的响应对象——out,它代表页面输出流。 但out无法响应生成非字符内容(out是JspWriter的实例,JspWriter是Writer的子类,writer是字符流)
response是HttpServletResponse接口的实例,该接口提供了一个getOutputStream()方法,该方法返回响应输出字节流。
getOutputStream() has already been called for this response异常出现的原因和解决方法: jsp中出现此错误一般都是在jsp中使用了输出流(如输出图片验证码,文件下载等),没有妥善处理好的原因。
解决方案,添加如下代码: out.clear(); out = pageContext.pushBody();
重定向是response的另一个用途,与forword不同,重定向会丢失所有的请求参数和request范围的属性,因为重定向会生成第二次请求,与前一次请求不在 同一request范围内 HttpServletResponse提供了一个sendRedirection(String path)方法,该方法用于重定向到path资源
增加Cookie也是使用response内置对象完成的, void addCookie(Cookie cookie) 增加cookie的步骤:1)创建Cookie实例,Cookie的构造器为Cookie(String name,String value); 2)设置Cookie的生命周期;3)向客户端写Cookie
session对象代表一次用户对话,通常用于跟踪用户的会话信息,是HttpSession的实例,常用方法: setAttribute(String attName,Object attValue):设置session范围内attName属性的值为attValue getAttribute(String attName): 返回session范围内attName属性的值
session机制通常用于保存客户端的状态信息,这些状态信息需要保存到web服务器的硬盘上,所以要求session里的属性值必须是可序列化的,否则将会引起不可序列化的异常。
Servlet和JSP的区别在于: 1)Servlet中没有内置对象,原来JSP中的内置对象都必须有程序显式创建 2)对于静态的HTML标签,Servlet都必须使用页面输出流逐行输出
Servlet是个完整的java类,这个类的service()方法用于生成对客户端的响应
为了让Servlet能响应用户请求,还必须将Servlet配置在Web应用中。 从Servlet3.0 开始配置Servlet有两种方式:1)在Servlet类中使用@WebServlet Anonotation进行配置 ;2)通过在web.xml文件中进行配置
创建Servlet实例有两种时机: 1)客户端第一次请求某个Servlet时,系统创建该Servlet的实例 2)web应用程序启动时立即创建Servlet实例,即load-on-startup Servlet 形式为: @WebServlet(loadOnStartup=1)
配置Servlet时,还可以增加额外的配置参数,可以实现提供更好的可移植性,避免将参数以硬编码方式写进程序代码里 为Servlet配置参数有两种方式: 1)通过@WebServlet的initParams属性来制定 2)通过web.xml文件的<servlet.../>元素中添加<init-param.../>子元素来指定 访问Servlet配置参数通过ServletConfig对象完成,该对象提供方法:String getInitParameter(java.lang.String name) :用于获取初始化参数
JSP初学者3的更多相关文章
- JSP初学者5
JSP中include指令和include动作的区别 include指令是编译阶段的指令,即include所包含的文件的内容是编译的时候插入到JSP文件中, JSP引擎在判断JSP页面未被修改,否则 ...
- JSP初学者2
<jsp:useBean id="name" class="classname" scope="page|request|session|app ...
- JSP初学者4
Filter可认为是Servlet的“加强版”,他主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理,是个典型的 处理链. 使用Filter完整的流程是:Filte ...
- JSP初学者1
native2ascii.exe 是 Java 的一个文件转码工具,是将特殊各异的内容 转为 用指定的编码标准文体形式统一的表现出来,它通常位于 JDK_home\bin 目录下, 安装好 Java ...
- JSP 基础概念归纳 5分钟看完
1. 符合 j2ee 标准的 web-app 的目录结构 WEB-INF classes web.xml lib servlet 开发过程 从 httpservlet 继承, 重写 doget / d ...
- 初学者:JSP登陆界面
学生登陆查询系统 1 程序的主要功能及特点 实现一个登录界面的基本功能,具体要求: 登录界面login.jsp含有表单,用户能够输入用户名和密码,并提交表单给verify.jsp. Verify.js ...
- 一位资深程序员大牛给予Java初学者的学习路线建议
java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈 ...
- JAVA教师:给JAVA初学者的忠告
我带过不少JAVA,C++班的课,来学习的同学很多都是初学者,一部分是急着找工作的,一部分是很感兴趣的.他们都想在短短一两个星期内掌握Java,这是不切实际的.而且这样做很容易让自己心浮气燥,难以静下 ...
- html5 EvnetSource 与 JSP页面结合使用
最近一直在研究前端的技术,特别是html5的技术,本人觉得html5的发展将越来越好,废话少说.看到了EventSource,根据官方的说法是服务器向客户端的推送服务.自己想找一些例子看看,发现都是P ...
随机推荐
- AR资料汇总学习
ARKit 从入门到精通 http://www.chinaar.com/ARKit/5210.html ARKit 框架的学习 http://blog.csdn.net/biangabiang/art ...
- Qt 学习之路 2(48):QSortFilterProxyModel
Qt 学习之路 2(48):QSortFilterProxyModel 豆子 2013年4月11日 Qt 学习之路 2 6条评论 从本章开始,我们将逐步了解有关自定义模型的相关内容.尽管前面我们曾经介 ...
- ubuntu画面延迟问题解决
新配的电脑,安装ubuntu16.04以后,出现画面延迟的问题,尤其浏览网页的时候画面十分卡顿.用free命令查看过可用内存6.多G,经过询问大概是显卡问题,然后在https://ubuntuforu ...
- 动态规划 70.climbing Stairs
1. 记忆化搜索 - 自上向下的解决问题:使用vector来保存每次计算的结果,如果下次再碰到同样的需要计算的式子就不需要重复计算了. 2. 动态规划 - 自下向上的解决问题 解法一:自顶向下 解法二 ...
- C++ GUI Qt4编程(09)-3.3spreadsheet-toolbar
1. C++ GUI Qt4编程第三章,增加工具栏.状态栏和快捷键. 2. mainwindow.h /**/ #ifndef MAINWINDOW_H #define MAINWINDOW_H #i ...
- PIE SDK矢量数据项查看
1. 功能简介 矢量数据由大量要素信息构成,矢量数据项查看可以看到数据的属性表,下面就基于PIE SDK,介绍矢量数据项查看功能的实现. 2. 功能实现说明 2.1. 实现思路及原理说明 第一步 加载 ...
- sql 死锁
先上代码connectA: BEGIN TRAN UPDATE dbo.Student SET Sorce= WHERE id= waitfor delay '00:00:05' SELECT * F ...
- CSAPP阅读笔记-32位64位的区别--来自第三章引言的笔记--P110
仅从寻址上看,32位和64位机器能寻址的内存空间大小不同. 需要知道的是,计算机系统对存储器作了抽象,程序“认为”内存是一个很大的字节数组,然而实际上它是由多个硬件存储器和操作系统组合起来实现的. 程 ...
- scala 列表的子集判断
val list1=List.range(0,5) val list2=List.range(0,2) val list3=List(0,6) list1.contains(2) list1.cont ...
- Oracle RAC集群搭建(五)--oracle部署
01,配置好环境 节点01--node1 ORACLE_BASE=/oracle/app/oracle ORACLE_HOME=$ORACLE_BASE/product//db_1 ORACLE_SI ...