JSP注释
- 格式:ppt
- 大小:57.00 KB
- 文档页数:3
JSP脚本JSP通用语法规则JSP通用语法规则包括:JSP的标记规则、JSP元素中的相对路径规则、JSP元素中的转义规则。
JSP的标记规则每一个JSP元素都有一个起始标记和一个结束标记。
起始标记为“<%”或“<jsp:”,结束标记为“%>”或“/>”。
比如:<jsp:include page=”/index.jsp”/><%if(sum>0) sum=sum+42;%>注起始标记和结束标记一定要在同一个JSP页面中,且成对出现JSP元素中的相对路径规则在JSP中可以使用相对路径,相对路径是以字符“/“开头的。
比如:/test/testChinese.jsp——说的实际路径是“C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\test\testChinese.jsp “JSP元素中的转义规则我们已经知道,“<%”和“%>”是JSP中的标记字符,那么如果我们想在程序中用到这两个字符,该怎么区分呢?这就要用到转移规则了。
这里的转义规则包括:“’”被转义为“\’”“””被转义为“\””“\”被转义为“\\”“<%”被转义为“<\%”“%>”被转义为“%\>”下面我们通过一个小例子来看看。
其显示结果如图2-2所示。
图2-2 JSP转义规则示例上面显示结果,可以看到,本来是JSP标记语言的字符,也都显示出来了,实现这样功能的程序代码是怎么样的呢?02-02.jsp文件源代码:<html><head><title>JSP转义规则的例子</title></head><%@page contentType="text/html;charset=gb2312" %><body><p><%out.print("测试要避免冲突的字符串1:\'");%><p><%out.print("测试要避免冲突的字符串2:\"");%><p><%out.print("测试要避免冲突的字符串3:\\");%><p><%out.print("测试要避免冲突的字符串4:%\>");%></p></body></html>JSP脚本元素语法讲了语法规则以后,我们来看看脚本元素,JSP中的脚本元素有四种:注释、声明、表达式和程序段。
JSP中的三种注释
1、JSP单行注释:
JSP单行注释是在匹配标记“<%--”后面添加注释文字,直至行末为止,使用这种注释方法,注释时不需要使用结束字符。
JSP多行注释是用两个标记"<%--"起始多行注释,"--%>"结束多行注释,它的行内的任何字符都会被忽略而不会出现在输出结果中。
JSP HTML注释是使用HTML注释“<!-- ”起始,“--> ”结束,它的行内的任何字符都会被忽略而不会出现在输出结果中。
不同于JSP单行注释和多行注释,JSP HTML 注释是通过 HTML注释可以跨行,除了在JSP脚本内部使用之外,HTML注释还可以在HTML 标签之间使用。
Jsp详解1.简介2.Jsp的运行原理3.Jsp的语法1.Jsp模板元素2.Jsp中的脚本表达式3.Jsp中的脚本片段4.Jsp的声明5.Jsp注释6.Jsp指令1.首先我们来看一下page指令的用法2.下面在来看一下include指令3.最后来看一下taglib指令7.Jsp中内置的9个隐式对象8.JSP标签库1.jspinclude标签2.jspforward标签3.jspparam或者jspparams标签4.jspuseBean标签jspsetProperty标签jspgetProperty标签9.Jsp中怎么排查错误简介:JSP全称是JavaServer Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。
JSP这门技术的最大的特点在于,写jsp就像在写html,但:它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据。
相比servlet而言,servlet很难对数据进行排版,而jsp除了可以用java代码产生动态数据的同时,也很容易对数据进行排版。
不管是JSP还是Servlet,虽然都可以用于开发动态web资源。
但由于这2门技术各自的特点,在长期的软件实践中,人们逐渐把servlet作为web应用中的控制器组件来使用,而把JSP技术作为数据显示模板来使用。
其原因为,程序的数据通常要美化后再输出:让jsp既用java代码产生动态数据,又做美化会导致页面难以维护。
让servlet既产生数据,又在里面嵌套html代码美化数据,同样也会导致程序可读性差,难以维护。
因此最好的办法就是根据这两门技术的特点,让它们各自负责各的,servlet只负责响应请求产生数据,并把数据通过转发技术带给jsp,数据的显示jsp来做。
Jsp的运行原理:目标:Web服务器是如何调用并执行一个jsp页面的?Jsp页面中的html排版标签是如何被发送到客户端的?Jsp页面中的java代码服务器是如何执行的?Web服务器在调用jsp时,会给jsp提供一些什么java对象?思考:JSP为什么可以像servlet一样,也可以叫做动态web资源的开发技术?其实Jsp就是一个Servlet,所以我们要先介绍Servlet的相关技术,当我们第一次访问Jsp 的时候,Jsp引擎都会将这个Jsp翻译成一个Servlet,这个文件存放在Tomcat中的work目录中,这里,我们新建一个MyJsp.jsp页面,然后访问以下,我们看一下翻译后的源码:1.<%@ page language="java"import="java.util.*"pageEncoding="utf-8"%>2.3.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML4.01 Transitional//EN">4.<html>5.<head>6.7.<title>My JSP 'MyJsp.jsp' starting page</title>8.9.</head>10.11.<body>12. This is my JSP page. <br>13.</body>14.</html>1.package org.apache.jsp;2.3.import javax.servlet.*;4.import javax.servlet.http.*;5.import javax.servlet.jsp.*;6.import java.util.*;7.8.public final class MyJsp_jsp extends org.apache.jasper.runtime.HttpJspBase9.implements org.apache.jasper.runtime.JspSourceDependent {10.11.private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory();12.13.private static java.util.List _jspx_dependants;14.15.private javax.el.ExpressionFactory _el_expressionfactory;16.private org.apache.AnnotationProcessor _jsp_annotationprocessor;17.18.public Object getDependants() {19.return _jspx_dependants;20. }21.22.public void _jspInit() {23. _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();24. _jsp_annotationprocessor = (org.apache.AnnotationProcessor) getServletConfig().getServletContext().getAttribute(org.apache.AnnotationProcessor.class .getName());25. }26.27.public void _jspDestroy() {28. }29.30.public void _jspService(HttpServletRequest request, HttpServletResponse response)31.throws java.io.IOException, ServletException {32.33. PageContext pageContext = null;34. HttpSession session = null;35. ServletContext application = null;36. ServletConfig config = null;37. JspWriter out = null;38. Object page = this;39. JspWriter _jspx_out = null;40. PageContext _jspx_page_context = null;41.42.43.try {44. response.setContentType("text/html;charset=utf-8");45. pageContext = _jspxFactory.getPageContext(this, request, response,46.null, true, 8192, true);47. _jspx_page_context = pageContext;48. application = pageContext.getServletContext();49. config = pageContext.getServletConfig();50. session = pageContext.getSession();51. out = pageContext.getOut();52. _jspx_out = out;53.54. out.write("\r\n");55. out.write("\r\n");56. out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\r\n");57. out.write("<html>\r\n");58. out.write(" <head>\r\n");59. out.write(" \r\n");60. out.write(" <title>My JSP 'MyJsp.jsp' starting page</title>\r\n");61. out.write(" \r\n");62. out.write(" </head>\r\n");63. out.write(" \r\n");64. out.write(" <body>\r\n");65. out.write(" This is my JSP page. <br>\r\n");66. out.write(" </body>\r\n");67. out.write("</html>\r\n");68. } catch (Throwable t) {69.if (!(t instanceof SkipPageException)){70. out = _jspx_out;71.if (out != null && out.getBufferSize() != 0)72.try { out.clearBuffer(); } catch (java.io.IOException e) {}73.if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);74. }75. } finally {76. _jspxFactory.releasePageContext(_jspx_page_context);77. }78. }79.}我们看到,这个类继承了org.apache.jasper.runtime.HttpJspBase,要想看到这个类的源码,我1./*2. * Licensed to the Apache Software Foundation (ASF) under one or more3. * contributor license agreements. See the NOTICE file distributed with4. * this work for additional information regarding copyright ownership.5. * The ASF licenses this file to You under the Apache License, Version 2.06. * (the "License"); you may not use this file except in compliance with7. * the License. You may obtain a copy of the License at8. *9. * /licenses/LICENSE-2.010. *11. * Unless required by applicable law or agreed to in writing, software12. * distributed under the License is distributed on an "AS IS" BASIS,13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.14. * See the License for the specific language governing permissions and15. * limitations under the License.16. */17.18.package org.apache.jasper.runtime;19.20.import java.io.IOException;21.22.import javax.servlet.ServletConfig;23.import javax.servlet.ServletException;24.import javax.servlet.http.HttpServlet;25.import javax.servlet.http.HttpServletRequest;26.import javax.servlet.http.HttpServletResponse;27.import javax.servlet.jsp.HttpJspPage;28.import javax.servlet.jsp.JspFactory;29.30.import piler.Localizer;31.32./**33. * This is the super class of all JSP-generated servlets.34. *35. * @author Anil K. Vijendran36. */37.public abstract class HttpJspBase38.extends HttpServlet39.implements HttpJspPage40.41.42.{43.44.protected HttpJspBase() {45. }46.47.public final void init(ServletConfig config)48.throws ServletException49. {50.super.init(config);51. jspInit();52. _jspInit();53. }54.55.public String getServletInfo() {56.return Localizer.getMessage("");57. }58.59.public final void destroy() {60. jspDestroy();61. _jspDestroy();62. }63.64./**65. * Entry point into service.66. */67.public final void service(HttpServletRequest request, HttpServletResponse response)68.throws ServletException, IOException69. {70. _jspService(request, response);71. }72.73.public void jspInit() {74. }75.76.public void _jspInit() {77. }78.79.public void jspDestroy() {80. }81.82.protected void _jspDestroy() {83. }84.85.public abstract void _jspService(HttpServletRequest request,86. HttpServletResponse response)87.throws ServletException, IOException;88.}好吧,看到了,继承了HttpServlet类,所以说其实Jsp就是一个ServletJsp的语法:1.JSP模版元素2.JSP表达式3.JSP脚本片段4.JSP注释5.JSP指令6.JSP标签7.JSP内置对象8.如何查找JSP页面中的错误Jsp模板元素JSP页面中的HTML内容称之为JSP模版元素。
idea js方法注释
在 JavaScript 中,可以使用注释来解释代码的功能和目的。
注释不会被执行,只是给开发人员阅读和理解代码时提供帮助。
以下是几种常见的注释方法:
1. 单行注释:使用双斜线(//)开头的注释。
例如:
```javascript
// 这是一个单行注释
```
2. 多行注释:使用斜线加星号(/*...*/)包围的注释。
例如: ```javascript
/*
这是一个
多行注释
*/
```
3. 函数注释:对函数的注释通常放在函数定义的前面,描述函数的功能、参数和返回值等。
例如:
```javascript
/**
* 这是一个加法函数
* @param {number} a - 第一个数字
* @param {number} b - 第二个数字
* @returns {number} - 和
*/
function add(a, b) {
return a + b;
}
```
在上面的例子中,使用了 JSDoc 注释风格。
@param 表示一个参数,后面跟着参数名和说明,@returns 表示返回值,后面跟着返回值类型和说明。
除了上述常见的注释方法,还有一些特殊的注释风格和工具,如 TypeScript 中的类型注释、文档生成工具如 JSDoc、JSDoc 编辑器插件等,可以根据项目需求和开发团队的约定选择合适的方法。
注释的目的是提高代码的可读性和可维护性,因此在编写代码时,注释应该清晰、简洁而且准确。
JSP基本的语法、3个编译指令、7个动作指令、9个内置对象⽬录⼀、jsp概述JSP是java server page的缩写,其**==本质是⼀个简化的servlet**,是⼀种动态⽹页技术标准。
jsp页⾯是在HTML页⾯中嵌⼊java程序段。
使⽤jsp开发的应⽤程序能够跨平台。
⼆、jsp基本的语法2.1 jsp表达式jsp表达式⽤于向页⾯输出信息。
语法格式例如以下:<%= 表达式 %>如:<%= 5+6 %>注意:<%与=之间不能有空格,=与后⾯的表达式之间能够有空格,另外没有语句结束符号;。
2.2 jsp声明标识声明标识⽤语在jsp页⾯中定义全局的变量或者⽅法,通过声明标识定义的变量和⽅法能够被整个jsp页⾯訪问。
语法格式例如以下:<%!声明变量或者⽅法的代码%>如<%!String str = "test";%>注意:<%与!之间不能有空格,!与其后⾯的代码之间能够有空格。
2.3 jsp代码段代码⽚段就是嵌在jsp页⾯中的java代码或脚本代码。
会在页⾯请求的处理期间被运⾏,java代码能够实现定义变量、流程控制等功能。
脚本代码能够通过使⽤jsp内置对象在jsp页⾯输出内容、处理请求和响应、訪问session等,代码⽚段的语法格式例如以下:<% java代码或者脚本代码 %>2.4 jsp注释2.4.1 HTML注释HTML注释格式:<!-- html凝视 -->html凝视不会显⽰在⽹页中。
在浏览器中查看源代码的时候能够看到注释信息。
2.4.2 代码⽚段注释由于代码⽚段即为java代码或者脚本代码,代码⽚段的注释和java语法⼀样。
单⾏注释写在//之后,多⾏注释写在/* */ 之间,⽂档提⽰注释写在/**与 */之间。
//单⾏注释/*多⾏注释第⼀⾏多⾏注释第⼆⾏*//**⽂档注释*/2.4.3 隐藏注释html注释在查看⽹页源代码的时候能够看到,所以严格来说这样的注释并不安全,jsp提供的隐藏注释在浏览器和查看源代码的时候都看不到。
JSP的学习(3)——语法知识⼆之page指令 本篇接上⼀篇《》,继续来学习JSP的语法。
本⽂主要从JSP指令中的page指令,对其各个属性进⾏详细的学习:JSP指令: JSP指令是为JSP引擎⽽设计的,JSP指令不产⽣任何可见输出,只是告诉在转换成Servlet的过程中如何处理JSP页⾯中的其余部分。
在JSP 2.0 规范中共定义了三个指令: 1) page指令 2) include指令 3) taglib指令 taglib指令是导⼊标签库的指令,以后会介绍到。
JSP指令格式:<%@指令(如page、include或taglib) 属性1="属性值" 属性2="属性值" … %>例如:<%@page contentType = "text/html;charset=utf-8" %> 如果⼀个指令有多个属性,这多个属性可以写在⼀个指令中,也可以分开写。
例如:1<%@page contentType = "text/html;charset=utf-8" %>2<%@page import = "java.util.Date" %>或者写成: <%@page contentType="text/html;charset=utf-8" import="java.util.Date" %>page指令 page指令⽤于定义JSP页⾯的各种属性,⽆论page指令出现在JSP页⾯中的什么地⽅,它作⽤的都是整个JSP页⾯,为了保持程序的可读性和良好习惯,page指令最好都放置在整个page页⾯的起始位置。
page指令包含以下属性(属性值为⽰例): (1). language = “java ” 指⽰JSP页⾯如果嵌⼊的代码为Java代码。
在JavaScript中,有三种注释的写法:
1. 单行注释:使用两个斜杠(//)开始,直到行尾。
例如:
```javascript
// 这是一个单行注释
var x = 5; // 这也是一个单行注释
```
2. 多行注释:使用斜杠和星号(/* ... */)包裹注释内容。
例如:
```javascript
/*
这是一个多行注释。
你可以跨越
多行文本,直到注释结束。
*/
var x = 5;
```
3. JSDoc注释:这是一种特殊的注释风格,用于生成API文档。
它以一个斜杠和一个星号(/**)开始,并以一个星号
和一个斜杠(*/)结束。
例如:
```javascript
/**
* 这是一个JSDoc注释。
你可以使用这种注释来生成API 文档。
* @param {number} x - 参数x的描述
* @returns {number} - 返回值的描述
*/
function myFunction(x) {
return x * 2;
}
```
请注意,虽然多行注释和JSDoc注释不是JavaScript语言本身的特性,但它们在JavaScript开发中非常常见,并被广泛使用。
jsp三⼤指令标记,七⼤动作标记、详解。
JSP的基本构成JSP页⾯主要由指令标签,注释,嵌⼊Java代码,JSP动作标签,HTML标记语⾔等五个元素组成。
3个指令标签1 、page指令page指令⽤户定义JSP页⾯中的全局属性,Eg:<%@ page attr1=”value1” atrr2=”value2”.......%>page指令对整个页⾯有效,包括静态的包含⽂件,但page指令不能⽤于被动态包含的⽂件,例如使⽤<jsp:include>包含的⽂件。
在⼀个JSP页⾯中可以使⽤多个page指令,但page指令中的属性只能出现⼀次(import属性除外)。
page指令的常⽤属性如下:(1) language属性该属性⽤于设置JSP页⾯使⽤的语⾔,⽬前只⽀持Java语⾔。
例:<%@ page language=”java” %>(2) extends属性该属性⽤于设置JSP页⾯所继承的Java类,JSP和Servlet都可以继承指定的⽗类,但该属性并不常⽤.(3) import属性该属性⽤于设置JSP所导⼊的类包,JSP页⾯可以嵌⼊Java代码⽚段,这些Java代码在调⽤API时需要导⼊相应的类包。
例: <%@page import=”java.util.*” %>(4) pageEncoding属性该属性⽤于定义JSP页⾯的编码格式,指定的⽂件编码格式。
例:<%@ page pageEncoding=”UTF-8” %>(5) contentType属性该属性⽤于设置JSP页⾯的MIME类型和字符编码,浏览器会根据些解释页⾯。
例:<%@ pagecontentType=”text/html;charset=utf-8” %>(6) session属性该属性⽤于定义JSP页⾯是否使⽤session会话对象,其值是boolean类型,默认值为true. Eg:<%@ page session=”true” %>(7) buffer属性该属性⽤于设置out对象所使⽤的缓冲区⼤⼩,默认⼤⼩是8KB,单位只能是8的倍数。
jsp页⾯的七个组成部分jsp页⾯的七个组成部分1. 静态内容:前端内容⼀⾏⼀⾏翻译成 out.write(“前端内容”);2. 指令: <%@指令名属性名=”值”%>第⼀个指令是@page@page指令的第⼀个标准⽤法,告诉servlet容器,这是⼀个jsp页⾯pageEncoding 指页⾯⽂本的字符集编码contentType 告诉Browser和Servlet端,要使⽤哪个格式哪个字符集进⾏解析独⽴的@page指令,可以使⽤import属性,导⼊某个package中的类。
@page指令导⼊包,会翻译为:3. 表达式:<%=表达式%>被翻译成 out.print(表达式);4. 代码⽚段: <%java代码%>翻译后,复制到_jspServiet()⽅法中。
5. 声明:<%! 类成员 %>翻译后在外⾯,不在_jspService⽅法⾥⾯,⽤<%! 变量常量⽅法 >声明的属于类级别的,与_jspService同级别,所以不在_jspService⽅法⾥⾯。
6. 注释:<%-- jsp注释内容 --%>Html的注释,会被翻译成 out.write();Jsp注释,不会被翻译到.java的servlet类中代码⽚段中的java注释,还会出现在servlet类中7. 动作:<jsp:动作名></jsp:动作名>项⽬使⽤:@include指令include动作将公共内容部分,放在某个jsp页⾯。
需要引⽤公共内容部时,只要在该页include即可。
8. jsp执⾏过程。
JSP三种常⽤注释
隐藏注释
隐藏注释是JSP的标准注释,写在JSP程序中,⽤于描述和说明JSP程序代码,在发布JSP⽹页时完全被忽略,也不会传送到客户浏览器上。
语法格式:<%--注释语句--%>
页⾯运⾏效果及查看源⽂件
HTML注释
HTML注释是在发布⽹页时可以在浏览器源⽂件窗⼝中看到,写在JSP程序中,即注释的内容会被传输到客户端浏览器中。
语法格式:<!--注释语句[<%=表达式%>]-->(注释语句是⽂字说明,表达式为JSP表达式)
页⾯运⾏效果及查看源⽂件
Java注释
在JSP程序中,也遵循Java语⾔本⾝的注释规则对代码进⾏注释,这样的注释和隐藏注释相似,在发布⽹页时完全忽略,在浏览器的源⽂件窗⼝也看不到注释内容。
语法格式:<%/*注释语句*/%>或<%//注释语句%>
页⾯运⾏效果及查看源⽂件。