1.JSP脚本
格式:<%Java脚本%>
JSP脚本中可以包含任何可执行的Java代码。
在JSP脚本中也可以声明变量,但在JSP脚本中声明的变量是局部变量,不能使用public、private修饰,也不能使用static修饰。
JSP脚本中不能定义方法。
2.JSP注释
格式:<%-- JSP注释 --%>
HTML注释:<!-- HTML注释 -->
3.JSP声明
格式:<%! 声明部分 %>
在JSP声明部分定义的变量和方法可以使用private、public等访问控制符修饰,也可以使用static,但不能使用abstract修饰。因为抽象方法将导致JSP对应的Servlet
变成抽象类,不能被实例化。
4.输出JSP表达式
格式:<%= 表达式 %>
作用相当于out.pringln()
注:输出JSP表达式语句后不能有分号
5.编译指令
JSP编译指令是通知JSP引擎的处理消息,它不直接生成输出。???编译指令在将JSP编译成Servlet时起作用。
常见的编译指令:
◆page:该指令是针对当前页面的指令。
◆include:用于指定包含另一个页面。
◆taglib:用于定义和访问自定义标签。
格式:<%@ 编译指令名 属性名="属性值" ... %>
<1>.page指令
page指令常用属性:language、extends、import、session、buffer、autoFlush、info、errorPage、isErrorPage、contextType、pageEncoding
<2>.include指令
静态包含:包含页面将在编译时完全包含了被包含页面的代码。
如果被嵌入的页面需要经常改变,建议使用<jsp:include>操作指令(动态包含)。
由于静态包含还会将被包含页面的编译指令也包含进来,所以两个页面的编译指令如果冲突,那么页面就会出错。
<3>.taglib指令
7.JSP的七个动作指令
动作指令是运行时的动作。
◆jsp:forward--执行页面转向,将请求的处理转发到下一个页面。
格式:
<jsp:forward page="relativeURL|<%=expression%>">
<jsp:param name="paramName" value="paramValue"/>
</jsp:forward>
增加的请求参数的值可以通过HttpServletRequest类的getParameter()方法获得。
◆jsp:param--用于传递参数,必须与其它支持参数的标签一起使用。
◆jsp:include--用于动态引入一个JSP页面
格式:
<jsp:include page="relativeURL|<%=expression%>" flush="true">
<jsp:param name="paramName" value="paramValue"/>
</jsp:include>
flush用于指定输出缓存是否转移到被导入的文件中。
静态导入<% include ... />和动态导入<jsp:include ... />的三点区别:
<1>.静态导入是将被导入页面的代码完全融入,两个页面完全融合成一个Servlet;而动态导入则是在Servlet中使用include方法来引入被导入页面的内容。
<2>.静态导入时被导入页面的编译指令会起作用;而动态导入时被导入页面的编译指令则失去了作用,只是插入被导入页面的body部分。
<3>.动态还可以包含额外的参数。
◆jsp:plugin
◆jsp:useBean--创建一个JavaBean实例
格式:
<jsp:useBean id="name" class="className" scope="page|request|session|application" />
id:JavaBean的实例名
class:JavaBean的实现类
scope:指定JavaBean实例的作用范围
page--该JavaBean实例仅在此页面有效
request--该JavaBean实例在本次请求中有效
session--该JavaBean实例在本次会话中有效
application--该JavaBean实例在本应用中一直有效
◆jsp:setProperty--设置JavaBean实例的属性值
格式:
<jsp:setProperty name="beanName" property="propertyName" value="value" />
◆jsp:getProperty--输出JavaBean实例的属性值
格式:
<jsp:getProperty name="beanName" property="propertyName" />
8.JSP脚本中的9个内置对象
内置对象的实质:它们要么是_jspService()方法的形参,要么是_jspService()方法的局部变量
JSP内置对象只能在JSP脚本、JSP输出表达式中使用
◆application
代表JSP所属的Web应用本身,可用于在JSP页面,或在Servlet之间交换信息。
常用方法:getAttribute(String attrName),setAttribute(String attrName, String attrValue),getInitParameter(String param)
◆config
◆exception
只有异常处理页面(isErrorPage属性为true)对应的Servlet才会初始化exception对象
JSP脚本包含的所有可能出现的异常都可交给错误处理界面处理。
◆out
代表JSP页面的输出流,用于输出内容,形成HTML页面
◆page
◆pageContext
代表该JSP页面上下文,使用该对象可以访问页面中的共享数据
◆request
该对象封装了一次请求,客户端的请求参数都被封装在该对象内
常用方法:getParameter(String name),getParameterValues(String name),setAttribute(String name, Object value),getAttribute(String name),
setCharactorEncoding(String env)
◆response
代表服务器对客户端的响应,通常用于重定向
常用方法:getOutoutStream(),sendRedirect(String location)
<1>.生成非字符响应
<2>.重定向
重定向会丢失所有的请求参数和request范围的属性。因为重定向将生成第二次请求,与前一次请求不在同一个request范围内。
执行重定向动作后,地址栏会变成重定向后的目标URL
<3>.增加Cookie
◆session
代表一次会话。当客户端浏览器与站点建立连接时,会话开始;当客户端关闭浏览器时,会话结束
常用方法:getAttribute(String attrName),setAttribute(String attrName, String attrValue)
9.JSP自定义标签
自定义标签的主要作用:取代丑陋的JSP脚本
在JSP2中开发标签库的步骤:开发自定义标签处理类-->建立一个*.tld文件,每个*.tld文件对应一个标签库,每个标签库可以包含多个标签-->在JSP中使用标签
(开发标签库是较为高深的技术,待以后研习)
10.JSTL
JSTL:JSP Standard Tag Library,既JSP标准标签库
使用JSTL的核心标签库:
第一步--导入标签库:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<1>.<c:out />标签
<c:out value="value(可以是EL表达式)" default="默认值" />
JSP笔记
最新推荐文章于 2024-09-14 21:18:53 发布