2016-09-07 J2EE基础知识之JSP_部分
1.JSP(Java Server Pages)
java服务器页面,其根本是一个简化的Servlet设计。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
JSP是Servlet的扩展,JSP没出现之前,就已经出现了Servlet技术.Servlet是利用了"输出流",动态的生成了HTML页面。包括每一个HTML标签和所有的HTML页面中出现的内容,简单点说就是利用Servlet的输出流将HTML标签生成一个HTML页面。由于时间长了Servlet中包含了大量的HTML标签、大量的静态文本及格式等,导致了Servlet的开发效率非常低下.这时候JSP诞生了,JSP弥补了这种情况,JSP通过在标准的THML页面中嵌入JAVA代码,使其静态的部分无需JAVA程序控制,只有那些需要从数据库读取或需要动态生成的页面内容,才使用JAVA脚本控制。
2.JSP工作原理
当Web服务器接收到以.jsp为扩展名的URL的访问请求时,它把该访问交给JSP容器解释和执行JSP页面。
每个JSP页面第一次被访问时,JSP容器会将之转译为一个Servlet源程序(即一个以.java为扩展名文件),然后将这个Servlet源程序编译成class类文件,这样Web服务器中的Servlet容器便可以像执行普通的Servlet程序一样执行这个由Jsp页面转译、编译的Servlet源程序。
Tomcat 7.0.70将Jsp转译成的Servlet源程序和编译成的class类文件放在"Tomcat安装目录\work\Cata\主机名\工程名\org\apache\jsp"目录下。
JSP工作主要过程:
1)客户端发送请求;
2)Web服务器中JSP容器将请求的JSP转译为Servlet源代码;
3)Web服务器中Servlet容器编译该Servlet源代码;
4)Web服务器加载并执行编译后的class类文件;
5)将执行结果响应至客户端。
3.JSP组成部分
1 <%@page import="java.io.IOException"%>
2 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
3 <%
4 String path = request.getContextPath();
5 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
6 %>
7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
8 <html>
9 <head>
10 <base href="<%=basePath%>">
11 <title>My JSP 'MyJsp.jsp' starting page</title>
12 <meta http-equiv="pragma" content="no-cache">
13 <meta http-equiv="cache-control" content="no-cache">
14 <meta http-equiv="expires" content="0">
15 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
16 <meta http-equiv="description" content="This is my page">
17 <!--
18 <link rel="stylesheet" type="text/css" href="styles.css">
19 -->
20 </head>
21 <body>
22 <h2>第一种方法</h2>
23 <%
24 try{
25 out.print("<table>");
26 for(int i=1;i<10;i++){
27 out.print("<tr>");
28 for(int j=1;j<i+1;j++){
29 out.print("<td> "+j+"*"+i+"="+(i*j)+" </td>");
30 }
31 out.print("</tr>");
32 }
33 out.print("</table>");
34 }catch(IOException e){
35 e.printStackTrace();
36 }
37 %>
38 <h2>第二种方法</h2>
39 <table>
40 <% for(int i=1;i<10;i++){ %>
41 <tr>
42 <% for(int j=1;j<=i;j++){ %>
43 <td>
44 <%=j%>*<%=i%>=<%=i*j%>
45 </td>
46 <% } %>
47 </tr>
48 <% } %>
49 </table>
50 </body>
51 </html>
可以看出来JSP主要是由两部分组成:
静态部分:标准的HTML标签、静态的页面内容,这些内容与静态HTML页面相同.
动态部分:注释元素、脚本元素、指令元素、动作元素。
3.1 注释元素
1)HTML注释,显示在客户端代码中
<!--注释-->
2)JSP注释,不会显示在客户端源码,只在JSP中
<%--注释--%>
3)单行注释与多行注释
单行// 多行/** 注释 */
3.2 脚本元素
1)<% 代码 %>
写在代码可以像写在普通Servlet类中的service方法中一样,可以使用request与response等对象。
在JSP转译后,写在其中的代码便成为转译后的Servelt的service方法体的一部分。
2)<%! 方法和变量 %>
写在其中的方法和变量写在普通Servlet类中的成员方法和成员属性一样。
在JSP转译后,写在其中的方法和变量也成为了转译后的Servlet的实例方法和实例属性。
3)<%=内容%>
相当直接在页面输出该内容,相当于Servlet中的out.println(内容);
内容不包括单行注释。

浙公网安备 33010602011771号