–jsp:useBean
–jsp:setProperty
–jsp:getProperty
–jsp:forward
–jsp:include
–jsp:param
–實例
?計算器
------------------------------------------------------------------------
? jsp:useBean
–格式
? <jsp:useBean id="name" class="package.Class" />
–目的
? 不需用到顯式的Java編程就可以建立Java類的實例
–注意
? 簡單來講
–<jsp:useBean id="book1" class=「com.amaker.Book" />
? 能夠認爲等同於下面的scriptlet
–<% coreservlets.Book book1 = new com.amaker.Book(); %>
–但jsp:useBean擁有下面兩項額外的優點
? 從請求參數中導出對象的值更容易
? 在頁面和servlet間共享對象更容易
User.java
TestUseBean.jsp
測試:
下面咱們使用動做元素jsp:useBean來實現哈~
TestUseBean.jsp
測試:
? jsp:setProperty
–格式 ? <jsp:setProperty name="name「 property="property「 value="value"
/>
–目的 ? 不需用到顯式的Java編程就能夠設置bean的屬性(即調用setXxx方法)
–注意 ? <jsp:setProperty name="book1「 property="title「 value=「amaker JSP" />
–等價於下面的scriptlet
? <% book1.setTitle(「Java Web Dev!"); %>
? jsp:getProperty
–格式
? <jsp:getProperty name="name" property="property" />
–目的
? 不需用到顯式的Java編程就能夠訪問bean的屬性(即調用getXxx
方法)
–注意
? <jsp:getProperty name="book1" property="title" />
–等價於下面的JSP表達式
? <%= book1.getTitle() %>
下面咱們經過請求參數來獲取
login.jsp
TestUseBean.jsp
測試:
一樣咱們也能夠用param獲取參數
TestUseBean.jsp
測試:
–jsp:forward
?轉發請求到指定文件
?語法
–<jsp:forward page=「URL」/>
?例如
–<jsp:forward page=「/result.jsp」 />
login.jsp
process.jsp
測試:
賬號michael跳轉到成功頁面。
非michael賬號跳轉到失敗頁面。
? jsp:include
–在頁面中動態包含文件
–語法
? <jsp:include page=「URL」 flush=「true」/>
–例如
? <jsp:include page=「header.jsp」flush=「true」/>
TestJspInclude.jsp
include.jsp
測試:
? jsp:param
–得到請求參數
TestJspInclude.jsp
include.jsp
測試:
–實例
?計算器
Calculator.jsp
<%@ page language=
"java"
import=
"java.util.*" pageEncoding=
"gbk"%>
<%@page
import=
"com.michael.jsp.CalculatorBean"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+
"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'Calculator.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<form name="f1" id="f1" action="<%=path %>/Calculator.jsp" method="post">
<jsp:useBean id="cb" class="com.michael.jsp.CalculatorBean"></jsp:useBean>
<jsp:setProperty property="*" name="cb"/>
<hr>
計算結果:<%
if(cb.getOperator()!=null){
try{
out.println(cb.getFirst()+cb.getOperator()+cb.getSecond()+"="+cb.getResult());
}catch(Exception e){
}
}else{
out.println("請輸入!");
}
%>
<hr>
<table border="0">
<tr>
<td>第一個數:</td>
<td><input type="text" name="first"></td>
</tr>
<tr>
<td>操做符:</td>
<td>
<select name="operator">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
</td>
</tr>
<tr>
<td>第二個數:</td>
<td><input type="text" name="second"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="計算"></td>
</tr>
</table>
</form>
</body>
</html>
CalculatorBean.java
package com.michael.jsp;
public
class CalculatorBean {
private
double first;
private
double second;
private
double result;
private String operator;
public
double getFirst() {
return first;
}
public
void setFirst(
double first) {
this.first = first;
}
public
double getSecond() {
return second;
}
public
void setSecond(
double second) {
this.second = second;
}
public
double getResult() {
try {
if(operator!=
null){
if(operator.equals(
"+")){
result = first + second;
}
else
if(operator.equals(
"-")){
result = first - second;
}
else
if(operator.equals(
"*")){
result = first * second;
}
else
if(operator.equals(
"/")){
result = first / second;
}
else{
result = 0.0;
}
}
else{
result = 0.0;
}
}
catch (Exception e) {
e.printStackTrace();
}
return result;
}
public
void setResult(
double result) {
this.result = result;
}
public String getOperator() {
return operator;
}
public
void setOperator(String operator) {
this.operator = operator;
}
}
測試:
800/50
30+50
------------------------------------------------------------------------