---Jsp(二)隐含对象和四个域对象

时间:2022-10-25 13:04:36

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页面的运行环境 
  1. 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>  
  1. 四个域对象

web开发公式用到四个域对象

pageContext(称为page域)//pageContext中存的数据在页面范围都可以取出 
request(称为request域)//request中存的数据在请求范围内都可以取出 
session(称为session域)//session中存的数据在会话范围内都可以取出 
servletContext(称为application域)//servletContext中存的数据在整个应用程序范围内都可以取出 

这四个对象的生命周期

request:,一次请求可用,如果客户机向服务器发请求产生的数据,用户看完就没用了,向这样的数据就存在request域中。如用户看的新闻。

session:一次会话可用,如果客户机向服务器发请求产生的数据,用户用完了等一会儿还有用,向这样的数据就存在session域中。如用户购买的东西,因为结账还要用到。

servletContext:application一直可用,如果客户机向服务器发请求产生的数据,用户用完了还要给其他用户用,向这样的数据就存在servletContext域中。如聊天室中说出的话,因为话要在自己页面中看到,别人也要看到。

实际中,能用小的容器就不要用大的,即request能满足就不要用session,session能满足就不要用servletContext