JSP基本语法
一、jsp的简介
-
JSP全名为Java server pages ,根本是一个简化的Servlet设计,他实现在java中使用HTML标签。Jsp是一个动态网页技术标准也是Javaee 的标准。Jsp 和servlet一,是在服务器断执行的。
-
JSP是一种Servlet,但是与HttpServlet的工作方式不太一样。HttpServlet是先由源代码编译为class文件后部署到服务器下,为先编译后部署。而JSP则是先部署后编译。JSP会在客户端第一次请求JSP文件时被编译为HttpJspPage类(接口Servlet的一个子类)。该类会被服务器临时存放在服务器工作目录里面。下面通过实例给大家介绍。 工程JspLoginDemo下有一个名为login.jsp的Jsp文件,把工程第一次部署到服务器上后访问这个Jsp文件,我们发现这个目录下多了下图这两个东东。 .class文件便是JSP对应的Servlet。编译完毕后再运行class文件来响应客户端请求。以后客户端访问login.jsp的时候,Tomcat将不再重新编译JSP文件,而是直接调用class文件来响应客户端请求。
二、常用的动态网页开发技术
三、jsp页面的元素构成
1、jsp指令
-
page指令通常位于jsp页面的顶端,同一个页面可以有多个page指令。
-
语法格式 <%@page 属性1="属性值" 属性2="属性值1,属性值2"...属性N="属性值n"%>
属性 描述 默认值 language 指定jsp页面使用的脚本语言 java import 通过该属性来引用脚本语言中使用到的类文件 无 contentType 用来指定jsp页面所采用的编码方式 text/html
-
-
include指令 将一个外部的文件嵌入到当前的jsp文件中,同时解析这个页面的jsp语句。
-
taglib指令:使用标签库定义新的自定义标签,在jsp页面中启用定制行为
2.jsp注释
-
HTML注释
<!--html注释--> //客户端可见
-
jsp注释
<%--html注释--%> //客户端不可见
-
jsp脚本注释
//单行注释 /**/多行注释
3、jsp脚本
-
在jsp页面中执行的java代码
<%java 代码 out.println("大家好"); %>
4、jsp声明
-
在jsp页面中定义变量或者说方法
语法 <%! java代码 String name = "lgz";//声明了一个字符串变量 int add(int a,int b){//声明了一个返回整形的函数方法,实现求和 return a+b; } %>
5、jsp表达式
-
在jsp页面中执行的表达式
语法 你好<%=name%>//注意:表达式不以分号结束 a+b=<%=add(10,12)%>
四、jsp的生命周期
JSP生命周期包括以下阶段
解析阶段
Servlet容器解析JSP文件代码,如果有语法错误,就会向客户端返回错误信息
翻译阶段
Servelet容器把JSP文件翻译成Servelet源文件
编译阶段
Servelet容器编译Servelet源文件,生成servelet
初始化阶段
加载与JSP对应的Servelet类,创建其实例,并调用它的初始化方法
运行时阶段
调用与JSP对应的Servelet实例的服务方法
销毁阶段
调用与JSP对应的Servelet实例的销毁方法,然后销毁Servelet实例
JSP和Servlet是什么关系
其实这个问题在上面已经阐述过了,Servlet是一个特殊的Java程序,它运行于服务器的JVM中,能够依靠服务器的支持向浏览器提供显示内容。JSP本质上是Servlet的一种简易形式,JSP会被服务器处理成一个类似于Servlet的Java程序,可以简化页面内容的生成。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。有人说,Servlet就是在Java中写HTML,而JSP就是在HTML中写Java代码,当然这个说法是很片面且不够准确的。JSP侧重于视图,Servlet更侧重于控制逻辑,在MVC架构模式中,JSP适合充当视图(view)而Servlet适合充当控制器(controller)。