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. MyBatis配置文件中config与mapper的约束

    本文链接:https://blog.csdn.net/gaoxin_gx/article/details/100183455 Config的约束: <?xml version="1.0 ...

  2. crypto-js aes加密解密

    安装 npm install crypto-js --save unit.js import CryptoJS from "crypto-js"; //秘钥 const CRYPT ...

  3. 关于CSS居中问题的一些总结

    前端页面开发中关于内容居中的需求应用概率很大,自己搜集一些资料和总结关于css里的几种居中效果实现 第一常用text-align:center先将子元素将块级元素改为行内元素,即display:inl ...

  4. 痞子衡嵌入式:恩智浦i.MX RTxxx系列MCU启动那些事(6.1)- FlexSPI NOR连接方式大全(RT600)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是恩智浦i.MX RT600的FlexSPI NOR启动的连接方式. 痞子衡前段时间一鼓作气写完了三篇关于i.MXRT1xxx系列Flex ...

  5. ELK springboot日志收集

    一.安装elasticsearch 可以查看前篇博客 elasticsearch安装.elasticsearch-head 安装 二.安装 配置 logstash 1.安装logstash 下载地址: ...

  6. 分享一次C#调用Delphi编写Dll程序

    1.前言: 最近接手了一个项目需要和Delphi语言编写的一个系统进行一些接口的对接,数据在传输过程中采用Des加密方式,因为Delphi 平台的加密方式和C#平台的加密方式不互通,所以采用的方式是C ...

  7. app之---豆果美食

    1.抓包 2.代码 抓取: #!/usr/bin/env python # -*- coding: utf-8 -*- #author tom import requests from multipr ...

  8. 原生JavaScript下的Ajax

    概述 AJAX即asynchronous javascript and XML,中文翻译是异步的javascript和XML.是指一种创建交互式网页应用.用于创建快速动态网页的开发技术. 传统的网页( ...

  9. SQL的模糊查询(转载)

    本文由转载而来: 原文地址链接:http://www.cnblogs.com/GT_Andy/archive/2009/12/25/1921914.html 在进行数据库查询时,有完整查询和模糊查询之 ...

  10. Python3 + requests + unittest接口测试

    一.缘 起 笔者最近完成了基于Python3 + requests + unittest的接口测试脚本,故在此做一下记录,于己为复盘,于彼为学习和参考 二.思 路 接口测试无非三步: 首先,造数据 - ...