JDBC+Servlet+JSP整合開發之25.JSP動做元素

–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 
p_w_picpath
TestUseBean.jsp
p_w_picpath
測試:
p_w_picpath
下面咱們使用動做元素jsp:useBean來實現哈~
TestUseBean.jsp
p_w_picpath
測試:
p_w_picpath 
? 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
p_w_picpath
TestUseBean.jsp
p_w_picpath
測試:
p_w_picpath
  p_w_picpath
一樣咱們也能夠用param獲取參數
TestUseBean.jsp
p_w_picpath
測試:
p_w_picpath
p_w_picpath
–jsp:forward
?轉發請求到指定文件
?語法
–<jsp:forward page=「URL」/>
?例如
–<jsp:forward page=「/result.jsp」 />
login.jsp
p_w_picpath
process.jsp
p_w_picpath
測試:
p_w_picpath
賬號michael跳轉到成功頁面。
p_w_picpath
p_w_picpath
非michael賬號跳轉到失敗頁面。
p_w_picpath
? jsp:include
–在頁面中動態包含文件
–語法
? <jsp:include page=「URL」 flush=「true」/>
–例如
? <jsp:include page=「header.jsp」flush=「true」/>
TestJspInclude.jsp
p_w_picpath
include.jsp
p_w_picpath
測試:
p_w_picpath 
? jsp:param
–得到請求參數
TestJspInclude.jsp
p_w_picpath
include.jsp
p_w_picpath
測試:
p_w_picpath
–實例
?計算器
Calculator.jsp
p_w_picpath 
<%@ 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;    
        }    
}
測試:
p_w_picpath
800/50
p_w_picpath
p_w_picpath
30+50
p_w_picpath
p_w_picpath
------------------------------------------------------------------------
相關文章
相關標籤/搜索