项目结构

用户首页

form.html

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

MVC之C——Servlet

BeerSelect.java

    1. package com.example.web;
    1. import com.example.model.BeerExpert;
    1. import javax.servlet.RequestDispatcher;
    1. import javax.servlet.ServletException;
    1. import javax.servlet.http.HttpServlet;
    1. import javax.servlet.http.HttpServletRequest;
    1. import javax.servlet.http.HttpServletResponse;
    1. import java.io.IOException;
    1. import java.util.List;
    1. /**
    1. * Created by LTN on 2016/10/30.
    1. */
    1. public class BeerSelect extends HttpServlet {
    1. public void doGet(HttpServletRequest request,
    1. HttpServletResponse response)throws IOException ,ServletException{
    1. response.setContentType("text/html");
    1. String c = request.getParameter("color");
    1. BeerExpert expert = new BeerExpert();
    1. List result = expert.getBrands(c);
    1. request.setAttribute("styles", result);
    1. RequestDispatcher view = request.getRequestDispatcher("result.jsp");
    1. view.forward(request, response);
    1. }
    1. public void doPost(HttpServletRequest request,
    1. HttpServletResponse response)throws IOException,ServletException {
    1. doGet(request,response);
    1. }
    1. }

MVC之M——模型

BeerExpert.java

    1. package com.example.model;
    1. import java.util.ArrayList;
    1. import java.util.List;
    1. public class BeerExpert
    1. {
    1. public List getBrands(String color)
    1. {
    1. List<String> brands = new ArrayList<String>();
    1. if ( color.equals("amber") )
    1. {
    1. brands.add("Jack Amber");
    1. brands.add("Red Moose");
    1. }
    1. else
    1. {
    1. brands.add("Jail Pale Ale");
    1. brands.add("Gout Stout");
    1. }
    1. return (brands);
    1. }
    1. }

MVC之V——JSP

result.jsp

    1. <%@ page import="java.util.*" %>
    1. <html>
    1. <body>
    1. <h1 align="center">Beer Recommendations JSP</h1>
    1. <p>
    1. <%
    1. ArrayList styles = (ArrayList)request.getAttribute("styles");
    1. Iterator it = styles.iterator();
    1. while(it.hasNext()) {
    1. out.print("<br>try " + it.next());
    1. }
    1. %>
    1. </body>
    1. </html>

配置文件

web.xml

    1. <!DOCTYPE web-app PUBLIC
    1. "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    1. "http://java.sun.com/dtd/web-app_2_3.dtd" >
    1. <web-app>
    1. <display-name>Archetype Created Web Application</display-name>
    1. <servlet>
    1. <servlet-name>Ch3 Beer</servlet-name>
    1. <servlet-class>com.example.web.BeerSelect</servlet-class>
    1. </servlet>
    1. <servlet-mapping>
    1. <servlet-name>Ch3 Beer</servlet-name>
    1. <url-pattern>/SelectBeer.do</url-pattern>
    1. </servlet-mapping>
    1. </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. [BZOJ1797][AHOI2009]最小割Mincut

    bzoj luogu sol 一条边出现在最小割集中的必要条件和充分条件. 先跑出任意一个最小割,然后在残余网络上跑出\(scc\). 一条边\((u,v)\)在最小割集中的必要条件:\(bel[u] ...

  2. 基于Python语言使用RabbitMQ消息队列(二)

    工作队列 在第一节我们写了程序来向命名队列发送和接收消息 .在本节我们会创建一个工作队列(Work Queue)用来在多个工人(worker)中分发时间消耗型任务(time-consuming tas ...

  3. Dubbo与Zookeeper

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功 ...

  4. XSS与CSRF攻击

    一.XSS Cross Site Script,跨站脚本攻击.是指攻击者在网站上注入恶意客户端代码,通过恶意脚本对客户端网页进行篡改,从而在用户浏览网页时,对用户浏览器进行控制或者获取用户隐私数据的一 ...

  5. Python学习笔记 - MySql的使用

    一.安装MySql模块 Python2.X pip install MySQLdb Python3.X pip install pymysql 二.数据库连接接口 由于Python统一了数据库连接的接 ...

  6. 机器学习:逻辑回归(scikit-learn 中的逻辑回归)

    一.基础理解 使用逻辑回归算法训练模型时,为模型引入多项式项,使模型生成不规则的决策边界,对非线性的数据进行分类: 问题:引入多项式项后,模型变的复杂,可能产生过拟合现象: 方案:对模型正则化处理,损 ...

  7. Hudson和Jenkins的关系

    Jenkins is an open source continuous integration tool written in Java. The project was forked from H ...

  8. explain之三:MYSQL EXPLAIN语句的extended 选项学习体会,分析诊断工具之二

    MySQL 的explain命令有一个extended选项,我想可以很多人都没有注意,因为它对命令的输出结果没有任何改变,只是增加了一个warning.这个 warning中显示了MySQL对SQL的 ...

  9. C# winfrom FastReport Print

    1.引用 using FastReport; using FastReport.Barcode; 2.code private void toolStripButtonPrint_Click(obje ...

  10. Python类(三)-多继承的区别

    多继承的有两个方式,一个是广度优先,一个是深度优先Python2中经典类按深度优先,新式类按广度优先Python3中经典类和新式类都按广度优先 # -*- coding:utf-8 -*- __aut ...