【2017-09-04】JavaWeb内置对象
Jsp页面中引入别的页面
include命令
<%@ include file="要引入的页面路径"%>
页面中的form表单提交方式:
post:
提交内容不可见, 没有长度限制
get:
有长度限制, 提交内容在地址栏可见
1、application从服务器启动到关闭
application对象
application对象是一个全局对象, 生命周期为服务器启动一直到服务器停止, 在这个对象里面可以存放一些全局变量
setAttribute(String, Object)---设置某个属性和属性值
getAttribute(String)---获得某个属性的值
getAttributeNames()---获取application对象中所有的属性名
2、session会话对象
session指的是用户在进入一个网站开始到关闭浏览器的时间, Tomcat服务器默认的session有效时间是30分钟, 也就是说, 打开一个网站30分钟之内没有动作, session对象同样也会失效
session存在服务器的内存中, 服务器中不同的用户对应的session也是不同的, 所以服务器用来判断当前登录的用户是否是同一个的时候就需要session
session对象是HttpSession的实例
常用方法:
long getCreationTime()---返回session对象创建的时间
String getId()---返回一个sessionid, 是唯一的
void setAttribute()---设置一个属性和一个属性值
Object getAttribute()---获取某个属性的属性值
String[] getValueNames()---以数组的形式获取session对象中所有可用属性的属性名
setMaxInactiveInterval()---设置session经过多长时间之后失效(默认30分钟)
getMaxInactiveInterval()---设置session的失效时间(单位是秒)
session的生命周期:
创建: 当用户第一次访问某个jsp或者servlet的时候, 服务器就会为当前的访问创建一个session, 并生成一个sessionId, 每次客户端向服务器发送请求的时候, 都会将这个sessionId带过去进行验证
活动: 在这个页面的各种活动, 比如通过超级连接打开另一个页面, 或者进行各种增删改查的操作, session失效除非要等到浏览器的相关页面全部关闭, 或者session超时, 当再次访问的时候会创建一个新的session, 但是原来的session还会存在, 只不过没有任何请求再带着那个旧的sessionId让服务器去验证了
销毁:
三种方法可以销毁session
1, 调用session.invalidate()方法
2, session自己过期了
设置session过期时间也可以在web.xml中设置
<session-conf>
<session-timeout>
10<!-- 单位是分钟 ! -->
</session-timeout>
</session-conf>
3, 服务器重新启动
3、request请求对象
<input name="haha" type="text"> 必须有name这个属性
requset.getParameter("haha"); 返回input标签输入的值
String [] str=request.getParameterValues("name ") 获取一个数组
request.setAttribute("number",12) 设置属性,键值对形式
request.getAttribute("number") 获取刚刚设置的属性。
request.getServerName(); 获取登录服务器主机名
request.getContentType()---返回请求体的MIME类型
requset.getprotocol()---返回请求用的协议类型和版本号
request.getServerPort()---获取服务器的端口号
request.getRealPath(String path)---返回传入的这个路径的物理路径
request.getRemoteAddr()---返回发送此请求的客户端的IP地址
4、pageContent 当前页面对象
5、response
response对象是HttpServletResponse的实例
常用方法:
setCharacterEncoding(String name)---设置响应页面使用的字符编码
setContentType("text/html; charset=utf-8")---设置(MIME类型)请求头
response.getWriter().append(String content)---向页面输出一段字符串
out对象的类型是JspWriter, 而response.getWriter()是一个PrintWriter, out对象也可以通过pageContext.getOut()获得, 这两个对象的类型不一样
out.print(null);会抛出异常, PrintWriter.print(null)不会抛出异常
JspWriter是一个抽象类, PrintWriter是一个继承了Writer的普通类
getWriter()方法可以在页面上输出一串字符, out也是一个输出对象, 两者的区别在于, getWriter()方法的执行结果, 总是优先于out对象, 可以使用out.flush()方法, 强行属性缓冲区的内容, 将out对象的输出结果先输出出来
造成这种现象的原因:
out对象实际上对PrintWriter是有依赖的, 他需要先将需要输出的内容存到response的缓冲区里面, 然后等待jsp页面中的out满足一定条件之后, 才会调用输出的方法把内容直接输出到页面上
而PrintWriter是可以直接输出出来的
转发和重定向(面试98%会问)
response.sendRedirect(String location)---请求重定向
客户端行为, 从本质上讲相当于两次请求, 第一次请求的对象不会被保存, 地址栏的Url地址会改变
request.getRequestDispatcher().forward(request, response)---请求转发
服务器行为, 相当于一次请求, 转发后请求对象会被保存, 地址栏url不会改变
6、out
out.print("要输出的字符串");
7、page
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" isErrorPage="true"
errorPage="error.jsp"%> errorPage是在当前页面出错时会跳转到设置的页面 isErrorPage="true" 会把出错信息带过去
out.print(exception.getMessage()); 将页面错误信息打印出来。
【2017-09-04】JavaWeb内置对象的更多相关文章
- javaWeb内置对象
jsp内置对象是web容器创建的一组对象. jsp内置对象的名称是jsp的保留字. jsp内置对象是可以直接在jsp页面使用的对象,无需使用new获取实例. jsp九大内置对象 1.request 2 ...
- 2017.9.25 JSP内置对象的概述
1.JSP的定义: 在JSP中是为了便于数据信息的存储.传递.获取,专门设置了九个内置对象, jsp内置对象是指他们是预先设定的,不需创建,每个对象都有自己的属性和方法. 2.JSP内置对象 对象名称 ...
- JavaWeb学习----JSP内置对象详解
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- JavaWeb之 JSP:内置对象,EL表达式,JSP标签基础
JSP的内置对象 什么是JSP的内置对象呢? 在JSP页面进行编程的时候,如果我们要使用一些对象,如:HttpSession,ServletConfig,ServletContext这些对象,如果每次 ...
- JavaWeb——JSP内置对象application,JSP属性范围
application application语法 application对象 JSP属性范围 范围的分类 page request session application pagecontext延伸 ...
- JavaWeb学习总结(十七)——JSP中的九个内置对象
一.JSP运行原理 每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理.JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet ...
- JavaWeb笔记——Jsp的指令、内置对象和动作标签
JSP三大指令 一个jsp页面中,可以有0~N个指令的定义! 1. page --> 最复杂:<%@page language="java" info=" ...
- JavaWeb学习笔记--2.3内置对象
参考资料:http://www.cnblogs.com/qqnnhhbb/archive/2007/10/16/926234.html 目录 1. JSP内置对象分类2. 属性保存范围 2.1 pag ...
- JavaWeb学习笔记--2.jsp指令元素、动作元素、内置对象
目录: 一.指令 1.1 page指令 :page指令有13种属性 1.2 include指令:include指令有1种属性,为file.(注意<%@ include%>和<jsp: ...
随机推荐
- MySQL函数使用
1.mysql开启函数功能 MySQL函数不能创建的解决方法 在使用MySQL数据库时,有时会遇到mysql函数不能创建的情况. 出错信息大致类似: ERROR 1418 (HY000): This ...
- python使用退格键时出现^H解决方法
Linux 使用退格键时出现^H解决方法 1.临时解决 按ctrl 2.永久解决 基本现象 进入 Python shell,按下 Delete/Backspace 键: Python 3.5.2 (d ...
- Python扫描器-常用库-Request
1.常用库-Request 1.1. 介绍 #安装:pip3 install requests #各种请求方式:常用的就是requests.get()和requests.post() >> ...
- idea的enable auto-import/内存设置
设置pom.xml依赖的自动导入 设置idea的memory heap On the Help menu, click Edit Custom VM Options. Set the -Xmx opt ...
- web-自动化测试流程
1. 自动化测试流程 (1) 需求分析 (2) 挑选适合做自动化测试的功能 (3) 设计测试用例 (4) 搭建自动化测试环境 [可选] (5) 设计自动化测试项目的架构 [可选] (6) 编写代码 ( ...
- 波特词干(Porter Streamming)提取算法无代码单纯理解
最近写东西提到这个算法,要看一下,结果网上都是直接根据代码解释,对于我这种菜鸟在刚开始看一个算法的时候真心不想直接看代码学.奈何都是各种语言的代码,么得办法.先走了一遍,有了大致的了解,翻译成自己的话 ...
- git merge仓
git merge --no-ff branch 合并指定代码 如果有冲突 git mergetool 可视化解决冲突, qa! 全退出 如果修复失败 git checkout branch -f ...
- 剑指offer52:正则表达式匹配
1 题目描述 请实现一个函数用来匹配包括'.'和'*'的正则表达式.模式中的字符‘.’表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次). 在本题中,匹配是指字符串的所有字符匹配整个 ...
- 人机交互技术 Week 2_History of HCI
Recap: Interaction Design Interaction Design Designing interactive products to support people in the ...
- Crossword Expert CodeForces - 1194F (期望)
大意: $n$个题, 按照第$i$题随机$t_i$或$t_i+1$秒钟完成, 最多做$T$秒, 求做题数期望. 期望转为做题数$\ge x$的方案数之和最后再除以总方案数 这是因为$\sum\limi ...