jsp中有两种方法调用java代码
1)EL表达式 2)<%>方式调用java代码
但要尽量少用java代码<% java代码>,最好用EL表达式来代替 ${name}:代表着用了getName()的方法(但数据需先存入域对象中)
Jsp的9大内置对象 jsp中 java代码中对应的对象
request HttpServletRequest
response HttpServletResponse
config ServletConfig
application ServletContext
session HttpSession
exception Throwable
page Object
out JspWriter
pageContext PageContext
pageContext对象:jsp的上下文对象(pageContext能够获得其他8大对象)
El的11内置对象:pageContext 上面这5个对象是调用el表达式时,若在java端存入了pageContext域中,这里可以通过${pageContext.键值}获取(jsp中)
pageScope
requestScope
sessionScope
applicatinoScope
paramValues 获取同名参数: ${paramValues['name'][0] }-${paramValues['name'][1] }
header 获取头: ${header['host'] } = <%=request.getHeader("host") %>
headerValues 获取同名头: ${headerValues['host'][0] }
cookie 获取cookie: ${cookie['JSESSIONID'].name } - ${cookie['JSESSIONID'].value }
initParam 获取全局参数: ${initParam['AAA'] }
EL表达式无指定域时搜索域的顺序: page域 -》 request域 -> session域 -》 application域 -》 null(EL表达式若无指定域,则会从小到大去搜索)
域对象的作用范围:
PageContext:page域: 在当前jsp页面中数据有效的!
HttpServletRequest:request域: 当前同一个请求中数据有效的!
HttpSession: session域: 当前同一个session(会话)中数据有效的!
ServletContext:application域: 当前同一个网站中数据有效的!
<%--获取上下文路径 --%>
${pageContext.request.contextPath }${empty name}(判断是否为空字符串或null)
jsp标签:
<jsp:forward page="/05.action2.jsp">(转发)
<jsp:param value="eric" name="name"/>(传参数)
<jsp:param value="jacky" name="name"/>
</jsp:forward>