日期:2014-05-16  浏览次数:20308 次

JSP的一些学习总结

JSP程序由JSP Engine(JSP引擎) 先将它转换成Servlet代码,接着将它编译成类文件载入执行。

只有当客户端第一次请求JSP时,才需要将其转换、编译

?

?

Directive 指令?

Directive是编译期间执行的指令,常见的指令有:page include taglib

?

page:指明与JSP Container(JSP容器)的沟通方式

<%@ page language="java"

??????? import="java.io.*,java.util.*"???? 引入包和类

??????? errorPage="errorPageUrl"??????????? 如果页面出现错误,跳转到哪个页面

??????? isErrorPage="false"????????????????? 当前页面是否为一个错误页面

??????? contentType="text/html; charset=GB2312"字符编码形式

??????? extends="index.jsp"????????????????? 指明这个jsp页面是从哪个jsp继承过来的

??????? buffer="8KB"?????????????????????????? 缓冲区,默认为8K。none代表不缓冲

??????? session="true"??????????????????????? 是否使用session,默认为true

??????? autoFlush="true"????????????????????? 页面输出完成后,是否自动刷新到客户端

??????? info="InfoText"?????????????????????? 指明JSP相关的描述信息?

%>

?

include: JSP Engine会在jsp程序的转换期间先把file属性设定的文件包含进来,然后开始执行转换及编译

<%@ include file="index.jsp"%>//index.jsp后面不能接参数。因为这是一个编译指令

?

?

?

Declaration 声明

<%?

int i = 0;//这种声明,i为局部变量

%>

<%!

int j = 0;//这种声明,j为成员变量(全局变量)

public void getMessage(){}//我们可以在此定义成员方法

%>

?

?

?

Action 运行期间的指令

Action是运行期间的指令,常见的指令有:jsp:useBean?? jsp:include?? jsp:forward

?

jsp:include

用于动态的JSP程序或HTML文件

除非这个指令被执行到,否则它是不会被Tomcat等JSP Engine编译

<jsp:include page="URLSpec">

??? <jsp:param name="ParamName" value="ParmValue"/> //用来设定include文件时的参数和值

</jsp:include>

jsp:forward

用于将一个jsp页面的内容传送到page所指定的jsp程序或者servlet中处理

<jsp:forward page="index.jsp">

??? <jsp:param name="paramName" value="paramValue"/>

</jsp:forward>

?

?

<jsp:forward>与response.sendRedirect的区别


<jsp:forward>?

?????? 1、跳转发生在服务器端,跳转后,客户端的URL地址依然是1.jsp的地址