在这个科技高速发展的时代,迫使我们的脚步一刻都不能停下。

在这个for循环语句当中,我们可以直接使用jsp内置对象中的out对象来给浏览器打印输出,那么这个out对象就是一个内置对象, 在这里,我们使用的时候,没有使用new关键字再去创建对象了。

JSP当中,一共有九大内置对象,看下图:

其中,常用的内置对象有:out,request,response,session,application。这五个比较常用,然后另外Page,pageContext,exception,config这四个内置对象相对来说不太常用。  这合到一起就是我们的JSP九大内置对象。

介绍完有以上内置对象后,来点拓展吧。在JSP内置对象中,有一个缓冲区的概念。

什么叫缓冲区?

缓冲区:Buffer,所谓缓冲区就是内存中的一块区域用来保存临时数据。(IO输出最原始的就是一个字节一个字节输出,就像你吃饭,一粒一粒吃,那得吃到猴年马月呀?这样效率太差!)

JSP内置对象——out对象:

out对象是JspWriter类的实例,是向客户端输出内容时常用的对象。

常用方法如下:

1:void println() 向客户端打印字符串

2:void clear() 清除缓冲区的内容,如果在flush之后调用会抛出异常

3:void clearBuffer() 清除缓冲区的内容,如果在flush之后调用不会抛出异常

4:void flush() 将缓冲区内容输出到客户端

5:int getBufferSize() 返回缓冲区域字节数的大小,如果不设缓冲区则为0

6:int getRemaining() 返回缓冲区还剩余多少字节可用

7:boolean isAutoFlush() 返回缓冲区满时,是自动清空还是抛出异常

8:void close() 关闭输出流

下面上一个实例:

运行结果:

JSP内置对象——request对象: 

说request对象之前,先看一下get和post的区别:

下面通过一个实例来看一下:

这是一个登陆界面,效果如下:

当点击登录按钮的时候,就会跳转到“dologin.jsp”页面,因为这里面指定了表单提交给“dologin.jsp”去处理,然“dologin.jsp”的代码如下(随便写了点东西):

因为我们前面表单提交方式是用的get,所以用户登录的一些信息,用户名密码啥的都会直接在url上直接显示出来:

这里用户名和密码,全部直接都显示了,显然这样不太合适,那我们改一下代码,提交表单方式改用post,试试:

效果同意能登录成功,不过登录成功后的url有变化:

两种表单提交方式呢,服务端都同样可以获取到提交的数据。

前面有说到request对象对应的一些常用方法,下面通过一个综合案例来说明一下:

reg.jsp:

 <%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2018/3/19
Time: 18:01
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>用户注册</title>
</head>
<body>
<h1>用户注册</h1>
By:火龙裸先生
<hr>
<form action="request.jsp" name="regForm" method="post">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="userName"></td>
</tr> <tr>
<td>爱好:</td>
<td>
<input name="favorite" type="checkbox" value="read"> 读书
<input name="favorite" type="checkbox" value="music"> 音乐
<input name="favorite" type="checkbox" value="movie"> 电影
<input name="favorite" type="checkbox" value="sports"> 运动
</td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="确定提交"></td>
</tr>
</table>
</form>
</body>
</html>

request.jsp:

 <%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2018/3/19
Time: 11:16
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Exercise</title>
</head>
<body>
<h1>request内置对象</h1>
By:火龙裸先生
<hr>
用户名:<%=request.getParameter("userName")%><br>
爱好:<%
String[] favorites = request.getParameterValues("favorite"); for(int i = 0; i < favorites.length; i++) {
out.println(favorites[i]+"&nbsp&nbsp");
}
%><br>
</html>

在reg.jsp里通过表单的POST提交方式,把数据参数提交到了request.jsp页面。而在request.jsp页面用“request内置对象”的getParameterValues()方法,获取到参数数据,然后通过for循环将数据打印出来。效果如下:

可以看到,request.jsp页面确实收到了从reg.jsp提交过来的数据参数。但是用户名却出现了中文乱码的情况,那我们可以在request.jsp界面,在接收参数数据前通过

request.setCharacterEncoding("UTF-8");

来设置指定字符编码,这样就可以正常显示中文用户名了。结构代码如下:

getParameter()方法不仅可以用Post方式来获取,同样可以用Get方式获取提交的参数。比方说我现在不用表单,而是用URL地址来传递参数。如我现在在reg.jsp当中添加代码:

因为我们的request.jsp中直接有通过getParameterValues()方法获取参数,但我们的URL地址中没有传递对应的参数,所以需要对request.jsp中的getParameterValues()方法做判空处理,如下:

运行结果如下:

request内置对象中还有一个叫void setAttribute(String, Object)方法和object getAttribute(String name)方法,setAttribute方法有两个参数,一个是设置的键,一个是值;而getAttribute()方法,只需要输入需要取的对应的键名称就行了。看一个实例,如下:

我们在request.jsp中,接收参数前我们先保存一个密码属性,它的键叫“passWord”,它的值也是个字符串叫“123456”。

然后我们在下面来取出这个属性值:

运行效果:

