项目结构

用户首页

form.html

  1. <html>
  2. <body>
  3. <h1 align='center'>Beer Selection Page</h1>
  4. <form method="post"
  5. action="SelectBeer.do">
  6. Select
  7. <p>
  8. Color:
  9. <select name="color" size="1">
  10. <option value="light"> light</option>
  11. <option value="amber"> amber</option>
  12. <option value="brown"> brown</option>
  13. <option value="dark"> dark</option>
  14. <option value="red"> red</option>
  15. </select>
  16. <br/><br/>
  17. <center>
  18. <input type="submit">
  19. </center>
  20. </form>
  21. </body>
  22. </html>

MVC之C——Servlet

BeerSelect.java

  1. package com.example.web;
  2. import com.example.model.BeerExpert;
  3. import javax.servlet.RequestDispatcher;
  4. import javax.servlet.ServletException;
  5. import javax.servlet.http.HttpServlet;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. import java.io.IOException;
  9. import java.util.List;
  10. /**
  11. * Created by LTN on 2016/10/30.
  12. */
  13. public class BeerSelect extends HttpServlet {
  14. public void doGet(HttpServletRequest request,
  15. HttpServletResponse response)throws IOException ,ServletException{
  16. response.setContentType("text/html");
  17. String c = request.getParameter("color");
  18. BeerExpert expert = new BeerExpert();
  19. List result = expert.getBrands(c);
  20. request.setAttribute("styles", result);
  21. RequestDispatcher view = request.getRequestDispatcher("result.jsp");
  22. view.forward(request, response);
  23. }
  24. public void doPost(HttpServletRequest request,
  25. HttpServletResponse response)throws IOException,ServletException {
  26. doGet(request,response);
  27. }
  28. }

MVC之M——模型

BeerExpert.java

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

MVC之V——JSP

result.jsp

  1. <%@ page import="java.util.*" %>
  2. <html>
  3. <body>
  4. <h1 align="center">Beer Recommendations JSP</h1>
  5. <p>
  6. <%
  7. ArrayList styles = (ArrayList)request.getAttribute("styles");
  8. Iterator it = styles.iterator();
  9. while(it.hasNext()) {
  10. out.print("<br>try " + it.next());
  11. }
  12. %>
  13. </body>
  14. </html>

配置文件

web.xml

  1. <!DOCTYPE web-app PUBLIC
  2. "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  3. "http://java.sun.com/dtd/web-app_2_3.dtd" >
  4. <web-app>
  5. <display-name>Archetype Created Web Application</display-name>
  6. <servlet>
  7. <servlet-name>Ch3 Beer</servlet-name>
  8. <servlet-class>com.example.web.BeerSelect</servlet-class>
  9. </servlet>
  10. <servlet-mapping>
  11. <servlet-name>Ch3 Beer</servlet-name>
  12. <url-pattern>/SelectBeer.do</url-pattern>
  13. </servlet-mapping>
  14. </web-app>

附件列表

