一、JSP内置对象简介

1.1、内置对象简介

JSP内置对象是WEB容器中创建的一组对象,可以直接使用不需要new,如截图中的out 对象。

JSP有九大内置对象:

  • 五大常用对象: out、request、response、session、application
  • 其它四个不常用对象:page、pageContext、exception、config

二、web程序的请求与响应模式

用户发送请求(request),服务器给用户响应(response)

例子:

三、out对象

3.1、什么是缓冲区?

缓冲区:Buffer,所谓缓冲区就是内存的一块区域用来保存临时数据。

比如:IO输出最原始的就是一个字节一个字节输出,就像一粒一粒吃一样,效率太差。缓冲区可以先将多个字节读出来,再一次性的输出,提高效率。

3.2、out对象

out对象是JspWrite类的实例,是向客户端(浏览器)输出内容常用的对象。

常用方法如下:

具体例子:

运行结果:

  

注:

  • out.flush()

运行结果:

此时缓冲区的剩余大小变多了,主要是因为使用了out.flush,缓冲区把前面flush之后的信息给清空了,所以缓冲区就变大了。

out.flush();之后会释放缓冲区大小。

  • out.clear()

如果flush之后添加了clear方法:

运行结果:

并且后台抛出了异常。在执行flush方法之后再执行clear方法,会抛出异常。则clear方法之后的程序就不会继续执行了。

  • out.clearBuffer()

如果flush方法之后再调用clearBuffer(),是不会抛出异常的。

四、get与post提交方式的区别

表单常用的提交方式:get 与 post

比如:

get方式

post方式:

五、request对象

其中:

String getParameter(String name)//获取单个参数值
String[] getParameterValues(String name)//获取多个参数值(获得提交参数具有相同名称的集合),如获取checkbox的值

比如这个注册表单

数据提交到request.jsp页面:

运行结果:

解决中文乱码问题:

request.setCharacterEncoding(“utf-8”);//解决post请求传递中文参数的乱码问题,设置的编码要与发送请求的页面的编码设置的一致。但是无法解决URL链接传递中文参数的乱码问题。

通过路径URL传参(get方式)出现中文乱码问题。

此时解决get方式传递中文参数需要在tomcat的server.xml中,在connector标签添加属性URIEncoding="utf-8"

setAttribute()设置属性时是以键值对的形式

getAttribute()获取属性只需要输入键的值,就可以获得属性的值。

请求体的MIME类型:<%=request.getContentType() %><br>
协议类型及版本号:<%=request.getProtocol() %><br>
服务器主机名:<%=request.getServerName() %><br>
服务器端口号:<%=request.getServerPort() %><br>
请求文件的长度:<%=request.getContentLength() %><br><!--单位是字节-->
请求客户端的IP地址:<%=request.getRemoteAddr() %><br><!--//只能获取静态的IP地址,动态的话获取不到-->
请求的真实路径:<%=request.getRealPath("request.jsp") %><br>
请求的上下文路径:<%=request.getContextPath() %><br><!--是项目的虚拟路径-->

运行结果:

六、response对象

实例:

运行结果:

response对象获得的是PrintWriter对象,输出在内置对象out 前面。(printwriter输出流对象提前于out对象输出)

运行结果:

说明:out对象的输出晚于PrintWrite对象的输出,可以利用out.flush() 将printWrite对象的输出靠后。(利用flush()清空缓存区强制输出。)

response 的sendRedirect("..jsp")//请求重定向(相当于让客户端发一个新的请求,让这个请求定位到指定页面)

七、请求重定向与请求转发的区别

举个生活中的例子:

1请求重定向是客户器端行为而请求转发是服务器端行为
2请求重定向相当于两次请求,地址栏地址会发生变化 
3重定向是response对象的方法而请求转发是request对象的方法 
4请求重定向不会保存原有的request对象而请求转发会保存原有的request对象

