JSP内置对象

  1. request对象
  2. response对象
  3. session对象
  4. application对象
  5. out对象

有些对象不用声明就可以在JSP页面的Java程序片和表达式部分使用,这就是JSP的内置对象

1.request对象

request对象是实现了ServletRequest接口类的一个实例

[1].HTTP请求

HTTP通信协议是用户与服务器之间一种提交信息与响应信息的通信协议,其中request封装了用户提交的信息,即请求。

HTTP请求包括请求行,头域和可能的信息体,如:

GET/hello.htm HTTP/1.1
Host: localhost:8080
accept-encoding: gzip, deflate

第一行是请求行,其中GET是请求行规定的请求方法,hello.htm是请求的资源,HTTP/1.1是使用的HTTP协议的版本。

第二行是头(header),是请求资源文件所在的地址。

第三行也是头(header),是告诉服务器端:我的浏览器支持gzip和deflate格式的网页压缩格式哦

[2].获取用户提交的信息

<form action = "abc.jsp" method = "post">
<input type = "text" name = "boy" value = "ok">
<input type = "submit" value = "提交">
</form>

用户向abc.jsp提交表单,而我们在abc.jsp中使用:

request.getParameter(“boy”)就可以获取name为boy的文本输入框的内容

上一章中的 <jsp: param name = “” value = “”> 也可以通过这种方式来获取

为了防止获取的中文信息乱码,可以对request设置编码:

request.setCharacterEncoding("utf-8");

2.response对象

response对象对用户的请求作出动态响应,向用户发送数据

[1]动态响应contentType属性

response.setContentType("application/msword; charset = utf-8");

例如让用户点击保存当前页面为word文档,则在用户点击后设置该属性,此时用户浏览器就会启用word来显示或保存当前页面

[2]HTTP响应

响应由状态行开始,可以包含几个头即可能的信息体,如:

请求成功,则返回"HTTP/1.1 200 OK"

请求失败,则返回"HTTP/1.1 404 Object Not Found"

[3]response重定向

response.sendRedirect(“url”);即跳转页面到url

注:详细过程:redirect 会首先发一个response给浏览器,然后浏览器收到这个response后再发一个requeset给服务器,服务器接收后发新的response给浏览器。这时页面从浏览器获取来的是一个新的request。这时,在原来跳转之前的页面用request.setAttribute存的东西都没了,如果在当前的新页面中用request.getAttribute取,得到的将会是null。这种方式的跳转会改变浏览器的地址栏中的url地址。

addHeader(String head,String value);

setHeader(String head,String value);

用来动态添加新的响应头和头的值,如果添加的头已经存在,则覆盖

3.session对象

session是实现了HttpSession接口类的一个实例

[2]

当一个用户首次访问Web服务目录中的一个JSP页面时,Tomcat服务器产生一个session对象,这个对象调用相应的方法可以存储用户在访问该Web服务目录中各页面期间提交的各种信息,如姓名和性别等等。

这个session对象被分配了一个String类型的id号,Tomcat服务器同时将这个id号发送到用户端,存放在用户的Cookie中。

不同用户之间的session对象互不相同

[3]session对象与URL重写

如果用户端不支持或禁用了Cookie,那么,JSP页面可以通过URL重写来实现session对象的唯一性,就是当用户从一个页面重新连接到一个页面时,通过向这个新的URL添加参数,把session对象的id传递过去,例如如果想跳转到second.jsp页面,代码实现如下:

String str = response.encodeRedirectURL("second.jsp");  //重写
response.sendRedirect(str);

4.application对象

不同Web服务目录下的application不同

5.out对象

out.println和out.print的区别是println会向缓存区写入一个换行,但是浏览器不识别该换行

