JAVA(利用jsp+javabean+servlet)實現簡易計算器


代碼解釋基本都在代碼中給出
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>簡易計算器</title>
 8 </head> 
 9 <body>
10 
11     <!-- 
12         總結一下今天學到的知識
13         1、學到了EL表達式----》賊強哇  以前都不知道(調用的時候直接寫&{里邊寫下邊4中的一種之后添加東西}
14             ①:PageScope
15             ②:RequestScope
16             ③:SessionScope
17             ④:ApplicationScope
18         2、說一下自己在寫完代碼與看完老師代碼之后出現的一些復雜的地方
19             ①:我在處理radio的時候使用for循環寫的   但是,看了老師的三元表達式以后,我承認,我的復雜了  (無懈可擊)
20         3、今天還學到了一個新知識(關於服務器跳轉和客戶端跳轉)
21             ①:服務器跳轉(快):在服務器之間跳轉是可以使用request的
22             ②:客戶端跳轉(相對於服務器 不快):在客戶端跳轉中是應該使用session的
23      -->
24     <form action="CalServlet" method="post"  name="From" >
25         第一個數:<input type="text" name="num1" value="${requestScope.cal.num1}"><br>
26         運算符:
27         <input type="radio" name="operator" value="+" ${requestScope.cal.op=="+"?"checked":""}>+
28         <input type="radio" name="operator" value="-" ${requestScope.cal.op=="-"?"checked":""}>-
29         <input type="radio" name="operator" value="*" ${requestScope.cal.op=="*"?"checked":""}>*
30         <input type="radio" name="operator" value="/" ${requestScope.cal.op=="/"?"checked":""}>/
31         <br>
32         第二個數:<input type="text" name="num2" value="${requestScope.cal.num2}"><br>
33         <input type="submit" name="smt" value="提交"><br>
34         計算結果:<input type="text" name="result" value="${result}">
35     </form>
36 
37 </body>
38 </html>
Jsp頁面
package Calculation;

public class Cal {
    private float num1;
    private String op;
    private float num2;
    public float getNum1() {
        return num1;
    }
    public void setNum1(float num1) {
        this.num1 = num1;
    }
    public String getOp() {
        return op;
    }
    public void setOp(String op) {
        this.op = op;
    }
    public float getNum2() {
        return num2;
    }
    public void setNum2(float num2) {
        this.num2 = num2;
    }
    
}
JvaBean代碼
 1 package CalculationServlet;
 2 
 3 import java.io.IOException;
 4 import javax.servlet.ServletException;
 5 import javax.servlet.annotation.WebServlet;
 6 import javax.servlet.http.HttpServlet;
 7 import javax.servlet.http.HttpServletRequest;
 8 import javax.servlet.http.HttpServletResponse;
 9 
10 import Calculation.Cal;
11 
12 /**
13  * Servlet implementation class CalServlet
14  */
15 @WebServlet("/CalServlet")
16 public class CalServlet extends HttpServlet {
17     private static final long serialVersionUID = 1L;
18        
19     /**
20      * @see HttpServlet#HttpServlet()
21      */
22     public CalServlet() {
23         super();
24         // TODO Auto-generated constructor stub
25     }
26 
27     /**
28      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
29      */
30     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
31         // TODO Auto-generated method stub
32         response.getWriter().append("Served at: ").append(request.getContextPath());
33     }
34 
35     /**
36      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
37      */
38     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
39         // TODO Auto-generated method stub
40         //doGet(request, response);
41         response.setCharacterEncoding("UTF-8");
42         Cal cal = new Cal();
43         cal.setNum1(Float.parseFloat(request.getParameter("num1")));
44         cal.setOp(request.getParameter("operator"));
45         cal.setNum2(Float.parseFloat(request.getParameter("num2")));
46         float result = 0;
47         switch(cal.getOp().charAt(0)) {
48             case '+': result = cal.getNum1() + cal.getNum2();break;
49             case '-': result = cal.getNum1() - cal.getNum2();break;
50             case '*': result = cal.getNum1() * cal.getNum2();break;
51             case '/': result = cal.getNum1() / cal.getNum2();break;
52             //可以加入一個default
53         }
54         //System.out.println(result);
55         request.setAttribute("result", result);
56         request.setAttribute("cal", cal);  //----  傳值不過去???
57         //request.getSession().setAttribute("cal", cal);
58         //新知識
59         //下邊的這個函數就是服務器之間跳轉  注意需要先調用getRequestDispatcher來獲取這個對象  我是這么理解的
60         request.getRequestDispatcher("Cal.jsp").forward(request, response);
61     }
62 
63 }
Servlet代碼

 

下邊大概了解一下過濾器的問題

 

//個人理解

1、重要內容寫在doFilter中

2、傳值那些的寫在doinit中


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM