组件:一系列的类综合的一起对外进行服务。
Javabean广义上的javabean等价与java类。
Servelet中使用的bean和javabean类似,通常要求:
1属性名第一个字母都是小写且都是private类
2一般都有getters和setters方法。
Jsp基本语法:
1 Declarations(声明)<%! 变量 %>在此声明的变量,方法都会被保留成唯一的一份,直到jsp程序停止执行。声明的变量都是成员变量。
例如:
<% !
Int i;
Public void setName(){
}
%>
除了在<%! %>声明外还可以在<% %>内声明区别是后者声明的是局部变量。
2 scriptlet
基本语法<% 程序代码区 %> 可以放入任何java程序代码
例如:
<%
For (int i=0;i<9,i++){
...
}
%>
注释格式:三种 <%-- --%> <% // %> <% /* */%>
3expression
基本语法<%= %>
=后面必须是字符串变量或者可以被转换成字符串的表达式,不需要以;结束,只有一行。
例如:
<% ="hello world "%>
<% =i+1%>
<% =request.getParameter("name")%>
4Directive
Directive (编译指令)相当于在编译期间的命令
格式
<% @ Directive 属性="属性值"%>
常见的Directive: page include taglib
Page 指令
<%@ gage language="脚本语言"
extends="类名"
import="java 包列表"
Session="true\false"
buffer="none\8k\自定义大小"
inTheadSafe="true/false"
Info='"页面信息"
errorpage="页面出错时,错误处理的url"
isErrorpage="true/false"
contentType="内容类型"
%>
Include指令将指定的jsp程序或者html包含进来
<% @include file="fileURl"%>
Jsp engine 会在jsp程序的转换时期先把file属性设定的文件包含进来,然后开始执行转换及编译的工作。
限制:不能向fileurl中传递参数。
Action(动作指令)在运行期间的命令
jsp:include/jsp:param
格式:
1<jsp:include page="urlspec" flush="true"/>
2<jsp:include page="urlspec" flush="true">
<jsp:param name="paramName" value="paramValue"/>
</jsp:include>
和编译指令include的区别
1 include编译指令时在jsp程序的转换时期就将file属性所指定的程序内容嵌入,然后在编译执行;而include指令在转换期间是不会被编译的,只有在客户端请求时期如果被执行到才会被动态的编译载入
Include不能带参数,而<jsp:include>可以
Jsp:forward/jsp:param
用于将一个jsp的内容传送到page所指定的jsp程序或者servelet中处理
格式:
1<jsp:forward page="urlSpec" flush="true">
2<jsp:forward page="urlSpec">
<jsp:param name="paramName" value="paramValue"?>
<jsp: forward>
与此对应的是:response.sendRedirect
<jsp:forward>使用同一个request
response.sendRedirect是不同的request
jsp:useBean,
通过jsp:useBean,可以在jsp中使用定义好的Bean
Bean的基本要求:
1必须要有一个不带参数的构造器。在jsp元素创建Bean时会调用空构造器
2Bean类应该没有任何公共示例变量,也就是说,不允许直接访问实例变量,变量名称首字母必需小写。
3通过getter/setter方法来读写变量的值,并且将对应的变量首字母改成大写。
基本用法:
1< jsp:useBean id="bean" scope="page/request/session/application" class="package BeanClass" type="typeName"/>
2< jsp:useBean >
<jsp:setProperty >
<jsp:getProperty >
</ jsp:useBean >
使用javaBean是要将Bean放入包内,不要使用裸体类。
Scope参数含义
1page :仅涵盖使用javaBean的页面
2reques:有效范围仅限于使用javaBean的请求
3session:有效范围在用户整个连接过程中
4application:有效范围涵盖整个应用程序,也就是对整个网页有效。