JSP学习笔记(二)的更多相关文章

  1. JSP学习笔记(二):Tomcat服务器的安装及配置

    一.Tomcat的下载及安装. 前往Tomcat官网下载安装包或者免安装压缩包.链接http://tomcat.apache.org/ 这里,我选择的是Tomcat8.0,而不是最新的Tomcat9. ...

  2. Servlet和JSP读书笔记(二)

    一. GenericServlet 1. 前面写的 Servlet和JSP学习笔记(一) 中的实例都是通过实现Servlet接口编写的,这样存在的问题就是:你必须实现Servlet中的所有方法,而不管 ...

  3. JSP学习笔记

    JSP学习笔记 Jsp网页主要分为Elements与Template Data两部分. Template Data:JSP Container不处理的部分,例如HTML内容 Elements:必须经由 ...

  4. WPF的Binding学习笔记(二)

    原文: http://www.cnblogs.com/pasoraku/archive/2012/10/25/2738428.htmlWPF的Binding学习笔记(二) 上次学了点点Binding的 ...

  5. AJax 学习笔记二(onreadystatechange的作用)

    AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了on ...

  6. [Firefly引擎][学习笔记二][已完结]卡牌游戏开发模型的设计

    源地址:http://bbs.9miao.com/thread-44603-1-1.html 在此补充一下Socket的验证机制:socket登陆验证.会采用session会话超时的机制做心跳接口验证 ...

  7. JMX学习笔记(二)-Notification

    Notification通知,也可理解为消息,有通知,必然有发送通知的广播,JMX这里采用了一种订阅的方式,类似于观察者模式,注册一个观察者到广播里,当有通知时,广播通过调用观察者,逐一通知. 这里写 ...

  8. JSP学习笔记(三):简单的Tomcat Web服务器

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  9. java之jvm学习笔记二(类装载器的体系结构)

    java的class只在需要的时候才内转载入内存,并由java虚拟机的执行引擎来执行,而执行引擎从总的来说主要的执行方式分为四种, 第一种,一次性解释代码,也就是当字节码转载到内存后,每次需要都会重新 ...

  10. Java IO学习笔记二

    Java IO学习笔记二 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输 ...

随机推荐

  1. Dart的JIT 与 AOT

    JIT:Just In Time AOT:Ahead of Time 含义: 目前,程序主要有两种运行方式:静态编译与动态解释. 静态编译的程序在执行前全部被翻译为机器码,通常将这种类型称为AOT ( ...

  2. @Mapper与@Repository区别

    @Mapper:是mybatis-plus注解 @Repository:是spring注解 @Mapper= @Repository + @MapperScan(basePackages = &quo ...

  3. [Cts-Verifier]waiver-Camera-ITS-Test

    [问题描述] 工具:Cts-Verifier-9.0-R11.apk 测试Camera ITS Test时,点击该测试项后verifier apk闪退.重新打开后该项未pass变绿. [问题结论] A ...

  4. .NET微服务从0到1:服务注册与发现(Consul)

    目录 Consul搭建 基于Docker搭建Consul 基于Windows搭建Consul ServiceA集成Consul做服务注册 Ocelot集成Consul做服务发现 更多参考 Consul ...

  5. python之路-基本数据类型之str字符串

    1.概念 python中用',",''',"""引起来的内容称为字符串,可以保存少量数据并进行相应的操作 #先来看看str的源码写了什么,方法:按ctrl+鼠标 ...

  6. 置顶,博客中所有源码 github

    所有项目源代码,开源地址. 作者 github 主页 https://github.com/nejidev 目前开源项目有: 1, linux tea5767 at24c08 mmap 实现fm 收音 ...

  7. 关于adsl vps 拨号ip服务器

    我这几天写了一遍在xp上的文章,但是因为xp上貌似只能使用squid2.6版本的,tinyproxy也不能用,而且怎么弄不出去vps端的端口出来 https://www.cnblogs.com/zen ...

  8. js函数的三种成创建方式以及它们各自的不同

    js有三种创建函数的方式: 1.function语句(也叫函数声明) function sum(a, b) { return a + b; } sum(1, 2); // 3 2. 函数直接量,又叫函 ...

  9. tersserorc的简单使用

    tesserocr 是 python 的一个 OCR 库,它是对 tesseract 做的一层 Python API 封装,所以他的核心是tesseract. tesseract 的安装见 https ...

  10. 数据库开发 Oracle与mysql间的批量处理接口 SSIS+存储过程实现

    公司目前不同的业务系统用了不同的数据库,涉及到oracle.mysql.sqlserver.而一些核心的业务在mysql中,所以平时经常要把oracle.sqlserver中的数据插入到mysql中. ...