在传统的网页HTML中加入JAVA程序片段,就构成了JSP网页,WEB服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户端。
程序代码中符号<%……%>之间的内容,便是由JAVA程序片段所构建的JSP网页程序代码,剩下的则是HTML标签。
原始JSP网页中<%……%>区域里的JAVA程序代码被编译,转换成为纯粹的HTML标签文字,重新建立只包含HTML的网页内容,然后传送至前台,由浏览器进行最后的转换工作,并显示JSP网页执行后的结果。
在脚本段内不能定义方法,这与声明不同,这是因为JSP引擎会把脚本段内的代码放到Servlet的方法内,而方法是不能被潜逃定义的。
<%--JSP隐藏注释1--%> <!-- HTML注释2-->
使用JSP隐藏注释,在网页源码上看不到该注释,而HTML注释能够从网页上看到,安全性较差,所以推荐使用JSP隐藏注释。
<%! int number1; %>中声明的是全局变量,这种变量在整个JAP页面内斗有效。
<% int number2; %>中声明的是局部变量。
程序代码设置Info属性为说明字符串,再引用getServetInfo()方法取得此说明字符串,并将其输出到网页上。
include动态包含和静态包含:
静态包含(指令,编译时包含):<%@ include…… %>静态包含不会检查所含文件的变化,适用于包含静态页面。指令在编写代码的时候一般放在最顶部,主要附加的是被重用的代码,是指把源代码原封不动的附加过来,因此里面不要包含<html><body>这样的标签,因为会与当前JSP中的这样的标签重复导致出错。且每次被加载进来的页面都需要单独编译。
动态包含(动作,运行时包含):<jsp:include……>会检查所含文件中的变化,并且可以带参数,适用于包含动态页面。标签导入一个重用文件的时候,这个文件是经过编译的,也就是附加的是要导入文件编译后的效果,所以可以含有与当前程序中重复的内容,因为会在附加前被解析掉。加载与被加载页面动态整合,一起编译,无需单独被加载。
<jsp:forward>用于在服务器端结束当前页面的执行,并从当前页面跳转到其他指定页面,转向的目标页面可以是静态的HTML、JSP文件或Servlet类。可以带参数也可以不带。转向目标页面后,地址栏不发生变化。
<jsp:param>元素主要用来传递参数给JSP程序,而由程序取得参数值,在程序中便是一个变量值。在使用时必须要设置其name属性表示传递参数的名称,并通过value属性来设置该参数的值。该元素使用时通过预设对象request和getParameter()方法来取得的。request.getParameter("attributeName");<jsp:param>使用时还必须配合<jsp:include>、<jsp:forward>、<jsp:plugin>等元素,在加载外部程序或是网页转换的时候,传递参数给另一个JSP程序。
<jsp:useBean>是用来加载JSP页面中使用的JavaBean(就是一个类,这个类就定义一系列get<Name>和set<Name>方法,是为了和JSP页面传数据,化简交互过程而产生的。)它的class属性指定Beam的类路径和类名,不可接受动态只,这个class不能是抽象的。bean属性用于指定Bean的名字,可以接受动态只。
<jsp:setProperty>用于设置Bean的属性值。用来设置已经实例化的Bean对象的属性。
<jsp:getProperty>可以获取Bean的属性值,用于在页面中显示。在使用该动作时,必须有由<jsp:useBean>所创建的Bean对象。
<jsp:plugin>操作元素的功能在于从JSP网页中加载JAVA Applet或JavaBean程序组建,此元素有许多属性设置。