Loading... 学习JSP语法的笔记,这份笔记参考了[菜鸟教程](https://www.runoob.com/jsp/jsp-syntax.html),部分表格直接引用,已特别注明。 ## 脚本程序 脚本程序可以包含任意量的Java语句,语句需要以分号结尾,就像{语句块}一样。 ```jsp <% 代码片段 %> ``` 等价形式 ```xml <jsp:scriptlet> 代码片段 </jsp:scriptlet> ``` ## 声明语句 声明语句可以声明一个或多个字段、方法以便在后面的Java程序中使用。声明语句可以有多个,每个语句需要以分号结尾。 ```jsp <%! 声明语句1; 声明语句2; %> ``` 等价形式 ```xml <jsp:declaration> 声明语句 </jsp:declaration> ``` ### 表达式语句 表达式语句会被转换成String,然后插入到相应的地方,表达式语句不需要以分号结尾。 ```jsp <%= 表达式语句 %> ``` 等价形式 ```xml <jsp:expression> 表达式语句 </jsp:expression> ``` ## 注释 | 语法 | 描述 | | -------------- | -------------------------------------------- | | <%-- 注释 --%> | JSP注释,注释的内容不会发送给浏览器。 | | \<!-- 注释 --> | HTML注释,注释内容在浏览器网页源代码中可见。 | ## JSP指令 <div class="preview"> <div class="post-inser post box-shadow-wrap-normal"> <a href="https://www.runoob.com/jsp/jsp-directives.html" target="_blank" class="post_inser_a no-external-link no-underline-link"> <div class="inner-content" style="margin-left: 10px;"> <p class="inser-title">JSP 指令</p> <div class="inster-summary text-muted"> </div> </div> </a> <!-- .inner-content #####--> </div> <!-- .post-inser ####--> </div> JSP指令用来设置与整个JSP页面相关的属性。 ```jsp <%@ directive attribute="值" %> ``` 简要总结[^1] | 指令 | 描述 | | ------------------ | --------------------------------------------------------- | | <%@ page ... %> | 定义页面的依赖属性,比如脚本语言、error页面、缓存需求等等 | | <%@ include ... %> | 包含其他文件 | | <%@ taglib ... %> | 引入标签库的定义,可以是自定义标签 | ## JSP行为 JSP行为标签使用XML语法结构来控制servlet引擎。它能够动态插入一个文件,重用JavaBean组件,引导用户去另一个页面,为Java插件产生相关的HTML等等。[^2] [^2]: 目前这段话还不理解,直接引用自菜鸟教程,链接同上。 ```jsp <jsp:action_name attribute="值" /> ``` 一些可用的JSP行为标签:[^1] | **语法** | **描述** | | --------------- | ---------------------------------------------------------- | | jsp:include | 用于在当前页面中包含静态或动态资源 | | jsp:useBean | 寻找和初始化一个JavaBean组件 | | jsp:setProperty | 设置 JavaBean组件的值 | | jsp:getProperty | 将 JavaBean组件的值插入到 output中 | | jsp:forward | 从一个JSP文件向另一个文件传递一个包含用户请求的request对象 | | jsp:plugin | 用于在生成的HTML页面中包含Applet和JavaBean对象 | | jsp:element | 动态创建一个XML元素 | | jsp:attribute | 定义动态创建的XML元素的属性 | | jsp:body | 定义动态创建的XML元素的主体 | | jsp:text | 用于封装模板数据 | ## 预定义对象 JSP内置了一些变量,类似多态基础中父类定义的字段。[^1] | **对象** | **描述** | | ----------- | ------------------------------------------------------------ | | request | **HttpServletRequest**类的实例 | | response | **HttpServletResponse**类的实例 | | ou | **PrintWriter**类的实例,用于把结果输出至网页上 | | session | **HttpSession**类的实例 | | application | **ServletContext**类的实例,与应用上下文有关 | | config | **ServletConfig**类的实例 | | pageContext | **PageContext**类的实例,提供对JSP页面所有对象以及命名空间的访问 | | page | 类似于Java类中的**this**关键字 | | Exception | **Exception**类的对象,代表发生错误的JSP页面中对应的异常对象 | ------ ## 控制流语句 ### 判断语句 #### if-else 语句 ```jsp <% if (条件表达式) { %> <!-- html语句 --> <% } else { %> <!-- html语句 --> <% } %> ``` #### switch-case 语句 ```jsp <% switch(n) { case 0: // java语句 break; default: // java语句 } %> ``` ### 循环语句 #### for 循环 ```jsp <%for (;;;) { %> <!-- html语句 --> <%}%> ``` #### while 循环 ```jsp <%while (条件表达式) { %> <!-- html语句 --> <%/* 修改循环条件*/%> <%}%> ``` [^1]: 表格摘自菜鸟教程,链接同上。 最后修改:2020 年 03 月 27 日 © 允许规范转载 赞 0 如果觉得我的文章对你有用,请随意赞赏