zoukankan      html  css  js  c++  java
  • 简单的MVC小应用

    MVC概述:

     M:modal,是一个模型,比如一瓶啤酒,需要有商标.在选择啤酒时,给定一个想要的颜色的酒,可以给出该颜色酒的品牌

     V:view,视图.

     C:controler,处理业务逻辑的地方,获得view中提交的酒的颜色,调用M获得建议的酒种类,将其转交至view中显示(也可以直接显示,不使用view).

    设计过程:

      1.构造一个表单,可以从其中获取客户需要的酒的颜色.

       

     1 <!--BeerForm.html-->
     2 <html>
     3 <head>
     4 <title>beer select</title>
     5 </head>
     6 <body>
     7   <form action="SelectBeer.do" method="post">
     8       <p>Select beer characteristics</p>
     9       Color:
    10       <select name="color" size="1">
    11           <option value="light">light</option>
    12           <option value="amber">amber</option>
    13           <option value="brown">brown</option>
    14           <option value="dark">dark</option>
    15       </select>
    16       <input type="submit" value="submit">
    17   </form>
    18 </body>
    19 </html>

      2.构造一个知道各种酒颜色的大师类,可以通过提供的颜色,给出建议.

      

     1 package com.slowalker.modal;
     2 
     3 import java.util.*;
     4 
     5 public class BeerExpert {
     6     public List<String> getBrands(String color) {
     7         List<String> brands = new ArrayList<String>();
     8         if(color.equals("amber")) {
     9             brands.add("Jack Amber");
    10             brands.add("Red Moose");
    11         }else {
    12             brands.add("Jail Pale Ale");
    13             brands.add("Gout Stout");
    14         }
    15         return brands;
    16     }
    17 }

        3.构造一个servlet处理主要业务逻辑,从表单中获取需要的酒的颜色,根据这种颜色从大师的到相应的建议,将建议反馈到一个view中,

       

     1 package com.slowalker;
     2 
     3 import com.slowalker.modal.*;
     4 import java.util.*;
     5 import java.io.IOException;
     6 import java.io.PrintWriter;
     7 
     8 import javax.servlet.RequestDispatcher;
     9 import javax.servlet.ServletException;
    10 import javax.servlet.annotation.WebServlet;
    11 import javax.servlet.http.HttpServlet;
    12 import javax.servlet.http.HttpServletRequest;
    13 import javax.servlet.http.HttpServletResponse;
    14 
    15 /**
    16  * Servlet implementation class BeerSelect
    17  */
    18 @WebServlet(name="/BeerSelect", urlPatterns= {"/SelectBeer.do"})
    19 public class BeerSelect extends HttpServlet {
    20     private static final long serialVersionUID = 1L;
    21     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    22         
    23         String c = request.getParameter("color");
    24         BeerExpert be = new BeerExpert();
    25         List result = be.getBrands(c);
    26         request.setAttribute("styles", result);
    27         RequestDispatcher view = request.getRequestDispatcher("BeerForm.jsp");
    28         view.forward(request, response);
    29         
    30         /*//使用BeerExpert模型,但是不使用MVC结构中的view
    31         String c = request.getParameter("color");
    32         BeerExpert be = new BeerExpert();
    33         List<String> result = be.getBrands(c);
    34         response.setContentType("text/html");
    35         PrintWriter pw = response.getWriter();
    36         pw.println("Beer Selection Advice<br>");
    37         
    38         Iterator it = result.iterator();
    39         while(it.hasNext()) {
    40             pw.println("<br>try : " + it.next());
    41         }
    42         */
    43         
    44         /*//不使用BeerExpert模型
    45         response.setContentType("text/html");
    46         PrintWriter pw = response.getWriter();
    47         pw.println("Bear Selection Advice<br>");
    48         String c = request.getParameter("color");
    49         pw.println("<br>Got beer color " + c);
    50         */
    51     }
    52 
    53 }

    4.根据servlet提供的值,将其显示在view中.

       

     1 <%@ page language="java" contentType="text/html; charset=UTF-8"
     2     pageEncoding="UTF-8"%>
     3 <%@ page import="java.util.*" %>
     4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     5 <html>
     6 <head>
     7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     8 <title>Insert title here</title>
     9 </head>
    10 <body>
    11 <h1 align="center">Beer Recommendations</h1>
    12 <p>
    13 <%
    14     List styles = (List)request.getAttribute("styles");
    15     Iterator it = styles.iterator();
    16     while(it.hasNext()){
    17         out.println("<br>try: " + it.next());
    18     }
    19 %>
    20 </p>
    21 </body>
    22 </html>
  • 相关阅读:
    Activex控件的IObjectSafety接口问题
    用delphi制作无界面的activex控件
    Delphi发布ActiveX控件 制作CAB包 数字签名相关
    Delphi创建ActiveX控件,实现安全接口及无界面代码
    Delphi 开发ActiveX控件(非ActiveForm)
    利用Delphi编写IE扩展
    解决IE9下交通银行网上银行无法输入密码的问题
    Delphi中COM自动化对象中使用事件
    Delphi不注册COM直接使用ActiveX控件并绑定事件
    C#中使用 SendMessage 向非顶端窗体发送组合键
  • 原文地址:https://www.cnblogs.com/slowalker-lee/p/7886839.html
Copyright © 2011-2022 走看看