Servlet作用域&JSP

2016-06-12  本文已影响328人  NextGame

Servlet作用域&JSP

为什么Servlet之间需要交互


DeleteServlet删除列表中某一项后要返回到ListServlet

Web组件之间的跳转

request.getRequestDispatcher(String path).forward(request, response);
// 参数
// path表明目标资源名称(需要跳转到哪里)
response.sendRedirect(String path);
// 参数
// path表示目标资源名称

Servlet与JSP的数据共享作用域


名称 类型 描述
pageContext(page) PageContext 表示当前JSP页面的范围
request HttpServletRequest 表示当前请求的范围,只是共享一个请求中的数据。
session HttpSession 表示当前回话的范围,只要浏览器不关闭,session就是同一个对象
application ServletContext Tomcat关闭applicaiton对象才销毁

ServletContext接口和常用方法


ServletContext接口,表示的是当前应用对象,Tomcat启动的时候会创建一个对象,Tomcat关闭的时候对象销毁

在整个Web的生命中期中,只有一个对象,表示的就是当前应用

// 1.在Servlet中
ServletContext ctx = super.getServletContext();
// GenericServlet实现了Servlet和ServletConfig接口,而getServletContext是GenericServlet的一个方法

// 2.通过请求对象获取
// Servlet3.0之后
ServletContext ctx2 = req.getServletContext();
// Servlet3.0之前
ServletContext ctx3 = req.getSession.getServletContext();
// 获取上下文路径
String getContextPath();
// 根据指定的相对路径获取到绝对路径
String getRealPath(String path);
<!-- 使用全局初始化参数 -->
<context-param>
  <param-name>name</param-name>
  <param-value>neld</param-value>
</context-param>
// 根据指定的名称获取全局初始化参数
String getInitParameter(String name);
// 获取所有全局初始化参数的名称
Enumeration getInitParameterNames();

JSP


JSP底层原理分析


JSP三大指令


标准指令:设定JSP网页的个整体配置信息

<%@ 指令名称 属性名=属性值 属性名=属性值 %>

page

定义JSP页面的各种属性

import:导入JSP中的Java脚本使用到的类或者包,一个import可以导入多个包,需要用逗号分隔。

session:指示JSP页面是否创建HttpSession对象,默认值是true

buffer:指示JSP用的出书流的缓冲大小,默认是8KB

errorPage:指当前页面出错以后转向的页面,需要在web.xml中配置

<error-page>
  <excepiton-type>java.lang.Exception</exception-type>
  <location>/error.jsp</location>
</error-page>

isErrorPage:指示当前页面是否产生Exception对象

contenType:指定当前页面的MIME类型,作用与Servlet中的response.setContentType一致

pageEncoding:通知引擎读取JSP的时候采用的编码

isELIgnored:是否忽略EL表达式,默认是false

include

静态包含,在开发的时候,如果能使用静态的则使用静态的,而不使用动态的

包含其他组件

<%@include file=""%>其中file为指定要包含的目标组件。路径如果以"/"(当前应用),就是绝对路径。

把目标组件的内容加到源组件中,输出结果

采用动作元素:<jsp:include page="" /> 路径如果以"/"(当前应用)就是绝对路径。

taglib

引入外部的标签

<%@taglib uri="标签名称空间" prefix="前缀"%>

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

JSP九大内置对象和四大作用域


名称 类型 描述
request HttpServletRequest 当前的请求对象
response HttpServletResponse 当前的响应对象
pageContext PageContext 表示当前的JSP页面对象
session HttpSession 当前会话对象,在JSP中必须设置session="true"
exception Throwable 表示异常对象,必须在JSP中设置isErrorPage="true"
application ServletContext 表示当前应用
config ServletConfig 表示JSP的配置对象
out JspWriter 表示输出流对象
page Object 表示当前页面对象
名称 类型 描述
pageContext PageContext 表示当前的JSP页面对象
request HttpServletRequest 当前的请求对象
session HttpSession 当前会话对象,在JSP中必须设置session="true"
application ServletContext 表示当前应用

JSP中静态包含和动态包含的区别


在JSP中使用静态包含

<%@include file="被包含的页面">

在翻译阶段就已经合并在一起了,只有一个Java文件

在JSP中使用动态包含

<jsp:include page="被包含的页面">

在运行阶段合并在一起,有两个Java文件

上一篇下一篇

猜你喜欢

热点阅读