从jsp:include中,我们应该可以猜测到jsp tag是加入特定的java代码。
formard
<jsp:forwardpage="index.jsp" />将在代码中加入:
_jspx_page_context.forward("index.jsp");
forward()不是重定向(重定向会给出302,指向一个新的URL,浏览器向新的URL发送请求),将请求转置另一个jsp重新处理,而不会再转回来。虽然从java代码上根据tag的插入位置,在此之前的代码均已执行,包括charset设置,可能还包括一些HTML语句的输出,但是forward()之后,将重新设置和重新输出,原jsp的设置,包括charset,已经输出的内容,将无效。
useBean、getProperty、setProperty
我们定义一个Bean:UserBean,有两个属性name和passwd。
package cn.wei.flowingflying.chapter04;
public class UserBean {
private String name;
private String passwd;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPasswd() {
return passwd;
}
public void setPasswd(String passwd) {
this.passwd = passwd;
}
}
在某个HTML中,给出下面的代码,按button后发起一个POST的请求给register.jsp
<form action="register.jsp" method="post">
<table>
<tr><td>姓名:<input type="text" name="name"></td></tr>
<tr><td>密码:<input type="password" name="passwd"></td></tr>
<tr><td><input type="submit"></td></tr>
</table>
</form>
register.jsp如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<jsp:useBean id="user" class="cn.wei.flowingflying.chapter04.UserBean"/>
<jsp:setProperty property="*" name="user"/>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Register</title>
</head>
<body>
<h2>用户名:<%= user.getName() %></h2>
<h2>密码:<%= user.getPasswd() %></h2>
</body>
</html>
例子中的L2和L3也可以写为:
<jsp:useBean id="user" class="cn.wei.flowingflying.chapter04.UserBean"/>
<jsp:setProperty property="name" name="user" param="name"/>
<jsp:setProperty property="passwd" name="user" param="passwd"/>
当中property中是对应Bean中的属性,而param是对应POST的参数。
plugin
用于价值java applet。纯HTML代码页可以价值java Applet,这个没有太大的意义。例子如下:
<jsp:plugin type="applet" code="MyApplet.class" jreversion="1.8">
<jsp:params>
<jsp:param name="appletParam1" value="paramValue1"/>
</jsp:params>
<jsp:fallback>
The browser you are using does not support Java Applets. You might consider switching browsers.
</jsp:fallback>
</jsp:plugin>