JSP2.0规范指令,JSP自动导入包,JSP四大作用域讲解
在JSP 2.0规范*定义了三个指令:
page指令
Include指令
taglib指令:在JSP页面中导入JSTL标签库。替换jsp中的java代码片段
JSP会自动导入以下的包:
import java.lang.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
静态包含:把其它资源包含到当前页面中。
<%@ include file="/include/header.jsp" %>
动态包含:
两者的区别:翻译的时间段不同
前者:在翻译时就把两个文件合并
后者:不会合并文件,当代码执行到include时,才包含另一个文件的内容。
jsp九大内置对象
request 请求对象 类型 javax.servlet.ServletRequest 作用域 Request
response 响应对象 类型 javax.servlet.SrvletResponse 作用域 Page
pageContext 页面上下文对象 类型 javax.servlet.jsp.PageContext 作用域 Page
session 会话对象 类型 javax.servlet.http.HttpSession 作用域 Session
application 应用程序对象 类型 javax.servlet.ServletContext 作用域 Application
out 输出对象 类型 javax.servlet.jsp.JspWriter 作用域 Page
config 配置对象 类型 javax.servlet.ServletConfig 作用域 Page
page 页面对象 类型 javax.lang.Object 作用域 Page
exception 例外对象 类型 javax.lang.Throwable 作用域 page
四大作用域
PageContext : pageConext 存放的数据在当前页面有效。开发时使用较少。
ServletRequest: request 存放的数据在一次请求(转发)内有效。使用非常多。
HttpSession: session 存放的数据在一次会话中有效。使用的比较多。如:存放用户的登录信息,购物车功能。
ServletContext: application 存放的数据在整个应用范围内都有效。因为范围太大,应尽量少用
forward()和redirect()
forward():
容器中控制权的转向,是服务器内部重定向
他是直接读取url中的内容显示,所以地址栏地址不会变
其request值不变
更高效、便于隐藏实际链接
redirect():
告诉客户端,重新发送请求链接,地址栏显示转发后的地址
等于客户端会发送两次request
若要请求跳转别的服务器资源,只能用此
Request范围的对象,能被forward访问,不能被redirect访问