编译指令是同时jsp引擎处理消息,他只在jsp程序被转化为servlet的过程中起作用。
动作指令是客户端在请求时期动态被执行的,每次客户端被请求时都可能被执行一次。
forward指令
将当前程序重新定向到一个html页面或者是一个动态的程序,比如说servlet。forward有2种语法形式,一种是带参数的一种是不带参数的。
forward是重定向指令,所以forward下面的代码不会被执行也不会被输出到客户端。
使用示例:
<jsp:forward page="login.jsp"></jsp:forward>
在重定向的同时还可以通过param指令来进行参数的传递。
使用示例:
<jsp:param value="darkmi" name="userNmae"/>
value是传递的数值,name则是键值。
在重定向到的页面可以通过request.getParameter方法来获取传递的参数
String userName = request.getParameter("userName");
include指令
是一个动态包含指令,他用于在jsp程序中包含一个静态或者动态的文件。静态文件一般是html文件动态文件一般是jsp文件。如果是静态文件则直接将静态文件中的内容加入到当前jsp程序中来。如果是jsp程序,那我这个jsp程序先会被jsp引擎执行,然在把生成的东西加入到当前jsp程序中来。
静态导入时,被导入页面的编译指令会起作用,而动态导入时,被导入页面的编译指令会失去作用至被插入到页面的body内。
此外,支持include动态指令的时候还可以增加额外的请求参数。
不带参数的示例:
<jsp:include page="header.html"></jsp:include>
带参数的示例:
同样通过param来传递参数
<jsp:include page="body.jsp">
<jsp:param value="red" name="bgcolor"/>
</jsp:include>
然后通过getParameter来接受参数
<body bgcolor="<%=request.getParameter("bgcolor") %>">
</body>
javaBean介绍
JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性,set和get方法获取。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制(反射机制)发现和操作这些JavaBean 的属性。JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性,set和get方法获取。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制(反射机制)发现和操作这些JavaBean 的属性。
useBean指令
可以在一个jsp页面中实例化一个或者多个javaBean组件,这些实例化的javaBean组件可以在jsp的其他地方被调用。
提前创建一个javaBean:
package com.jikexueyuan.entity;
import java.io.Serializable;
public class UserEntity implements Serializable {
private String userName;
private String password;
public UserEntity() {
super();
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
传递登录信息的例子:
登录页面:
<form action="do_register.jsp" method="post">
用户名:<input type="text" name="userName">
密码:<input type="password" name="password">
<input type="submit" value="登录">
</form>
处理传递过来的注册信息的页面:
//id为useBean的键值,class则为useBean所对应类的完全限定名
<jsp:useBean id="user" class="com.jikexueyuan.entity.UserEntity"></jsp:useBean>
//serProperty来给javaBean设置属性
<jsp:setProperty property="userName" name="user"/>
<jsp:setProperty property="password" name="user"/>
//getProperty则用来获取javaBean属性
<jsp:getProperty property="userName" name="user"/>
<jsp:getProperty property="password" name="user"/>