JavaWeb学习笔记——JSP内置对象 上(4)
(一)JSP内置对象:
1.1 简介:
JSP内置对象是Web容器创建的一组对象,不使用new关键字就可以使用的内置对象,比如:下面的out就是内置对象,并没有使用new关键字就可以直接使用。
<%
int[] value={60,70,80};
for(int i:value){
out.println(i);
}
%>
1.2 JSP九大内置对象:
——out ——application ——exception
——response ——Page ——config
——request ——pageContext ——session
1.2 Web程序的请求响应模式:
用户发送请求(request)
服务器给用户响应(response)
如下图:
举个栗子:
以登录中国大学mooc为例:说明了web应用程序是基于请求和响应的这种模式
点击登录按钮,向服务器发送请求,在请求对象中封装了用户名和密码 服务器端接收用户的请求,判断用户名和密码是否正确之后,给客户端发送响应页面1.3 out对象
什么是缓冲区:
缓冲区:Buffer,就是内存的一块区域用来保存临时数据
就好像,我们煮了一锅粥,如果我们放在锅里面吃的话肯定很麻烦,如果我们把锅里的粥盛出来一点在碗里吃,是不是会很方便,吃得很爽呢,当然我们也是可以使用勺子,就会更方便吃,在这里的碗和勺子这些容器就是缓冲区。
Out对象:
out对象是JspWriter类的实例,是向客户端输出内容常用的对象
常用方法如下:
——void println() 向客户端打印字符串
——void clear() 清除缓冲区的内容,如果在flush之后调用会抛出异常
——void clearBuffer() 清除缓冲区的内容,如果在flush之后调用不会抛出异常
——void flush() 将缓冲区内容输出到客户端
——int getBufferSize() 返回缓冲区以字节数大小,如果不设缓冲区则为0
——int getRemaining() 返回缓冲区还剩多少可用空间
——boolean isAutoFlush() 返回缓冲区满时候,是自动清空还是抛出异常
——void close() 关闭输出流
举个栗子:
打印一首唐诗《静夜思》:
没有调用flush()缓冲区的剩余 调用flush()之后缓冲区剩余增多 因为调用了在flush()之后调用了clear()报错,后面的内容无法输出但是如果调用clearbuffer()不会有影响1.4 get与pos区别
<form name="regForm" action="动作" method="提交方式">
</form>
表单的提交方式有两种:get和post
——get:
以明文的方式通过URL提交数据,数据在URL中可以看到,就是浏览器的地址栏中可以看到。提交的数据最多不超过2kb。安全性较低,但是效率比post方式高。适合提交数据量不大,安全性不高的数据,比如:搜索、查询功能。
——post:
将用户提交的信息封装在HTML、HEADER内。适合数据量大,安全性高的用户信息。比如:注册、修改、登录、上传等功能。
举个栗子:
一个简单的登录表单先使用get
login.jsp dologin.jsp 使用get在地址栏上会显示输入的用户名和信息,不安全 使用post,在地址栏上是不会出现输入的用户名和密码的,安全1.5 request对象
客户端的请求 信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。request对象具有请求域,即完成客户端的请求之前,该对象一直有效。
request常用方法:
——String getParameter(String name) 返回name指定参数的参数值(获得单个值)
——String[] getParameterValues(String name) 返回包含参数name的所有值的数组(获得集合)
——void setAttribute(String,Object) 存储此请求中的属性
——object getAttribute(String,Object) 返回指定属性的属性值
——String getContentType() 得到请求体的MIME类型
——String getProtocol() 返回请求用的协议类型及版本号
——String getServerName() 返回请求的服务器主机名
举个栗子:
用户注册
request.jsp reg.jsp今天脖子疼QAQ,未完,待续。。。。