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会向缓存区写入一个换行,但是浏览器不识别该换行

最新文章

  1. [.NET] 利用 async &amp; await 进行异步 IO 操作
  2. 设计模式C#实现(十五)——命令模式
  3. 算法导论( FFT &amp; 自动机 &amp; 最优二叉搜索树 !!!)
  4. java -jar 执行 eclipse export 的 jar 包报错处理
  5. python版本升级及pip部署方法
  6. JAVA经典算法40题及解答
  7. 使用C#中JavaScriptSerializer类将对象转换为Json格式数据
  8. iOS 将图片保存到本地
  9. CodeForces 135C C. Zero-One
  10. C++中关于重载默认构造函数与默认全部参数的构造函数的使用注意
  11. 14.7.1.2 MySQL创建用户句法
  12. js promise看这篇就够了
  13. Windows Server 2016-客户端加域端口汇总
  14. DocX开源WORD操作组件的学习系列一
  15. 【SQL】 MySql与SqlServer差异比较(MySql踩坑全集)
  16. SQL Server导入导出不丢主键和视图的方法
  17. Error:Failed to resolve: android.arch.core:common:1.1.0
  18. RedHat 6 yum 使用网易源
  19. C语言 &#183; 因式分解
  20. StringUtils 正则校验

热门文章

  1. Java enum枚举在实际项目中的常用方法
  2. Everything-快速找到你的文件,电脑前的你值得拥有
  3. Flutter 拖拽排序组件 ReorderableListView
  4. nor flash之4字节地址模式
  5. 负载均衡框架 ribbon 三
  6. si4745 FM-AM-SW 音量控制芯片 驱动详解
  7. bootstrap table分页跳转到第一页
  8. Golang package轻量级KV数据缓存——go-cache源码分析
  9. 复制图片链接和标题生成Markdown文本
  10. ubuntu下使用apt-get install安装软件的安装位置