jsp学习笔记---内置对象
程序员文章站
2022-07-03 20:07:55
...
1、 Jsp的内置对象
什么是内置对象?
在jsp开发中,会频繁使用到一些对象,如果我们每次要使用这些对象都去创建这些对象就显示非常麻烦。所以Sun公司设计Jsp时,在jsp页面加载完毕之后就会自动帮开发者创建好这些对象,而开发者只需要直接使用这些对象调用方法即可!,这些创建好的对象就叫内置对象!!!!
八大内置对象
类型 内置对象
HttpServletRequest request
HttpServletResponse response
ServletConfig config
ServletContext application
HttpSession session
Throwable exception
Object(this) page
JspWriter out
PageContext pageContext
pageContext对象
pageContext对象的类型是PageContext,叫jsp的上下文对象,可以获取其他八个内置对象
<%//1)可以通过pageContext对象获取其他8个内置对象
response.getWriter().write("out对象是否相等:"+(out==pageContext.getOut())+"</br>");
out.write("request对象是否相等:"+(request==pageContext.getRequest())+"</br>");
out.write("response对象是否相等:"+(response==pageContext.getResponse())+"</br>");
out.write("config对象是否相等:"+(config==pageContext.getServletConfig())+"</br>");
out.write("session对象是否相等:"+(session==pageContext.getSession())+"</br>");
%>
2、jsp域对象
作用: 保存数据和获取数据,用于共享数据
域对象方法:
setAttribute("name",Object) 保存数据
getAttribute("name") 获取数据
removeAttribute("name") 清除数据
域对象作用范围:
page域: 只能在当前jsp页面中使用(当前页面)
request域: 只能在同一个请求中使用(转发)
session域: 只能在同一个会话(session对象)中使用(私有的)
context域: 只能在同一个web应用中使用。(全局的)
ServletContext ———————————-context域
HttpServletRequet —————————– request域
HttpSession ————————————–session域 –Servlet学习的
PageContext————————————–page域 –jsp学习的
域范围常量:
PageContext.PAGE_SCOPE
PageContext.REQUEST_SCOPE
PageContext.SESSION_SCOPE
PageContext.APPLICATION_SCOPE
<%--
2)pageContext作为域对象使用
2.1 可以往不同域对象中存取数据
--%>
<%
pageContext.setAttribute("message","默认");
pageContext.setAttribute("message","request信息",PageContext.REQUEST_SCOPE);
pageContext.setAttribute("message","session's messsage",PageContext.SESSION_SCOPE);//保存到sessio域中
pageContext.setAttribute("message","application's messsage",PageContext.APPLICATION_SCOPE);//保存到context域中
//request.setAttribute("message","request's message"); 等价于上面的代码
%>
<%
String str=(String)pageContext.getAttribute("message");
out.write(str);
%>
<%--
原则:
1)在哪个域中保存数据,就必须从哪个域取出数据!!!
--%>
<%=pageContext.getAttribute("message",PageContext.PAGE_SCOPE) %><br/>
<%=pageContext.getAttribute("message",PageContext.REQUEST_SCOPE) %><br/>
<%=pageContext.getAttribute("message",PageContext.SESSION_SCOPE) %><br/>
<%=pageContext.getAttribute("message",PageContext.APPLICATION_SCOPE) %><br/>
自动在四个域中搜索数据
<%--
findAttribute(): 在四个域自动搜索数据
顺序: page域 -> request域 -> session域 -> context域
--%>
<%-- <%=pageContext.findAttribute("message") %> --%>
Servlet技术: 开发动态资源。是一个java类,最擅长写java代码
jsp技术: 开发动态资源。通过java代码最擅长输出html代码。
servlet:
1)接收参数
2)处理业务逻辑
3)把结果保存到域对象中
4)跳转到jsp页面
Jsp:
1)从域对象取出数据
2)把数据显示到浏览器
servlet的数据 -> jsp页面
List<Contact> 使用域对象 共享数据
上一篇: logback配置文件