下面,再介绍request内置对象中的getContentType()方法,获取请求体的MIME类型;getProtocol()方法,获取协议类型及版本号;getServerName()方法,获取服务器的主机名;getServerPort()方法,获取服务器端口号;getContentLength()方法,请求文件的长度(单位为字节);getRemoteAddr()方法,请求客户端的IP地址;getRealPath()方法,请求的真实路径;getContextPah()方法,获取请求的上下文的路径;如下:

运行结果:

以上就是我们JSP中out对象和request对象的一些常用方法的介绍了。篇幅有点长,下次分开来写。

JSP内置对象——out对象/request对象的更多相关文章

  1. JSP内置对象-request

    JSP内置对象即无需声明就可以直接使用的对象实例,在实际的开发过程中,比较常用的JSP对象有request,response,session,out和application等,笔者在本文章中将简单介绍 ...

  2. JSP内置九个对象Request请求对象

    jsp内置对象是什么呢? 例如Java语言使用一个对象之前需要实例化(也就是所说的new一个对象),创建对象这个过程有点麻烦,所以在jsp中提供了一些内置对象,用来实现很多jsp应用.在使用内置对象时 ...

  3. JavaWeb——JSP内置对象request,response,重定向与转发 学习总结

    什么是JSP内置对象 九大内置对象 requestJSP内置对象 request对象常用方法 request练习 responseJSP内置对象 response练习 response与request ...

  4. JSP内置对象之request对象【学习笔记】

    request对象是JSP中重要的对象,每个request对象封装着一次用户的请求,并且所有的请求参数都被封装在request对象中,因此request对象是获取请求参数的重要途径. 一.获取请求头与 ...

  5. jsp内置对象浅谈

    jsp内置对象浅谈 | 浏览:1184 | 更新:2013-12-11 16:01 JSP内置对象:我们在使用JSP进行页面编程时可以直接使用而不需自己创建的一些Web容器已为用户创建好的JSP内置对 ...

  6. JavaWeb学习----JSP内置对象详解

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  7. Jsp内置对象及EL表达式的使用

    一.JSP的内置对象(9个JSP内置对象) JSP的内置对象引用名称 对应的类型 request HttpServletRequest response HttpServletResponse ses ...

  8. Java遇见HTML——JSP篇之JSP内置对象(上)

    一.JSP内置对象简介 1.1.内置对象简介 JSP内置对象是WEB容器中创建的一组对象,可以直接使用不需要new,如截图中的out 对象. JSP有九大内置对象: 五大常用对象: out.reque ...

  9. JavaWeb之 JSP:内置对象,EL表达式,JSP标签基础

    JSP的内置对象 什么是JSP的内置对象呢? 在JSP页面进行编程的时候,如果我们要使用一些对象,如:HttpSession,ServletConfig,ServletContext这些对象,如果每次 ...

随机推荐

  1. vue教程3-07 vue-loader

    vue-loader: vue-loader: 其他loader -> css-loader.url-loader.html-loader..... 后台: nodeJs -> requi ...

  2. Python全局解释器锁 -- GIL

    首先强调背景: 1.GIL是什么?GIL的全称是Global Interpreter Lock(全局解释器锁),来源是python设计之初的考虑,为了数据安全所做的决定. 2.每个CPU在同一时间只能 ...

  3. 【原创】SQL Server 性能调优读书笔记

    CPU 100%: 有时可能是硬盘性能不足,或者内存容量不够,让CPU一直忙于I/O. 导致性能问题的一些因素: 用户习惯:在运行尖峰时刻做一些不必做但消耗资源的事情,如之行数据库完整备份,如在服务器 ...

  4. eclipse下搭建shell脚本编辑器--安装开发shell的eclipse插件shelled

    具体请看: 亲测有效: http://www.cnblogs.com/shellshell/p/6122811.html

  5. css定位“十字架“之水平垂直居中

    1.先看要实现的效果 实际的效果图 可以看到我的实现过程是先使用一个父级的div来定位水平垂直居中,然后再父级的div中定位出两个十字架的div. 看实现代码: <!DOCTYPE HTML P ...

  6. Linux系统基础知识整理

    一.说明 本篇文章,我将结合自己的实践以及简介,来对linux系统做一个直观清晰的介绍,使得哪些刚接触Linux的小伙伴可以快速入门,也方便自己以后进行复习查阅. 二.基本知识整理 1.Linux文件 ...

  7. java学习-加载.properties工具类

    javaWeb项目,要加载xxx.properties或其它如.txt, .md后缀的文本文件 文本内容有两种格式 key:value或者key=value 诸如Spring框架,Jfinal框架,都 ...

  8. C/C++求职宝典21个重点笔记(常考笔试面试点)

    这是我之前准备找工作时看<C/C++求职宝典>一书做的笔记,都是一些笔试面试中常考的重点难点问题,但比较基础,适合初学者看. 1. char c = '\72'; 中的\72代表一个字符, ...

  9. epoll 触发模式

    Edge Triggered (ET):边缘触发只有数据到来,才触发,不管缓存区中是否还有数据.Level Triggered (LT):水平触发只要有数据都会触发. LT(level trigger ...

  10. scala-04-set操作

    Scala Set(集合)是没有重复的对象集合,所有的元素都是唯一的. Scala 集合分为可变的和不可变的集合. 默认情况下,Scala 使用的是不可变集合,如果你想使用可变集合,需要引用 scal ...