web开发的两种设计模式

Sun公司针对web开发提供了两种模式

Model1: jsp+javabean 只适合小型应用

做一个简单的网页计算器

Model2: servlet+jsp+javabean mvc

一、jsp+javabean设计模式(只适用于小型应用)

这个是sun公司针对web开发的一种模式,只适用于小型的应用,这里简单的介绍一下,以后开发的时候用的不多,经常用MVC设计模式,但是这个知识点还是要知道的,

写一个web版的网页计算器,来掌握这块的知识吧:

 

此处的重点是:如果从javabean中取出数据。大家要注意一下

1.jsp显示页面

<%@page import="cn.itcast.calculator.domain.Calculator"%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
   
    <title>web计算器</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 style="text-align: center;">
  <%-- 实例化bean --%>
  <jsp:useBean id="calculator" class="cn.itcast.calculator.domain.Calculator"></jsp:useBean>
    <%-- 获得请求参数为属性赋值 --%>
  <jsp:setProperty property="*" name="calculator"/>
    <%-- 计算 --%>
  <%
      Calculator bean = (Calculator) pageContext.getAttribute("calculator");
      
      bean.calculate();
  %>
  
  
  
   <form action="" method="post">
       <table border="1" width="500px">
           <caption>简单计算器</caption>
           <tr>
               <td>第一个数</td>
               <td>
                   <input type="text" name="firstNumber" />
               </td>
           </tr>
           <tr>
               <td>第二个数</td>
               <td>
                   <input type="text" name="secondNumber" />
               </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>
                   <input type="submit" value="计算" />
               </td>
               <td>
                   运算结果为:<jsp:getProperty property="result" name="calculator"/>
               </td>
           </tr>
       </table>
   </form>
  </body>
</html>

2.写一个Calculator的javabean

package cn.itcast.calculator.domain;

public class Calculator {
    
    private double firstNumber;
    private double secondNumber;
    private char operator;
    private double result;
    public double getFirstNumber() {
        return firstNumber;
    }
    public void setFirstNumber(double firstNumber) {
        this.firstNumber = firstNumber;
    }
    public double getSecondNumber() {
        return secondNumber;
    }
    public void setSecondNumber(double secondNumber) {
        this.secondNumber = secondNumber;
    }
    
    public char getOperator() {
        return operator;
    }
    public void setOperator(char operator) {
        this.operator = operator;
    }
    public double getResult() {
        return result;
    }
    public void setResult(double result) {
        this.result = result;
    }
    
    // 计算
    public void calculate() {
        switch(this.operator) {
            case '+' :
                this.result = this.firstNumber + this.secondNumber;
                break;
            case '-' :
                this.result = this.firstNumber - this.secondNumber;
                break;
            case '*' :
                this.result = this.firstNumber * this.secondNumber;
                break;
            case '/' : {
                if(this.secondNumber==0) {
                    int i = 1/0;
                }
                this.result = this.firstNumber / this.secondNumber;
                break;
            }
        }
    }

}

 

二、MVC设计模式

1)MVC web开发中的一种设计模式

m:model

v:view

c:controller

 

servlet+jsp+javabean mvc

使用MVC时需要注意的是:要严格做MVC设计模式的话,就必须要用请求转发,把jsp页面要藏在WEB-INF里面。

要使用请求转发做数据,请求重定向不行,因为如果用请求重定向的话,假如用户收藏到收藏夹里面,那么再打开就访问不到了。

结论:用户要访问必须先访问servlet,坚决杜绝用户访问show.jsp的显示页面,放在webroot下面太暴露,我们经常把它放到web-inf里面

你可能感兴趣的:(web开发)