jsp隐含对象
每个jsp页面在第一次访问的时候,服务器都会把它交给jsp引擎去处理,将jsp页面中的java代码翻译到_JapServlet方法中,然后按照servlet的方式去处理请求,由于JSP第一次访问时会翻译成Servlet,所以第一次访问通常会比较慢,但第二次访问,JSP引擎如果发现JSP没有变化,就不再翻译,而是直接调用,所以程序的执行效率不会受到影响。
JSP引擎在调用JSP对应的_jspServlet时,会传递或创建9个与web开发相关的对象供_jspServlet使用。JSP技术的设计者为便于开发人员在编写JSP页面时获得这些web对象的引用,特意定义了9个相应的变量,开发人员在JSP页面中通过这些变量就可以快速获得这9大对象的引用。
这九个对象包括
request://是Servlet里的request
response: //是Servlet里的response
session: //是Servlet里的session
application: //是servlet里的servletContext
config: //是Servlet里的servletConfig
page: //是Servlet自己
exception: //异常,只有errorPage才有
out://JSP页面输出
pageContex//pageContext对象是JSP中最重要的一个对象,它代表JSP页面的运行环境
- jsp映射
jsp也可以向servlet那样配置映射
<servlet>
<servlet-name>JspServletName</servlet-name>
<jsp-file>/jsp/jspname.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>JspServletName</servlet-name>
<url-pattern>/xxx/yyy</url-pattern>
</servlet-mapping>
- 四个域对象
web开发公式用到四个域对象
pageContext(称为page域): //pageContext中存的数据在页面范围都可以取出
request(称为request域): //request中存的数据在请求范围内都可以取出
session(称为session域): //session中存的数据在会话范围内都可以取出
servletContext(称为application域)://servletContext中存的数据在整个应用程序范围内都可以取出
这四个对象的生命周期
request:,一次请求可用,如果客户机向服务器发请求产生的数据,用户看完就没用了,向这样的数据就存在request域中。如用户看的新闻。
session:一次会话可用,如果客户机向服务器发请求产生的数据,用户用完了等一会儿还有用,向这样的数据就存在session域中。如用户购买的东西,因为结账还要用到。
servletContext:application一直可用,如果客户机向服务器发请求产生的数据,用户用完了还要给其他用户用,向这样的数据就存在servletContext域中。如聊天室中说出的话,因为话要在自己页面中看到,别人也要看到。
实际中,能用小的容器就不要用大的,即request能满足就不要用session,session能满足就不要用servletContext