Java遇见HTML——JSP篇之JSP内置对象(上)的更多相关文章

  1. 在IDEA中使用JSP中的out内置对象,out.println()——println红色解决方法

    今天在学习JSP的时候,在jsp中使用out内置对象,开发工具用的是IDEA,结果如下图所示 郁闷了半天找度娘,可能关键字输的不准确,乱七八糟的方法一大堆,什么加依赖啊啥的,反正都不管用,最后找到一篇 ...

  2. Java Web学习总结(16)——JSP的九个内置对象

    一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...

  3. 【JSP】JSP基础学习记录(三)—— JSP的9个内置对象

    本节说一下JSP中的9个内置对象.这9个内置对象都是Servlet API接口的实例,只是JSP规范对他们进行了默认初始化(由JSP页面对应Servlet的_jspService()方法来创建这些实例 ...

  4. Jsp的九个内置对象

    一.什么是内置对象?在jsp开发中,会频繁使用到一些对象.例如HttSession,ServletContext,HttpServletRequest.如果我们每次要使用这些对象都去创建这些对象,就会 ...

  5. JavaWeb笔记——Jsp的指令、内置对象和动作标签

    JSP三大指令   一个jsp页面中,可以有0~N个指令的定义! 1. page --> 最复杂:<%@page language="java" info=" ...

  6. jsp页面元素和内置对象

    java server pages其根本是一个简化的servlet设计.实现了在java当中使用html标签.javaEE标准 一.页面元素 1.静态内容 html.js.css相关标签元素. 2.指 ...

  7. JSP 的9个内置对象

    JSP内置对象:我们在使用JSP进行页面编程时可以直接使用而不需自己创建的一些Web容器已为用户创建好的JSP内置对象.如request,session,response,out等. 下面就JSP2. ...

  8. JSP运行过程 JSP脚本 静态动态包含 jsp指令 jsp内置对象jsp四大作用域 jsp动作元素 EL表达式 JSTL 设计模式 JSP开发模式 EL内置对象

    Day38 JSP JSP的运行过程具体如下: (1)客户端发出请求,请求访问JSP文件. (2)JSP容器先将JSP文件转换成一个Java源文件(Java Servlet源程序),在转换过程中,如果 ...

  9. JSP三大指令 六大内置对象

    (1)include指令 作用: 在当前页面用于包含其他页面 语法: <%@include file=”common/header.jsp”%> (2)page指令 作用: 告诉tomca ...

随机推荐

  1. Lucene搜索方法总结

    转自:summerbell http://www.iteye.com/topic/569358 1.多字段搜索 使用 multifieldqueryparser 可以指定多个搜索字段. query q ...

  2. Linux 随笔1

    使用fork()系统调用产生的子进程对父进程中数据的修改不会影响到父进程,因为fork()采用的是写时复制机制,就是在fork产生的子进程没有修改父进程的值时,父子进程共享同一块内存,包括栈区.当子进 ...

  3. ADO.NET对象之 DataTable

    ADO.NET可以在与数据库断开连接的方式下通过DataSet或DataTable对象进行数据处理,当需要更新数据时才重新与数据源进行连接,并更新数据源. DataTable对象表示保存在本机内存中的 ...

  4. hudson安装

    Hudson 只是一个持续集成服务器(持续集成工具),要想搭建一套完整的持续集成管理平台,  SVN.Maven.Sonar 等工具按需求整合则可.   1. 安装 JDK 并配置环境变量(略)  J ...

  5. mac终端中显示tree的命令

    寻觅了良久终于找到了mac下如何在终端显示tree的命令了,作为从linux下转过来的人,还没适应mac的finder,还是喜欢在命令行下查看文件. 命令: find . -print | sed - ...

  6. 使用 Linux 搭建 VPN

    http://blog.csdn.net/catoop/article/details/7537012 VPN服务器的配置与应用 实验场景 通过将Linux配置VPN服务器允许远程计算机能够访问内网. ...

  7. GenderGuesser

    http://www.hackerfactor.com/GenderGuesser.php#Analyze

  8. 7添加一个“X”到HTML:转到XHTML

    XHTML中的X代表extensible,是以XML为基础的另一种说法.XML表示可扩展的标记语言. XML是一种可以用来开发新的标记语言的语言,而HTML只是一门标记语言. HTML转化为XHTML ...

  9. 使用微信JS-SDK 实现 自定义 分享 功能

    微信PC端点击页面,转发给朋友.

  10. PHP基础语法: echo,var_dump, 常用函数:随机数:拆分字符串:explode()、rand()、日期时间:time()、字符串转化为时间戳:strtotime()可变参数的函数:PHP里数组长度表示方法:count($attr[指数组]);字符串长度:strlen($a)

    PHP语言原理:先把代码显示在源代码中,再通过浏览器解析在网页上 a. 1.substr;  //用于输出字符串中,需要的某一部分 <?PHP $a="learn php"; ...