[Java Web 王者归来]读书笔记3

第四章 JSP

JSP基本语法

1 JSP中嵌入Java 代码

<% Java code %>

2 JSP中输出

<%= num %>

3 JSP 中的注释

<%--

--%>

4 JSP中生命方法和属性(全局变量)

<%!

private String name;

public String getName();

%>

5 JSP中的if, while, for, return, break语法即为包含在<%%>中的java代码

JSP指令

JSP指令用来声明JSP页面的一些属性,如编码方式、文档类型,JSP指令包含在<%@ 。。。%>中,基本语法为:

<%@ directive {attribute=value}* %>

Page指令:

例如:<%@ page language="java" contentType="text/html"; charset=utf-8"%>,此处的directive(指令)为page,所以此处为page指令

include指令:

用于引入应用程序内的另一个jsp文件或者html文件,基本语法形式为<%@ include file="***.jsp/html" %>.可用于导入页眉页脚等。注意与include行为的区别。include指令是“先包含(将包含的jsp导入到当前的文件中),再运行”,include行为是“先运行,再包含(运行时将include的文件单独执行,将结果放入当前jsp中)”

taglib指令:

JSP支持标签技术,使用标签功能能够实现视图代码的重用,用少量的代码是想很复杂的显示效果,要使用标签功能必须先声明标签库以及标签前缀。taglib用来指明JSP页面中使用的JSP标签库。

taglib有两个属性,uri为类库的地址,prefix为标签的前缀,如:<%@ taaglib uri="http:java.sun.com/jsp/jstl/core" prefix="c" %>

JSP行为

JSP的行为是JSP内置的一组标签,JSP行为是对重用的JSP功能的抽象和封装,包括自定义行为和标准行为。自定义行为就是JSP的自定义标签。JSP行为只需要书写很少量的代码就能用JSP提供的丰富功能。

1 include行为:

用于运行时包含某个文件,如果被包含的是jsp程序,则先执行jsp程序,然后再将执行结果包含进来。语法为:<jsp:include page="***.jsp" flush="true"/>

2 Java Bean相关的行为:

useBean行为,<jsp:useBean id="" class="" scope=""/>,其中id指明java bean的名称,在JSP中可用用该id值引用java bean对象。class代表java bean类的全名。scope代表该java bean对象的范围,可以设置为page、request、session、application。

与其对应的是设置和获取java bean的行为:<jsp:setProperty name="" property="">, <jsp:getProperty name="" property=""/>

3 jsp中嵌入Applet的jsp行为:

<jsp:plugin/>用于在jsp中定义applet,并定义applet的宽度高度等属性,<jsp:params />定义一组一对多的参数, <jsp:param />定义单个的参数, <jsp:fallback />用于定义不支持Applet的替代信息。

4 <jsp:forward>跳转行为:

与servlet中request.getRequestDispatcher("someServlet").forward(request, response)相似,jsp的跳转语法如下为,

<jsp:forward page="/a.jsp">

    <jsp:param name="p1" value="v1" />

    <jsp:param name="p2" value="v2" />

</jsp:forward>

5 <jsp:directive>行为

<jsp:directive />行为相当于jsp指令,例如:<jsp:directive.page>行为相当于<%@ page%>指令。现在的java web平台倾向于使用jsp行为替代jsp指令,因为jsp行为更清晰。

JSP隐藏对象

jsp内置了9个隐藏对象:out, request, response, config, session, application, page, pageContext and exception.

JSP配置

EL表达式的使用!!!

原文地址:https://www.cnblogs.com/stephen-init/p/3585569.html