我的第一个MVC程序

来源:互联网 发布:开票软件打不开结束 编辑:程序博客网 时间:2024/06/05 08:15

Servlet&JSP世界中的MVC:
模型(Servlet)—>包含具体的业务逻辑和状态。换句话说模型知道用什么规则来得到和更新状态。系统中只要这部分与数据库通信。
视图(JSP)—>负责表示方面。他从控制器得到模型的状态(不过不是直接得到;控制器会把模型数据放在视图能找到的一个地方,例如:request.setAttribute(“…”))。另外视图还要获得用户输入,并交给控制器。
控制器(普通Java类)—>从请求获得用户输入,并明确这些输入对模型有什么影响。告诉模型自行更新,并且让视图(JSP)能得到新的模型状态。


1.第一个表单页面的HTML
form.html

<body><h1 align="center">Beer Recommendations JSP</h1><form method="post" action="../SelectBeer.do">    Select beer charateristics<p>    Color:    <select name="color" size="1">        <option value="light">light</option>        <option value="amber">amber</option>        <option value="brown">brown</option>        <option value="dark">dark</option>    </select>    <br><br>    <center>        <input type="submit"/>    </center></form></body>

2.部署和测试开始页面
web.xml

<servlet>    <servlet-name>Ch3Beer</servlet-name>    <servlet-class>com.yilong.mvc.web.BeerSelect</servlet-class>  </servlet>  <servlet-mapping>    <servlet-name>Ch3Beer</servlet-name>    <url-pattern>/SelectBeer.do</url-pattern>  </servlet-mapping>

3.控制器Servlet代码
BeerSelect.java

public class BeerSelect extends HttpServlet {    public void doPost(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        String c = request.getParameter("color");        BeerExpert be = new BeerExpert();        List result = be.getBrands(c);        request.setAttribute("styles", result);        RequestDispatcher view = request.getRequestDispatcher("MVC/result.jsp");        view.forward(request, response);    }}

4.构建和测试模型类
BeerExpert.java

public class BeerExpert {    public List getBrands(String color){        List brands = new ArrayList();        if(color.equals("amber")){            brands.add("Jack Amber");            brands.add("Red Moose");        }else{            brands.add("Jail Pale Ale");            brands.add("Gout Stout");        }        return(brands);    }}

5.创建提供建议的JSP“视图”(可动态的更新原HTML网页)
result.jsp

<body>    <h1 align="center">Beer Recommendations JSP</h1>    <p>        <%            List styles = (List)request.getAttribute("styles");            Iterator it = styles.iterator();            while(it.hasNext()){                out.print("<br>try:"+ it.next());            }         %></body>

总结:注意MVC模式下三者之间的联系,M-分发控制 V-页面表现 C-业务处理

0 0
原创粉丝点击