学习总结------Servlet控制器的简单运用
前言:
今天将简单的模拟 MVC模式 对Servlet控制器运行
若有不好或不对的地方,欢迎各位大神进行指导!
1.MVC模式(图)
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写

2.建包

3.建实体类
3.1可以先立一个二维表做参考作用
考虑各个字段名字、类型

3.2实体类
代码:
package entity;
public class House {
//编号
private String id;
//房子名字
private String name;
//地址
private String address;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
4.建业务逻辑类
4.1命名业务逻辑接口
代码:
package service;
import java.util.List;
import entity.House;
public interface HouseService {
public List<House> getAllHouses();
}
4.2实现类
代码:
package service; import java.util.ArrayList;
import java.util.List; import entity.House; public class HouseServiceImpl implements HouseService { @Override
public List<House> getAllHouses() {
List<House> houseList = new ArrayList<House>();
//1 光头强的家 森林188号
//2 熊大的家 森林树洞一期3楼
House h1 = new House();
House h2 = new House(); h1.setId("1");
h1.setName("光头强的家");
h1.setAddress("森林188号"); h2.setId("2");
h2.setName("熊大的家");
h2.setAddress("森林树洞一期3楼"); houseList.add(h1);
houseList.add(h2); return houseList;
} }
5.创建一个(Servlet)控制器
在action包中新建Servlet: HouseAction_showAllHouses。
调用service获取数据集List
代码:
package action; import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import entity.House;
import service.HouseService;
import service.HouseServiceImpl;
import java.util.List; @WebServlet("/HouseAction_showAllHouses")
public class HouseAction_showAllHouses extends HttpServlet {
private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HouseService houseService = new HouseServiceImpl();
List<House> houseList = houseService.getAllHouses();
//用于设置标记,在jsp页面可以获取(List)request.getAttribute();
request.setAttribute("houseList_label", houseList);
//请求并不会中断,而且继续在服务端接力运行
//并不是发出一个新的请求
//所以对于客户端的地址栏,是不会发生变化 request.getRequestDispatcher("show.jsp").forward(request,response);
//通知客户端:你发出一个新的请求:show.jsp
//response.sendRedirect("show.jsp"); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
} }
request.getRequestDispatcher().forward(request.response);
这个语句意思是将客户端的请求转向(forward)到getRequestDispatcher()方法中参数定义的页面或者链接。
说通俗点就是,当一个客户端的请求到这个页面后,不做处理或者不处理完,将请求转给另一个页面处理,然后再响应给客户端。
6.建jsp页面
建立一个show.jsp,取得request对象中的List。
核心代码:request.getAttribute("houseList_label");
代码:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.List" %>
<%@ page import="entity.House" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
//获得Servlet标记的“houseList_label”
List<House> houseList = (List)request.getAttribute("houseList_label");
%>
行<br> <table width="70%" border="0" cellspacing="1" cellpadding="1" align="center" bgcolor="#000099">
<tr bgcolor="#FFFFFF"> <td>编号</td>
<td>名字</td>
<td>地址</td>
</tr>
<%
for(House house:houseList){
%>
<tr bgcolor="#FFFFFF">
<td><%=house.getId()%></td>
<td><%=house.getName()%></td>
<td><%=house.getAddress()%></td>
</tr>
<%
}
%>
</table>
</body>
</html>
7.在浏览器(客户端)中查看
地址:

