JSP的修改:
只需要刷新页面即可,不需要重新部署项目或者重启服务器!
JSP表达式:
语法:<%= %>
注意:1、JSP表达式中不能使用 " ; ";
2、JSP表达式中不能出现多条语句;
3、JSP表达式中的内容一定是字符串类型,或者通过toString函数转换成字符串类型。
JSP脚本:(本质就是一个方法,所以不能在脚本中定义方法)
语法:<% %>
其中变量的定义和使用有先后顺序。
JSP声明:
语法:<%! %>
定义的变量是Page级别中,系统会优先执行。
注意:JSP声明只能定义,不能实现控制逻辑。
JSP指令:为JSP引擎设计。提供整个JSP页面的相关信息,并且设定JSP页面的相关属性。(区分大小写)
JSP指令有3个指令:page、include、taglib
1、page指令:JSP页面一般以page指令开头
设置属性:(下面所有设置仅供参考)
a、输出内容的类型:contentType=text/html
b、字符集:charset=utf-8
c、导入需要的类:import="包名.类名"
d、跳转错误页面:errorPage="错误页面的URL"
f、指定错误页面:isErrorPage="false"
g、会话是否创建:session="true"
h、设置客户端输出内容时缓冲区的大小:buffer="8kb" 默认为8kb
i、是否自动清空缓冲区:autoflush="true" false:缓冲区溢出时抛出一个异常
j、页面的说明信息:info=""
k、是否允许并行访问:isTheadSafe="true"
l、是否禁用EL表达式:isELingored="false"
m、页面语言:Java
n、转换成Servlet的父类:extend=""
2、include指令:代码的重用
语法:<%@ include file="文件名"%>
注意:include指令在编译的时候就将对应的文件包含进来,等价于将该文件中的代码复制。
缺点:1、当文件中内容被更新,包含文件的JSP页面不能及时的更新。
2、文件中不能定义与包含文件的JSP页面相同的变量。
3、不能携带参数
3、taglib标签库(JSTL)
(暂时不更新)
JSP动作:
JSP:include (当页面被请求的时候引入一个文件)
JSP:forward (将请求转到另一个页面)
JSP:useBean (获得JavaBean的一个实例)
JSP:setProperty (设置JavaBean的属性)
JSP:getProperty (获得JavaBean的属性)
JSP:plugin (根据浏览器类型为Java插件生成object或者embed两种标记)
1、JSP:include:会把文件的输出包含进来
语法:<%jsp:include page="文件名"%>
使用include动作向包含文件传参:
<jsp:include page="文件名">
<jsp:param name="参数名" value="参数值">
</jsp:include>
(注意:直接访问包含文件时,无法获取参数,取出来为null。该参数只能在包含文件的JSP页面使用。)
获取参数:String param=request.getParameter("param");
include动作和include指令的区别:
a、include指令相当于复制,编辑时将对应的文件包含进来,当内容变化时,不会再一次对其编译,不易维护。
b、include动作会自动检查被包含文件,当客户端对JSP文件进行请求时,将会重新将对应的文件包含进来,进行实时的更新。
2、JSP:forward 页面的跳转
语法:<jsp:forward page="文件名">
当forward动作被执行之后,当前页面后面的代码将不再执行,直接执行跳转之后页面的代码。
使用forward动作向跳转页面传参:
<jsp:forward page="跳转页面">
<jsp:param name="参数名" value="参数值">
</jsp:forward>
获取参数:String param=request.getParameter("param");
3、JavaBean的使用
JSP和JavaBean的混合使用,可以提高系统的可扩展性,JavaBean也能对数据进行良好的封装。
JavaBean支持两种组件:可视化组件、非可视化组件
a、可视化组件:开发人员可以在运行的结果中看到界面效果。
b、非可视化组件:一般不能观察到,其主要用在服务器端。
JSP只支持非可视化组件。
JavaBean有广义的定义和狭义的定义:
a、广义的定义:一个普通的Java类
b、狭义的定义:严格按照JavaBean规范编写的Java类。
语法:<jsp:useBean id="" class="" scope=""></jsp:useBean>
id:JavaBean对象的名字 class:实例化的类 scope:作用范围(page、request、session、application)
想要清除JavaBean对象,可以调用removeAttribute("JavaBean对象的名字");
4、JSP:setProperty
a、 当属性值的来源是String时:
语法:<jsp:setProperty property="JavaBean中定义的属性名" name="JavaBean对象的名字" value="常量">
b、当属性值的来源是request时:
语法:<jsp:setProperty property="JavaBean中定义的属性名" name="JavaBean对象的名字" param="表单定义的属性名">
jsp:setProperty和setting方法是等价的!!!
5、JSP:getProperty
语法:<jsp:getProperty property="JavaBean中定义的属性名" name="JavaBean对象的名字">
获取bean实例使用getProperty不需要param。
JavaBean注意事项:
a、当JavaBean中需要定义boolean类型的属性时,属性名不能定义以is开头,封装的时候调用的是is方法。
b、 JavaBean中定义的属性名和表单定义的属性名一定要一致;当不一致的时候:两者各写各的属性名;一致的时候,param可以不声明。
c、name属性其实就是你定义useBean的id。
d、当作用范围使用request、session、application时,需要在不同的页面调用该useBean时,也必须将jsp:useBean定义,然后使用jsp:getProperty调用属性!
6、plugin
(暂时不更新)