《Head First Servlets & JSP》-3-1st servlet MVC demo
项目结构

用户首页
form.html
<html><body><h1 align='center'>Beer Selection Page</h1><form method="post"action="SelectBeer.do">Select<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><option value="red"> red</option></select><br/><br/><center><input type="submit"></center></form></body></html>
MVC之C——Servlet
BeerSelect.java
package com.example.web;import com.example.model.BeerExpert;import javax.servlet.RequestDispatcher;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.util.List;/*** Created by LTN on 2016/10/30.*/public class BeerSelect extends HttpServlet {public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException ,ServletException{response.setContentType("text/html");String c = request.getParameter("color");BeerExpert expert = new BeerExpert();List result = expert.getBrands(c);request.setAttribute("styles", result);RequestDispatcher view = request.getRequestDispatcher("result.jsp");view.forward(request, response);}public void doPost(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException {doGet(request,response);}}
MVC之M——模型
BeerExpert.java
package com.example.model;import java.util.ArrayList;import java.util.List;public class BeerExpert{public List getBrands(String color){List<String> brands = new ArrayList<String>();if ( color.equals("amber") ){brands.add("Jack Amber");brands.add("Red Moose");}else{brands.add("Jail Pale Ale");brands.add("Gout Stout");}return (brands);}}
MVC之V——JSP
result.jsp
<%@ page import="java.util.*" %><html><body><h1 align="center">Beer Recommendations JSP</h1><p><%ArrayList styles = (ArrayList)request.getAttribute("styles");Iterator it = styles.iterator();while(it.hasNext()) {out.print("<br>try " + it.next());}%></body></html>
配置文件
web.xml
<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><display-name>Archetype Created Web Application</display-name><servlet><servlet-name>Ch3 Beer</servlet-name><servlet-class>com.example.web.BeerSelect</servlet-class></servlet><servlet-mapping><servlet-name>Ch3 Beer</servlet-name><url-pattern>/SelectBeer.do</url-pattern></servlet-mapping></web-app>
附件列表
《Head First Servlets & JSP》-3-1st servlet MVC demo的更多相关文章
- 《Head First Servlets & JSP》-1-前言
<Head First Servlets & JSP>(中文版) BB,KS & BB著, 苏钰函,林剑译,中国电力出版社 数据交互 Web浏览器和Web服务器:通过Htt ...
- 《Head First Servlets & JSP》-7-使用JSP
学习的知识点 JSP,最后会变成一个servlet JSP最终或变成一个完整的servlet在Web应用中运行,只不过这个servlet类会由容器写好. JSP中的scriptlet 所谓script ...
- 《Head First Servlets & JSP》-8-无脚本的JSP
以前servlet和JSP交互的代码 servlet代码示例: JSP代码示例: 若属性不是一个String而是一个Bean呢? 一个简单的JavaBean servlet代码示例: JSP代码示例: ...
- 《Head First Servlets & JSP》-11-Web应用部署
Web目录 WAR文件 WAR文件只是Web应用结构的一个快照,采用了一种更可移植的压缩形式. 建立WAR文件时,就是把整个Web应用结构(去掉Web应用上下文目录,就是把WEB-INF之上的一级目录 ...
- 《Head First Servlets & JSP》-9-使用JSTL
安装JSTL1.1的说明 JSTL1.1不是JSP2.0规范的一部分,能访问servlet和JSP API并不意味着能访问JSTL. 使用JSTL之前,需要将jstl.jar文件安装到Web应用的WE ...
- 《Head First Servlets & JSP》-10-定制标记开发
标记文件:很想include,但是比include更好 建立和使用标记文件的最简方法 取一个被包含文件(如Header.jsp),把它重命名为带有一个.tag扩展名(Header.tag): 把标记文 ...
- 《Head First Servlets & JSP》-5-属性和监听
Servlet初始化参数 在DD文件(web.xml)中 Servlet参数在/参数下: 在Servlet代码中 在Servlet初始化之前不能使用Servlet初始化参数 一旦有了一个Servlet ...
- 《Head First Servlets & JSP》-6-会话管理
容器怎么知道客户是谁 Http协议是无状态连接,客户浏览器与服务器建立连接.发出请求.得到响应,然后关闭连接.即,连接只针对一个请求/响应. 对容器而言,每个请求都来自于一个新的客户. 客户需要一个唯 ...
- 《Head First Servlets & JSP》-2-概述
什么是容器 Servlet没有main()方法,他们受控于另一个Java应用,这个java应用称为容器(Container). Web服务器应用(如Apache)得到一个指向Servlet的请求(如何 ...
随机推荐
- 大鱼吃小鱼(运用stack的模拟)
个人心得:这一题在暑假集训的周测里做到过,当时就死模拟,然后卡了很久很久才做对.现在发现运用stack其实非常方便, 将向左向右游动的鱼分开,则往后走只要往右移动的就放入stack,往左的时候就与st ...
- hadoop-pig学习笔记
A1 = LOAD '/luo/lzttxt01.txt' AS (col1:chararray,col2:int,col3:int,col4:int,col5:double,col6:double) ...
- CodeSmith 基本语法(二)
CodeSmith之四 - 典型实例(四) CodeSmith API文档 (三) CodeSmith 基本语法(二) CodeSmith 图形界面基本操作(一) CodeSmith的C#语法与Asp ...
- Sentry入门
指令类型: 创建.删除角色: CREATE ROLE sentry_all; droop role admin_role; 角色授权/撤销权限: 数据库级别角色授权 GRANT ALL ON DA ...
- Python 算法之二分查找
二分查找 二分查找又称折半查找 优点是比较次数少,查找速度快,平均性能好 缺点是要求待查表为有序表,且插入删除困难 折半查找方法适用于不经常变动而查找频繁的有序列表. 猜数字游戏 1.生成一个有序列表 ...
- resize2fs: Bad magic number in super-block while trying to open /dev/centos/root Couldn't find valid filesystem superblock
今天在进行lvm扩容之后,按照惯例进行 resize2fs 操作,发现报如下错误: # resize2fs /dev/centos/root resize2fs 1.42.9 (28-Dec-2013 ...
- linux 标准化
Unix 1969 年诞生于 AT&T 贝尔实验室,并在 1973 年使用 C 语言进行了重写,从此就具有了很好的可移植性.但是当 AT&T 在 1984 年由于分拆而得以进入计算机领 ...
- asp.net自动将页面中的所有空间置为不可用以及将所有文本框置空
/// <summary> /// 遍历页面上所有控件 /// </summary> /// <param name="page">指定的Pag ...
- Struts2中web.xml里面struts-cleanup作用
struts2.1.3之后的版本均不需要配置该过滤器 参考: struts-cleanup作用 升级到struts-2.3.14.3之后涉及的改动以及ActionContextCleanUp,Stru ...
- List<T> JIT 分配策略
参考 http://www.cnblogs.com/brookshi/p/5353021.html defaultCapacity意思是new List<T>时默认大小是4. _items ...