学习总结------Servlet控制器的简单运用的更多相关文章
- 学习总结------Servlet的简单理解
1.什么是Servlet Servlet是一个Java编写的程序,在服务器端运行的(如tomcat) Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览 ...
- android菜鸟学习笔记31----Android使用百度地图API(二)获取地理位置及地图控制器的简单使用
1.获取当前地理位置: Android中提供了一个LocationManager的类,用于管理地理位置.不能通过构造函数获取该类的实例,而是通过Context的getSystemService(): ...
- 【转载】JMeter学习(一)工具简单介绍
JMeter学习(一)工具简单介绍 一.JMeter 介绍 Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序).它可以用来测试静 ...
- jsp+servlet+mysql 实现简单的银行登录转账功能
jsp+servlet+mysql 实现简单的银行登录转账功能 [前期的准备] html(登录界面),servlet(处理业务逻辑),jsp(主要实现界面),mysql(实现与数据库的简单的交互)先从 ...
- Servlet介绍以及简单实例
一.背景介绍: HTTP:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.设计HTTP最初的目的是为了提供一种发布和接收 HTM ...
- JavaWeb学习——了解Servlet
JavaWeb学习——了解Servlet 摘要:本文主要学习了什么是Servlet,以及如何使用Servlet进行开发. 基础知识 背景 随着互联网技术的发展,基于HTTP和HTML的web应用急速增 ...
- 我的MYSQL学习心得(一) 简单语法
我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- javaweb学习总结 servlet开发(一)
转载:http://www.cnblogs.com/xdp-gacl/p/3760336.html 这里主要是将其加入自己的理解过一遍. 这里的代码全在eclipse java ee中执行的. 一.s ...
- [转载]SharePoint 2013搜索学习笔记之搜索构架简单概述
Sharepoint搜索引擎主要由6种组件构成,他们分别是爬网组件,内容处理组件,分析处理组件,索引组件,查询处理组件,搜索管理组件.可以将这6种组件分别部署到Sharepoint场内的多个服务器上, ...
随机推荐
- IE报vuex requires a Promise polyfill in this browser问题解决
使用Vuex, IE浏览器报错 因为使用了 ES6 中用来传递异步消息的的Promise,而IE低版本的浏览器不支持. ##解决方法 第一步: 安装 babel-polyfill . babel-po ...
- 蓝桥杯-逆波兰表达式-java
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...
- pthread的lowlevellock
pthread的lowlevellock是futex的最简单的锁应用.也是pthread其它同步原语最基本的锁.lowlevellock提供(或实现)了三种锁(方法),一是基于0或1的互斥的锁规则,二 ...
- 新年伊始,.net菜鸟入院的第一篇随笔
学习.net有半年了,大二一年都是微软校园的负责人,但是因为根本没有系统的学习过编程的知识,所以一直都是活动负责人的身份,忙忙碌碌也没有什么收获,大三一狠心就退了,想能够踏踏实实的敲敲代码,手上的学习 ...
- MySQL 闪回工具之 binlog2sql
生产上误删数据.误改数据的现象也是时常发生的现象,作为 DBA 这时候就需要出来补锅了,最开始的做法是恢复备份,然后从中找到需要的数据再进行修复,但是这个时间太长了,对于大表少数数据的修复来讲,动作太 ...
- 【持久化框架】Mybatis简介与原理
从这篇博文开始我们学习一下Mybatis,希望大家提出宝贵的建议. 什么是Mybatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache softwar ...
- SparkMLlib学习分类算法之逻辑回归算法
SparkMLlib学习分类算法之逻辑回归算法 (一),逻辑回归算法的概念(参考网址:http://blog.csdn.net/sinat_33761963/article/details/51693 ...
- Java源码学习 -- java.lang.StringBuilder,java.lang.StringBuffer,java.lang.AbstractStringBuilder
一直以来,都是看到网上说“ StringBuilder是线程不安全的,但运行效率高:StringBuffer 是线程安全的,但运行效率低”,然后默默记住:一个是线程安全.一个线程不安全,但对内在原因并 ...
- iOS最新企业证书的生成
PS:不知道什么原因 图片显示不出来 请看我简书里面的文章 http://www.jianshu.com/p/baab03ac43e9 1.生成CSR文件 SpotLight搜索>钥匙串访问 ...
- iOS crash日志分析
iOS crash日志分析 一. 寻找crash文件:手机崩溃后的ips或者crash文件(ips文件可以直接修改成crash文件,直接改后缀名就可以了),这里说下如何拿到crash文件 1. 把运行 ...