JSP是实现普通静态html和动态HTML混合编码的技术,可以说是Servlet的一种变形,相比Servlet它更像普通的web页面。JSP在第一次运行时会花费很长时间,原因在与其本质还是Servlet,也就是说JSP会由服务器Tomcat自动转换为Servlet后加载运行。
JSP页面中除了普通的HTML代码外还包含其他三种主要成分:脚本元素、指令和动作。脚本元素用于在JSP页面中嵌入Java代码,指令用于从整体上控制Servlet的结构,动作用来引入现有的组件来控制Web容器的行为。
语法:<%=表达式%>
作用:输出表达式的计算结果
注意事项:表达式中所有的变量必须是已经声明过的变量,%与=号之间不能有空格且表达式后面不需要分号
举例:
- <%for(int i = 1;i < 7; i++){%>
- <h <%=i%> >Hello!</h <%=i%> > <br>
- <%}%>
语法:<!--注释-->与<%--注释--%>两种
作用:前者是输出到客户端的注释;后者不输出到客户端,仅表示JSP注释,在运行时这种注释不会转化为HTML的注释即在客户端查看源码时是不可见的。
举例:
- <!--客户端看得到的注释-->
- <%--客户端看不到的注释--%>
语法:<%!声明代码%>
注意事项:
1.JSP中声明的变量作用域为整个页面,故只要在页面中声明变量即可无需主义声明与使用的先后顺序,但习惯上我们一般先声明后使用变量。
2.JSP中声明的变量在服务器上为全局变量。我们都知道JSP运行时是自动转化为Servlet,而每个Servlet运行期间在服务器的容器内部仅仅只有一个实例,对于不同的客户端请求会产生不同的线程响应,因此JSP中声明的变量的任何修改均会影响到所有访问该JSP页面的客户端。
举例:
- <%--JSP变量声明--%>
- <h1>JSP变量声明</h1>
- <%i++; %>
- <p>你是第个<%=i %>访问本网站的用户!</p>
- <!--JSP声明变量的作用域为整个页面,故声明语句可放在后面.-->
- <%!int i=0;%>
语法:<%!声明代码%>
注意事项:在JSP页面中声明的方法在整个页面中都有效,但在该方法中定义的变量仅在该方法中有效。
举例:
- <%--JSP方法声明--%>
- <h1>
- JSP方法声明
- </h1>
- <%!String sayHello(){ return "Hello"; }%>
- <%=sayHello() %>
语法:<%!声明代码%>
注意事项:在JSP页面中声明的类在整个页面中都有效。
举例:
- <%--JSP类声明--%>
- <h1>JSP方法声明</h1>
- <%!public class sayHello{
- boolean county;
- sayHello(boolean county){
- this.county=county;
- }
- String Hello(){
- if(county)
- return "Hello";
- else
- return "Hi";
- }
- }%>
- <%sayHello sHello = new sayHello(false); %>
- <%=sHello.Hello()%>
Page指令用于定义整个JSP页面的全局属性。一下是一些常用属性:
1.language属性
语法:<%@page language="语言"%>
说明:用于指明JSP脚本使用的编程语言即文件编译语言。目前该属性的属性值只有“java”。
2.contentType属性
语法:<%@page contentType="语言"%>
说明:指定MIME类型和JSP的编码方式
3.pageEncoding属性
语法:<%@page pageEncoding="语言"%>
说明:指定编码方式
用法示例:
- <%@page language="java" contentType="text/html;charset=UTF-8"
- pageEncoding="UTF-8"%> <%--1.指明JSP页面脚本使用的编程语言,即设置编译语言
- 2.指定MIME的类型及JSP文件的字符编码方式
- 3.指定JSP文件本身的编码方式--%>
4.import属性
语法:<%@page import="java包"%>
说明:导入Java包,可以只导入一个也可导入多个,导入多个Java包时中间用逗号隔开。
用法示例:
- <%@page import="javax.websocket.Session"%>
- <%@page import="java.util.*,java.lang.*" %> <%--导入Java包--%>
5.session属性
语法:<%@page session="true"%>或<%@page session="false"%>
说明:设置JSP页面是否支持会话,默认情况允许会话即session值为true。
- 1 < %@page session = "false" % ><%--指明JSP页面是否支持会话 (默认支持)--%>
6.errorPage属性
语法:<%@page errorPage="程序"%>
说明:指定当JSP页面程序发生错误时用来处理的程序。
用法示例:
- 1 < %@page errorPage = "error.jsp" % ><%--出现错误时由error.jsp处理--%>
7.isThreadSafe属性
语法:<%@page isThreadSafe="true"%>或<%@page isThreadSafe="false"%>
说明:设置JSP文件是否能同时处理多个用户的请求,默认情况一个JSP能处理多个进程,即session值为true。
用法示例:
- 1 <%@page isThreadSafe="false"%> <%--只允许单线程,默认为True即默认允许多线程--%>
说明:include指令向JSP页面内嵌入一个文件,改文件可以是HTML文件、JSP文件或其他文本文件。
用法示例:
- 1 < h3 > <%@include file = "copyright.html" % ></h3>/
JSP动作组件是一些XML语法格式的标记,被用于控制Web容器的行为。利用JSP动作组件可动态地向页面中插入文件、重用JavaBean组件、把用户重定向到另外的页面等。
常见的JSP动作组件有以下几种:
语法:<jsp:include page="文件名" flush=“true”/>
说明:flush参数必须为true不能用false。
注意事项:include动作组件和include指令元素十分不同。
include动作组件在执行时才对其所包含的文件进行处理,故JSP页面与包含的文件在逻辑上和物理上均是独立的,若对文件进行修改则在运行时就可看到文件修改后的结果。
include指令中包含的文件若发生修改必须重新将JSP页面转译成Java文件才可以看到修改后的内容,否则只能看到修改前的文件内容。
语法:<jsp:forword page="网页名称"/>
说明:将浏览器显示的网页导至另一个HTML或JSP网页,客户端看到的地址为A页面的地址而实际内容却是B页面的内容。
注意事项:在使用forward组件之前不能有任何内容已输出到客户端,否则会有意外抛出。而<jsp:forword>标记后的代码将不再执行。
语法:<jsp:param name="参数名称" value="值"/>
说明:用于传递参数信息,必须配合include和forward动作组件一起使用。
语法:<jsp:plugin type="bean|applet" code="classFileName" codevase="classFileDirectoryName">
说明:执行一个Applet或Bean
setProperty:<jsp:setProperty>设置JavaBean的属性
getProperty:<jsp:getProperty>输出某个JavaBean的属性
useBean:<jsp:useBean>寻找或实例化一个JavaBean
来源: http://www.bubuko.com/infodetail-2423684.html