1.JSP中常用的9大内置对象?
内置对象:在JSP页面中能直接使用的对象就是JSP内置对象,事实上,JSP底层就是一个java类,可以在JSP中直接使用的,必然存在JSP翻译后的java类
下面简单介绍内置对象:
HttpServletRequest request :请求
HttpServletResponse response :响应
HttpSession session session:会话
ServletContext application:表示当前项目对象
ServletConfig config:专门获取当前这个Servlet的配置信息
Object page = this:表示当前JSP页面对象,只能在页面使用,在其他的地方无法使用
总结:web中的四个域对象(容器对象)范围比较从小到大依次为:
Page(当前页面) (当前项目的根路径) < request(一次请求)(商品) < session(一次会话,多次请求)(昵称) < ServletContext(整个项目)在线人数
PageContext pageContext:表示JSP页面上下文对象 也是一个工具类
作用:1.就是获取其它八大内置对象 2. 向四个web容器(page request session application )设置数据 3.向四个web容器(page request session application )获取数据
案例:
<%-- 演示pageContext获取其他8个内置对象 --%> <%= pageContext.getException() %><br> <%= pageContext.getOut() %><br> <%= pageContext.getPage() %><br> <%= pageContext.getRequest() %><br> <%= pageContext.getResponse() %><br> <%= pageContext.getServletConfig() %><br> <%= pageContext.getServletContext() %><br> <%= pageContext.getSession()%><br> <hr> <%-- 演示设置数据和取出数据 --%> 存数据 <% pageContext.setAttribute("addr", "马尔代夫", pageContext.APPLICATION_SCOPE); pageContext.setAttribute("addr", "云南", pageContext.SESSION_SCOPE); pageContext.setAttribute("addr", "新加坡", pageContext.REQUEST_SCOPE); pageContext.setAttribute("addr", "东莞", pageContext.PAGE_SCOPE); %> <%=pageContext.APPLICATION_SCOPE %><br> <%=pageContext.SESSION_SCOPE %><br> <%=pageContext.REQUEST_SCOPE %><br> <%=pageContext.PAGE_SCOPE %><br> 取数据 <%=pageContext.getAttribute("addr", pageContext.APPLICATION_SCOPE) %><br> <%=pageContext.getAttribute("addr", pageContext.SESSION_SCOPE) %><br> <%=pageContext.getAttribute("addr", pageContext.REQUEST_SCOPE) %><br> <%=pageContext.getAttribute("addr", pageContext.PAGE_SCOPE) %><br>
JspWriter out:作用:out它主要是用来把数据输出到页面(相当于response.getWriter())
<% out.write("哈哈"); %><br> <% response.getWriter().write("呵呵<br>"); %> <% out.write("嘿嘿"); %><br>
Throwable exception:主要是保存JSP页面上的异常信息的对象 内置对象exception,在jsp页面上要能够使用exception内置对象,在jsp的page指令中,必须书写isErrorPage=true,否则在页面上是无法使用exception内置对象
2.动作标签
JSP页面中是可以嵌入Java代码完成我们的功能,但是后期开发中JSP页面中是不写任何Java代码的(页面上本来,就应该没有java代码,页面本来就是前端工程师开发)。 而在JSP中给我们提供了一些内置的标签,可以代替Java代码。
jsp:include标签 :
作用:引入其他页面,合并成一个页面,展示。(动态引入)
<%-- <%@include file="header.jsp" %> --%> <%-- JSP中的内置标签: jsp:include 它和 jsp的include指令功能相同 jsp:include内置的标签,它是动态的包含,当使用它引入多个JSP页面的时候, 在翻译引入的所有JSP为Java文件的时候,会翻译成不同的Java文件,只有在 程序运行的时候,才会把需要包含的内容引入进来。 jsp的include指令 它是静态的包含 在翻译的时候就把所有的JSP合并成一个Java程序 --%> <jsp:include page="header.jsp"/><br> 这是新闻主体<br>
jsp:forward标签:主要是起到我们在Servlet中学习的request的请求转发的作用。
<%-- 演示jsp froward标签 --%> <jsp:forward page="index.jsp"></jsp:forward>