HttpJspBase类是担任HttpServlet的,所以HttpJspBase类是一个Servlet,而C1_jsp又是担任HttpJspBase类的,所以C1_jsp类也是一个Servlet,所以当欣赏器会见处事器上的C1.jsp页面时,其实就是在会见C1_jsp这个Servlet,C1_jsp这个Servlet利用_jspService这个要领处理惩罚请求。
2.JSP的根基语法
2.1 JSP模板元素
网页的静态内容。如:HTML标签和文本。
2.2 JSP剧本元素
(1)JSP Scriptlets(剧本片段)用于在JSP页面中编写多行Java代码。语法:
<% java代码(变量、要领、表达式等 ) %>
<% int sum=0;//声明变量 /*编写语句*/ for (int i=1;i<=100;i++){ sum+=i; } out.println("<h1>Sum="+sum+"</h1>"); %>
JSP剧本片段中只能呈现java代码,不能呈现其它模板元素, JSP引擎在翻译JSP页面中,会将JSP剧本片段中的Java代码将被原封不动地放到Servlet的_jspService要领中。JSP剧本片段中的Java代码必需严格遵循Java语法,譬喻,每执行语句后头必需用分号(;)竣事。在一个JSP页面中可以有多个剧本片段,在两个或多个剧本片段之间可以嵌入文本、HTML标志和其他JSP元素。多个剧本片段中的代码可以彼此会见,犹如将所有的代码放在一对<%%>之中的环境。如:out.println(x);单个剧本片段中的Java语句可以是不完整的,可是,多个剧本片段组合后的功效必需是完整的Java语句。
<% for (int i=1; i<5; i++) { %> <H1>:8080/JavaWeb_Jsp_Study_20140603/</H1> <% } %>
(2)JSP声明
JSP页面中编写的所有代码,默认会翻译到Servlet的service要领中,而JSP声明中的java代码会被翻译到_jspService要领外面。
<%! java代码:界说变量可能要领 %>
多个静态代码块、变量和要领可以界说在一个JSP文件中,也可以别离单独界说在多个JSP声明中。
JSP隐式工具的浸染范畴仅限于Servlet的_japService要领。所以在JSP声明中不能利用这些隐式工具。
JSP声明案例:
<%! static { System.out.println("loading Servlet!"); } private int globalVar = 0; public void jspInit(){ System.out.println("initializing jsp!"); } %> <%! public void jspDestroy(){ System.out.println("destroying jsp!"); } %>
(3)JSP 表达式
JSP剧本表达式(expression)用于将措施数据输出到客户端,他将要输出的变量可能表达式直接封装在以<%= %>标志中,语法为:
<%=expression%>
举例:输出当前系统时间:
<%= new java.util.Date() %>
JSP引擎在翻译剧本表达式时,会将措施数据转成字符串,然后在相应位置用out.print(...)将数据输给客户端。
JSP剧本表达式的变量可能表达式后不能有分号(;)。
3.JSP注释
(1)显式注释:直接利用HTML气势气魄的注释:<!- - 注释内容- -> 特点:不安详,费流量;HTML的注释在欣赏器中查察源文件的时候是可以看获得的
(2)隐式注释:直接利用JAVA的注释://、/*……*/
JSP本身的注释:<%- - 注释内容- -%> 特点:安详,省流量
JAVA注释和JSP注释在欣赏器中查察源文件时是看不到注释的内容的
<!--这个注释可以瞥见--> <% //JAVA中的单行注释 /* JAVA中的多行注释 */ %> <% --JSP本身的注释--%>
参考: