使用Servlet技术来实现HTML页面数据的统计十分繁琐,因此推出JSP技术。
<%! 定义变量、方法、内部类等 %>
<%= 输出内容 %>
注意:不能以分号结尾
<%Java代码%>
2和3都在_jspService方法内可以写
注释:规定范围用规定的注释
html :<!-- --> java :// /**/ jsp :<%-- --%>
jsp中的内置对象,是指Tomcat在翻译jsp页面成为Servlet源代码后,内部提供的九大对象。
request 请求对象 response 响应对象 pageContext jsp的上下文对象 session 会话对象 application ServletContext对象 config ServletConfig对象 out jsp输出流对象 page 指向当前jsp的对象 exception 异常对象(在错误页中才起作用)
pageContext (PageContextlmpl类) 当前jsp页面范围内有效 request (HttpServletRequest类) 一次请求内有效 session (HttpSession类) 一个会话范围内有效(从打开浏览器到关闭浏览器) application (ServletContext类) 整个web工程范围内都有效(只要web工程不停止,数据一直都在) 域对象:可以像Map一样存取数据的对象,四个域对象功能一样,不同的是数据存取范围 从小到大:pageContext -> request -> session -> application
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <h1>scope.jsp页面</h1> <% //往四个域种分别保存数据 pageContext.setAttribute("key","pageContext"); request.setAttribute("key","request"); session.setAttribute("key","session"); application.setAttribute("key","application"); %> pageContext域:<%= pageContext.getAttribute("key")%><br/> request域<%= request.getAttribute("key")%><br/> session域<%= session.getAttribute("key")%><br/> application域<%= application.getAttribute("key")%> </body> </html>
1、静态包含
头部信息<br/> 主体内容<br/> <%-- <%@include file=""%> 静态包含 file属性指定你要包含的jsp页面的路径 地址中第一个斜杠:http://ip:port/工程路径/ 映射到代码的web目录 --%> <%@include file="/foot.jsp"%>
2、动态包含
<jsp:include page="/foot.jsp"> 跟静态包含差不多,区别在于: 1、动态包含的jsp页面翻译为java代码 2、动态包含底层代码去调用被包含的jsp页面执行输出 3、动态包含可以传递参数 </jsp:include> --%> <jsp:include page="/foot.jsp"> <jsp:param name="username" value="leidaoge"/> <jsp:param name="password" value="111"/> </jsp:include>
3、请求转发
<%-- <jsp:forward page=""></jsp:forward> 请求转发标签,功能就是请求转发 page属性设置请求转发的路径, 转发过来了,但是路径没变还是原来那个路径 --%> <jsp:forward page="/foot.jsp"></jsp:forward>