《Head First Servlets & JSP》-3-1st servlet MVC demo的更多相关文章

  1. 《Head First Servlets & JSP》-1-前言

    <Head First Servlets & JSP>(中文版) BB,KS & BB著, 苏钰函,林剑译,中国电力出版社 数据交互 Web浏览器和Web服务器:通过Htt ...

  2. 《Head First Servlets & JSP》-7-使用JSP

    学习的知识点 JSP,最后会变成一个servlet JSP最终或变成一个完整的servlet在Web应用中运行,只不过这个servlet类会由容器写好. JSP中的scriptlet 所谓script ...

  3. 《Head First Servlets & JSP》-8-无脚本的JSP

    以前servlet和JSP交互的代码 servlet代码示例: JSP代码示例: 若属性不是一个String而是一个Bean呢? 一个简单的JavaBean servlet代码示例: JSP代码示例: ...

  4. 《Head First Servlets & JSP》-11-Web应用部署

    Web目录 WAR文件 WAR文件只是Web应用结构的一个快照,采用了一种更可移植的压缩形式. 建立WAR文件时,就是把整个Web应用结构(去掉Web应用上下文目录,就是把WEB-INF之上的一级目录 ...

  5. 《Head First Servlets & JSP》-9-使用JSTL

    安装JSTL1.1的说明 JSTL1.1不是JSP2.0规范的一部分,能访问servlet和JSP API并不意味着能访问JSTL. 使用JSTL之前,需要将jstl.jar文件安装到Web应用的WE ...

  6. 《Head First Servlets & JSP》-10-定制标记开发

    标记文件:很想include,但是比include更好 建立和使用标记文件的最简方法 取一个被包含文件(如Header.jsp),把它重命名为带有一个.tag扩展名(Header.tag): 把标记文 ...

  7. 《Head First Servlets & JSP》-5-属性和监听

    Servlet初始化参数 在DD文件(web.xml)中 Servlet参数在/参数下: 在Servlet代码中 在Servlet初始化之前不能使用Servlet初始化参数 一旦有了一个Servlet ...

  8. 《Head First Servlets & JSP》-6-会话管理

    容器怎么知道客户是谁 Http协议是无状态连接,客户浏览器与服务器建立连接.发出请求.得到响应,然后关闭连接.即,连接只针对一个请求/响应. 对容器而言,每个请求都来自于一个新的客户. 客户需要一个唯 ...

  9. 《Head First Servlets & JSP》-2-概述

    什么是容器 Servlet没有main()方法,他们受控于另一个Java应用,这个java应用称为容器(Container). Web服务器应用(如Apache)得到一个指向Servlet的请求(如何 ...

随机推荐

  1. UVA - 1218 Perfect Service (树形dp)(inf相加溢出)

    题目链接 题意:给你一个树形图,让你把其中若干个结点染成黑色,其余的染成白色,使得任意一个白色结点都恰好与一个黑色结点相邻. 解法比较容易,和树上的最大独立集类似,取一个结点作为树根,对每个结点分三种 ...

  2. C++对C语言的拓展(1)—— 引用

    1.变量名 变量名实质上是一段连续存储空间的别名,是一个标号(门牌号): 通过变量来申请并命名内存空间: 通过变量的名字可以使用内存空间. 2.引用的概念 变量名,本身是一段内存的引用,即别名(ali ...

  3. BZOJ2002:[HNOI2010]弹飞绵羊

    浅谈分块:https://www.cnblogs.com/AKMer/p/10369816.html 题目传送门:https://lydsy.com/JudgeOnline/problem.php?i ...

  4. bzoj 1977 [BeiJing2010组队]次小生成树 Tree

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1977 kruscal别忘了先按边权sort.自己觉得那部分处理得还挺好的.(联想到之前某题的 ...

  5. MyBatis的高级映射之多对一

    使用传统方式的形式 使用MyBatis的方式 这样会产生两条语句 使用ResultMap的方式,对结果进行映射和转换,自己控制 两条语句变成一条语句,然后进行映射,这时Student类中包含一个 Cl ...

  6. Java类与继承

      Java:类与继承 对于面向对象的程序设计语言来说,类毫无疑问是其最重要的基础.抽象.封装.继承.多态这四大特性都离不开类,只有存在类,才能体现面向对象编程的特点,今天我们就来了解一些类与继承的相 ...

  7. Spring 自动注册及自动装配

    Spring支持三种注册Bean及装配Bean的方式: 显式地在Java代码中注册及装配 显示地在Xml文件中注册及装配 隐式地装配,即自动注册及装配 这三种方式可以混合使用.选择哪种更多地是看个人品 ...

  8. java继承捡漏

    总结:老师真是的.讲课的时候,觉得打的比喻特别有趣,结果啊不晓得他是良苦用心.知识就是包含在里面 继承:子类继承父类,子类就可以把父类的东西拿来用 这体现在程序运行时,你会发现,子类对象可以调用父类的 ...

  9. AngularJS:参考手册

    ylbtech-AngularJS:参考手册 1.返回顶部 1. AngularJS 参考手册 AngularJS 指令 本教程用到的 AngularJS 指令 : 指令 描述 ng-app 定义应用 ...

  10. leetcode328

    /** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNo ...