我的第一个MVC程序

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值