zoukankan      html  css  js  c++  java
  • 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里面

    如果,这篇博客帮您解决了问题,不妨点击一下右下角的【推荐】。

    如果,您希望更容易地发现我的新博客,不妨点击一下【加关注】。

    因为,我的热情需要您的肯定和支持! 

    感谢您的阅读,如果文章中有错误或者您有什么好的建议,也欢迎您直接留言批评指教。Thanks,friends!




  • 相关阅读:
    spring 任务调度quartz
    java增强型for循环
    DateTimeFormat
    Java的同步和异步
    HTTP Status 400,400 (Bad Request)
    com.mysql.jdbc.exceptions.jdbc4.MySQLDataException: '2.34435678977654336E17' in column '3' is outside valid range for the datatype INTEGER.
    Servlet.service() for servlet [appServlet] in context with path [/item] threw exception [Request processing failed
    mysql调优
    Windows nexus 启动失败
    NFS客户端访问行为相关的几个参数解释
  • 原文地址:https://www.cnblogs.com/yejiurui/p/2714557.html
Copyright © 2011-2022 走看看