- 有九个隐含对象,可以直接使用,已经提前定义好了,html语句均用servlet中的out对象输出,整个在service当中,每当收到用户请求时执行的内容。
- Java程序片段在<% %>中,是局部变量,在service方法中,没有线程安全问题。
- Java表达式,<%= %>,直接返回表达式的值,相当于把内容放在了out.print()当中。
- 声明<%! %>中间的内容为全局变量或方法,但是有线程安全问题。
- 指令基本格式:<%@指令 属性=”” %>
一般把指令放在JSP页面的顶部。
page 属性:
language:告知引擎,脚本用的什么语言,默认JAVA,不写也可以。
import:告知引擎导入哪些包,但是引擎会自动导入java.lang.* ,javax.servlet.http* ,javax.servlet.jsp. *。
contentType:告知引擎,响应正文的MIME类型。
常用的很少,通常是:<%@ page pageEncoding=”UTF-8”%>统一代码文件
include 属性:静态包含
file,以/开头代表当前应用。导入响应的文件。通常用于导入公共的页面头尾等部分。
taglib属性:
uri:外部标签的地址
prefix:通过这个前缀使用响应的标签。 - 转发:相当于
RequestDispatcher rd = request.getRequestDispatcher("");
rd.forward(request,response);
<jsp:forward page="">
<jsp:param value="abc" name="username"/>//传递参数
</jsp:forward>
7 . 静态包含表示把文本直接嵌入进来,动态包含只申请访问的结果,独享自己的servlet,语法:< jsp:include page=”“/>request会带过去。
8 . Out 对象,字符流。
out.println(“”);
out.getBufferSize()//缓冲区大小
out.getRemainling()//剩余字节数目
out.flush()//强制输出缓冲区数据。
out.clearBuffer()//清空缓冲区数据。
out.clear()//清空缓冲区数据,但是如果用过flush()会抛出异常。
9. Request对象
封装了表单,cookie,主机名等客户端提交的信息。
request.getMethod()//获得请求方法名
request.getRequestURI()//从主机名第一个字符开始。
request.getProtocol()//获得协议
request.getServerName()//获得请求的服务器的IP
request.getServerPort()//获得请求的服务器的端口
request.getRemoteAddr()//获得客户端的IP
request.getRemoteHost()//获得客户端的主机名。
request.getParameter()//获得相应的参数,参数名字和name属性中的值一致
request.getParameterValues()//获得相应的参数对应的数组。
request.setAttribute()//保存到request对象中。
10. Response对象
response.setHeader()//设置字符串头信息
response.setIntHeader()//设置整型值头信息
response.sendRedirect()//重定向到新的网站
response.addCookie()//添加cookie
11. Session对象
session.getId()//获取session的id
session.getCreationTime()//获取session的创建时间
session.getLastAccessedTime()//获取最后访问时间
session.getMaxInactiveInterval()//获取失效时间
session.isNew()//是否是新的session会话
session.invalidate()//彻底清除session会话
12. Application对象
存在于服务器的空间中,除非应用被关闭才会销毁,如果设置了某些属性值,将会共享给所有用户。
application.getServerInfo()//返回服务器信息
application.getServletContextName()//应用名称
application.getVirtualServerName()//获取主机名称
13. Config对象
config.getInitParameter(“”)//获取初始化的信息,在web.xml中进行设置
14. Page对象
就像是this指针
page. getClass()//返回当前的object类
page.hashCode()//返回当前的哈希值
page.equals()//比较是否相等
15. Exception对象
exception.getMessage()//描述异常的信息
exception.toString()//字符串描述
exception.printStackTrace()//打印异常堆栈轨迹到console中
16. PageContext对象,可以操作其它的对象
pageContext.getOut()//类似的返回所有的其它八个对象
pageContext.setAttribute(“”,”“,范围)//在范围内设置键值对
17. 四大域对象:
PageContext:页面范围,开发中很少用。
ServletContext:应用范围,最大,尽量少用,要做同步处理。
ServletRequest:请求范围,不同的资源之间只能转发,适用于一次请求多次使用。
HttpSession:会话范围,多次请求共享数据,但不同的客户端不能共享。