9.JSP进阶
1.JSP内置对象
JSP容器在_jspService()方法中声明并初始化9个内置对象。
名称 |
作用 |
接口/类 |
out |
客户端打开的输出流 |
javax.servlet.jsp.JspWriter 接口 |
application |
为多个应用程序保存信息 |
javax.servlet.ServletContext 接口 |
session |
为每个用户保存信息 |
javax.servlet.http.HttpSession 接口 |
request |
封装客户端HTTP请求信息 |
javax.servlet.http:HttpServletRequest 接口 |
response |
封装返回HTTP客户端响应信息 |
javax.servlet.http:HttpServletResponse 接口 |
内置对象out
类型:Javax.servlet.jsp.JspWriter
作用:主要用来向客户端输出数据
作用域:page.也就是说,每个页面都有一个自己的out对象。
重写方法:print()/println()/write() 向客户端页面输出数据
内置对象request
类型::Javax.servlet.http.HttpServletRequest
描述: 来自客户端的请求经Servlet容器处理后,由request对象进行封装。注意:
客户端和服务器的一次通信就是一次请求(发送请求或者得到相应)。
作用域:request.说明,这次请求结束后,它的生命周期就结束了。
重要方法:
getParameter(key) 获取提交表单的数据
getParameterValues(key) 获取提交表单的一组数据
getRequestDispatcher(“list.jsp”).forward(request,response) 转发请求到list.jsp页面
setAttribute(key,Object) 设置请求作用域的key对应的值
getAttribute(key) 获取请求作用域key所对应的值
setCharacterEncoding(“UTF-8”) 对请求数据指定编码
内置对象response
类型:Javax.servlet.http.HttpServletResponse
描述:它封装了JSP的响应,然后被送到客户端以响应客户的请求。
作用域:page;
重要方法:
sendRedirect(“list.jsp”) 页面跳转
setCharacterEncoding(“UTF-8”) 设置响应编码
内置对象sessoin:
类型:Javax.servlet.http.HttpSesion;
描述:表示一个会话,用来保存用户信息,以便跟踪每个用户的状态。(不要用来保存业务数据, request)‘
定义:是指在一段时间内客户端和服务器之间的一连串的相关的交互过程。
作用域:Session
重要方法:
getId() 获取session的id号
Isnew() 判断session是新建的
setAttribute(key,Object) 向当前会话设置一个值
getAttribute(key) 获取当前会话中key所对应的值
removeAttribute(key) 删除当前会话key所对应的值
setMaxInactiveInterval(1000*60) 设置session失效时间,Tomcat默认时长为30分钟
Invalidate() 销毁当前会话,一般用于删除当前会话中所有数据
内置对象application
类型:javax.servlet.ServletContext
描述:从servlet配置对象获得的servlet上下文
作用域:application
重要方法:
setAttribute(key,Object) 向当前application设置一个值
getAttribute(key) 获取当前application中key所对应的值
removeAttribute(key) 删除当前application中key所对应的值
内置对象pageContext
类型:javax.servlet.jsp.PageContext
描述:本JSP的页面上下文
作用域:page
内置对象congfig和page
config
类型:javax.servlet.ServletConfig
描述:本JSP的 ServletConfig
作用域:page
page
类型:java.lang.Object
描述:实现处理本页当前请求的类的实例(javax.servlet.jsp.HttpJspPage),转换后的Servlet类本身
作用域:page
内置对象exception
类型:java.lang.Exception
描述:本JSP页面的异常对象
作用域:page
2.JSP作用域
JSP页面中的对象,包括用户创建的和JSP内置对象都有一个范围属性
JSP中共有4种作用域范围
作用域 |
描述 |
方法 |
Application |
具有应用程序作用域的对象,在应用程序存活期间均可用 |
setAttribute(String name,Object attribute) getAttribute(String name) |
Session |
具有会话作用域的对象,在会话的存活期间可用 |
|
Request |
具有请求作用域的对象,在所有处理同一个请求的页面内都可以访问 |
|
Page |
具有页面作用域的对象,在当前页内可用 |
Application作用域范围最大
可以被不同页面、不同用户共享
可以通过application内置对象或ServletContext访问Application作用域对象
Session作用域范围仅次于Application作用域
可以被同一个客户端的请求访问
可以通过session内置对象访问Session作用域对象
request作用域范围小于Session作用域:
可以被forward()方法转向页面或者include()包含页面访问
可以通过request内置对象访问request作用域对象
Page作用域范围最小
只能被创建对象的页面访问
可以通过pageContext内置对象访问Page作用域对象
9.JSP进阶的更多相关文章
- Servelt&&JSP进阶
Servlet与JSP进阶 来自mkw的视频课程的总结 1.前言 内容包括 掌握Java Web核心特性,Servlet核心对象以及JSP九大内置对象.主要有以下的内容: 请求结构 && ...
- JSP进阶 之 SimpleTagSupport 开发自定义标签
绝大部分 Java 领域的 MVC 框架,例如 Struts.Spring MVC.JSF 等,主要由两部分组成:控制器组件和视图组件.其中视图组件主要由大量功能丰富的标签库充当.对于大部分开发者而言 ...
- jsp进阶
Jsp,前段的数据读取到后端 获取前段输入框数据 request.getParameter(前段输入框的name值) Request.代表转发,(代码在服务器内部执行的一次性请求,url地址不会发生改 ...
- 【Web】CSS中的浮动float
CSS中的float 文章目录 CSS中的float 1.float浮动属性 2.float文字环绕图片 3.float浮动的真正原因以及副作用分析 4.清除浮动的四种解决方法 5.实际应用 导航效果 ...
- 【JSP&Servlet学习笔记】5.Servlet进阶AIP、过滤器与监听器
Servlet接口上,与生命周期及请求服务相关的三个方法是init().service()与destory()方法.当Web容器加载Servlet类并实例化之后,会生成ServletConfig对象并 ...
- 网站开发进阶(三十七)JSP页面跳转问题解决
JSP页面跳转问题解决 PS:本篇博文质量欠佳,仅供个人学习之用. 前言 在做Web开发时,对别人的应用(jsp+servlet)进行服务器部署时出现了页面跳转无效的情况.但是项目在本地未出现此状况. ...
- 网站开发进阶(三十五)JSP页面中的pageEncoding和contentType两种属性
JSP页面中的pageEncoding和contentType两种属性 本文介绍了在JSP页面中经常用的两种属性,分别是pageEncoding和contentType,希望对你有帮助,一起来看. 关 ...
- 网站开发进阶(十一)如何将一个jsp页面嵌套在另一个页面中
如何将一个jsp页面嵌套在另一个页面中 这个在做网页中常要用到,有些通用的内容可集中放在一个页面文件中,其它要用到这些内容的页面只需要包含(引用)这个通用文件即可.这样便于维护,如果有很多网页,当通用 ...
- 网站开发进阶(六)JSP两种声明变量的区别
JSP两种声明变量的区别 在JSP中用两种声明变量的方法,一种是在<%! %>内,一种是在<% %>内.他们之间有什么区别呢?我们直接看一个JSP文件来理解. 代码如下: &l ...
随机推荐
- Codeforces 1076E Vasya and a Tree(树状数组)或dfs
题意:给你一颗以1为根节点的树,初始所有节点的权值为0,然后有m个操作,每个操作将点x的所有距离不超过d的节点权值+1,问经过m次操作后每个节点权值是多少? 思路:如果是一个序列,就可以直接用树状数组 ...
- C++——virtual
一.放在父类的函数名前面:多态 1.作用:实现多态:子类可以自定义父类中的virtual函数 #include <iostream> using namespace std; class ...
- 04 UUID
1 什么是UUID UUID 的目的是让分布式系统中的所有元素,都能有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定. 2 应用场景 MySQL数据库不能想oracle数据库那样创建序列,就 ...
- 杭电acm 1039题
这道题也比较简单,写三个函数判断三个条件即可..... 但是开始时我按照已经注释掉的提交,居然提示WA,我百思不得其解,后改成上面的判断式就可以了,求高手解答.... #include "i ...
- 【IMOOC学习笔记】多种多样的App主界面Tab实现方法(一)
1.ViewPager实现Tab 首先实现底部和底部布局 <?xml version="1.0" encoding="utf-8"?> <Li ...
- Struts2 引入
引入: 说:如果一个路径想访问一个类,需求怎么做? 第一种方法,用servlet 第二种方法,用过滤器 第三种方法如下图:把路径和方法都存到map里面,用反射可以执行类下的方法 第三中方法 ...
- c#操作json 使用JavaScriptSerializer
需要引用:System.Web.Extensions /// <summary> /// json的信息.保证定义的变量和json的字段一样(也可以使用struct) /// </s ...
- socket socket讲解
socket socket讲解 一.socket是何物? 参考百度百科: http://baike.baidu.com/link?url=4YNURsJLEaL0II79C68gPUoYKliXWJ ...
- sonar Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.4.0.905:sonar
背景: 今天在项目根目录执行maven sonar:sonar ,报错信息如下,然后就各种的搜,折腾了多半天天也没找出解决办法,最后打算放弃时,看到一遍文章说是mysql max_allowed_p ...
- 使用hexo搭建博客并上传GitHub
之前在博客园.简书.CSDN等地儿都开过博,一篇文章写好了,我希望能在几个平台可以同步发布,可是操作起来成本不低.几个平台下的富文本编辑器比较起来还是博客园更顺手,看着更舒服,尤其是代码块的操作灵活. ...