基于 MVC 模式实现简单 航班查询系统
文章目录
- 一、前言
- 二、功能要求:
- 三、代码展示:
- View:
- Model层:
- Cotroller层:
- 四、效果展示:
- 后记:
一、前言
本文 MVC 模式的一个简单案例,可以作为 练习 MVC 模式进行测试,建议不了解 MVC 模式 的小伙伴可以先去学习一下。
二、功能要求:
要求实现根据航班号查询航班信息的功能。
(a) 初始面面为查询页面,用户在该页面输入要查询的航班号,如图1所示
(b) 用户输入航班号,点击“搜索航班”按钮时,系统将校验用户输入内容,当用户没有输入航班号直接点击“搜索航班”按钮时,将给出提示信息,如图2所示
© 用户输入航班号并点击“搜索航班”按钮后,系统提交该查询请求,并在查询结果页面上显示满足条件的航班信息,如图3所示
(d) 当系统没有找到该航班的信息时,在查询页面上显示提示信息。用户点击“返回”按钮时,页面回到查询页面,如图4所示
三、代码展示:
View:
index.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html><head><title>$Title$</title></head><body><form action="FlightServlet" method="post"><span style="color: red">${space}</span> <br><h2>航班信息查询</h2>请输入航班号:<input type="text" name = "flightNumber"><input type="submit" value="搜索航班"></form></body>
</html>
info.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head><title>Title</title>
</head>
<body>
查询结果:<c:choose><c:when test="${requestScope.error == null }"><table border="2"><tr bgcolor="red"><td>航班号</td><td>航空公司</td><td>出发机场</td><td>到达机场</td><td>出发时间</td><td>到达时间</td><td>机型</td></tr><tr><td>${flightinfo.flightid}</td><td>${flightinfo.company}</td><td>${flightinfo.leaveairport}</td><td>${flightinfo.arriveairport}</td><td>${flightinfo.leavetime}</td><td>${flightinfo.arrivetime}</td><td>${flightinfo.airplane}</td></tr></table></c:when><c:otherwise>${error}</c:otherwise></c:choose>
<a href="index.jsp">回到首页</a></body>
</html>
Model层:
==实体部分JavaBean:对应 数据库中表。 ==
package rj.entity;public class FlightInfo {private int id;private String flightid;private String company;private String leaveairport;private String arriveairport;private String leavetime;private String arrivetime;private String airplane;public FlightInfo(){};public FlightInfo(String flightid, String company, String leaveairport, String arriveairport, String leavetime, String arrivetime, String airplane) {this.flightid = flightid;this.company = company;this.leaveairport = leaveairport;this.arriveairport = arriveairport;this.leavetime = leavetime;this.arrivetime = arrivetime;this.airplane = airplane;}public FlightInfo(int id, String flightid, String company, String leaveairport, String arriveairport, String leavetime, String arrivetime, String airplane) {this.id = id;this.flightid = flightid;this.company = company;this.leaveairport = leaveairport;this.arriveairport = arriveairport;this.leavetime = leavetime;this.arrivetime = arrivetime;this.airplane = airplane;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getFlightid() {return flightid;}public void setFlightid(String flightid) {this.flightid = flightid;}public String getCompany() {return company;}public void setCompany(String company) {this.company = company;}public String getLeaveairport() {return leaveairport;}public void setLeaveairport(String leaveairport) {this.leaveairport = leaveairport;}public String getArriveairport() {return arriveairport;}public void setArriveairport(String arriveairport) {this.arriveairport = arriveairport;}public String getLeavetime() {return leavetime;}public void setLeavetime(String leavetime) {this.leavetime = leavetime;}public String getArrivetime() {return arrivetime;}public void setArrivetime(String arrivetime) {this.arrivetime = arrivetime;}public String getAirplane() {return airplane;}public void setAirplane(String airplane) {this.airplane = airplane;}@Overridepublic String toString() {return "FlightInfo{" +"flightid='" + flightid + '\'' +", company='" + company + '\'' +", leaveairport='" + leaveairport + '\'' +", arriveairport='" + arriveairport + '\'' +", leavetime='" + leavetime + '\'' +", arrivetime='" + arrivetime + '\'' +", airplane='" + airplane + '\'' +'}';}
}
Dao 层:
package rj.dao;import rj.entity.FlightInfo;
import rj.util.DBUtil;import java.sql.ResultSet;
import java.sql.SQLException;public class FlightDao {public FlightInfo findByFlightNumber(String flightNumber) throws SQLException {String sql = "select * from flightinfo where flightid = ?";Object[] params = {flightNumber};ResultSet rs = DBUtil.excucateQuery(sql, params);while(rs.next()) {String flightid = rs.getString("flightid");String company = rs.getString("company");String leaveairport = rs.getString("leaveairport");String arriveairport = rs.getString("arriveairport");String leavetime = rs.getString("leavetime");String arrivetime = rs.getString("arrivetime");String airplane = rs.getString("airplane");FlightInfo flightInfo = new FlightInfo(flightid,company,leaveairport,arriveairport,leavetime,arrivetime,airplane);System.out.println(flightInfo);return flightInfo;}return null;}}
DBUtil:数据库工具类:
package rj.util;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;/** 数据库帮助类:可以简化代码(将每个模块中重复的代码弄到一个方法中,增加代码复用)* DBUtil: 简化 Dao 层的代码** */public class DBUtil {private static final String URL = "jdbc:mysql://localhost:3306/flight?useSSL=false&&serverTimezone=UTC";private static final String User = "root";private static final String Password = "root";public static Connection conn = null;public static PreparedStatement pstam = null;public static ResultSet rs = null;public static Connection getConnection() throws ClassNotFoundException, SQLException {Class.forName("com.mysql.cj.jdbc.Driver") ;return DriverManager.getConnection( URL,User,Password ) ;}public static PreparedStatement createPreParedStatement(String sql,Object[] params) throws ClassNotFoundException, SQLException {pstam = getConnection().prepareStatement(sql) ;if(params!=null ) {for(int i=0;i<params.length;i++) {pstam.setObject(i+1, params[i]);}}return pstam;}public static boolean exeucateUpdate(String sql,Object[] pstams) {int result = 0;try {pstam = createPreParedStatement(sql,pstams);result = pstam.executeUpdate();} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} finally {try {if(rs != null) rs.close();if(pstam != null) pstam.close();if(conn != null) conn.close();} catch(SQLException e) {e.printStackTrace();}}if(result > 0) return true;else return false;}public static ResultSet excucateQuery(String sql, Object[] pstams) {try {pstam = createPreParedStatement(sql,pstams);rs = pstam.executeQuery();return rs;} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (Exception e) {e.printStackTrace();}return null;}}
Cotroller层:
业务逻辑层:
package rj.servlet;import rj.dao.FlightDao;
import rj.entity.FlightInfo;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 java.io.IOException;
import java.sql.SQLException;@WebServlet(urlPatterns = "/FlightServlet")
public class FlightServlet extends HttpServlet {private FlightDao flightDao = new FlightDao();protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String flightNumber = request.getParameter("flightNumber");System.out.println("...............................................................................");System.out.println(flightNumber);if(flightNumber.equals("") || flightNumber.trim().equals("")) {request.setAttribute("space","Sorry,您还没有输入航班号哦!");request.getRequestDispatcher("/index.jsp").forward(request,response);return;}try {FlightInfo flightinfo = flightDao.findByFlightNumber(flightNumber);if(flightinfo != null) {request.setAttribute("flightinfo",flightinfo);} else {request.setAttribute("error","没有该航班信息!");}request.getRequestDispatcher("/info.jsp").forward(request,response);} catch (SQLException e) {e.printStackTrace();}}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request,response);}
}
四、效果展示:
注意:除了MVC案例。在此赠送一套最新Java架构项目实战教程+大厂面试题库,想学的 点击此处免费获取,小白勿进哦
后记:
到此,一个 MVC 的案例就实现了,需要的小伙伴可以参考一下,参考的同时记得修改相关的包名等内容哦!如果该文对您有帮助,别忘了点个赞,点个关注哦!
感谢感谢!
基于 MVC 模式实现简单 航班查询系统相关推荐
- 简单航班查询系统java_基于jsp的航班信息查询-JavaEE实现航班信息查询 - java项目源码...
基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的航班信息查询, 该项目可用各类java课程设计大作业中, 航班信息查询的系统架构分为前后台两部分, 最终实现在线上 ...
- java 航班_Java实现简单航班查询系统-Go语言中文社区
#java实现简单航班管理系统 题目要求:声明一个Flight(航班)类,该类包含private域航班号(如:CA1430),起飞时间(如:10:15AM),到达时间(如:2:30PM).为该类声明合 ...
- Java实现简单航班查询系统
#java实现简单航班管理系统 题目要求:声明一个Flight(航班)类,该类包含private域航班号(如:CA1430),起飞时间(如:10:15AM),到达时间(如:2:30PM).为该类声明合 ...
- 基于MVC模式的电商购物系统
该平台的整体设计使用了MVC模式,实现了分层的设计.本电商购物系统主要包含了二个部分:前台客户可以直接通过电脑或客户端网站进行登录,进行商品的购买.后台管理人员可以查看所有客户的基本信息:也可以对店铺 ...
- 基于Android的航班查询系统的设计与实现
需求分析是把来自用户的信息加以分析和提炼,在功能和性能上加以描述.它是软件开发过程的初始阶段部分,它的基本任务是理解用户需要什么,确定系统必须完成哪些工作,从而对目标系统提出完整.准确.清晰.具体的要 ...
- Java 编写航班查询系统 窗体程序 完整源码
开发环境 开发语言为Java,开发环境Eclipse或者IDEA都可以.数据库采用:MySQL.运行主程序,或者执行打开JAR文件即可以运行本程序. 系统框架 利用JDK自带的SWING框架开发,需要 ...
- 基于微信小程序的教务查询系统的设计与实现
目录 1 绪论 2 1.1 研究背景 2 1.2 教务查询系统的现状和发展前景 3 1.3 系统的技术架构 3 1.4 论文框架 4 2 系统需求分析 5 2.1 系统概述 5 2.2 系统功能需求 ...
- dremio连接mysql_一种基于dremio实现跨数据源分布式查询系统和方法_2018108444691_说明书_专利查询_专利网_钻瓜专利网...
a.给选择出的最优sql配置一个sqlid和sql模板: b.sql模板会预留sql参数: c.用户通过sqlid和参数调用查询接口: d.查询接口使用模板生成dremio的sql: e.通过drem ...
- 基于MVC模式下的二手车拍卖平台设计
课程名称:<软件体系结构与设计模式> 实验项目名称:基于MVC模式下的二手车拍卖平台设计 实验内容 按下列要求编写程序并上机调试运行: 拍卖系统要又三个显示界面,分别是车体图片,文字描述和 ...
最新文章
- 2021-2027年中国玩具行业市场研究及前瞻分析报告
- java数组是不是对象_java的数组是对象吗
- PHPCMS V9数据库表结构分析
- 深度学习笔记第一门课​第四周:深层神经网络
- 每日程序C语言30-static作用
- 合适是最好,声音选项里面 声音的硬件加速到底有什么用
- 什么是“ rpcsvchost”,以及为什么它在Mac上运行?
- 论述计算机与外设的访问控制方法,试论述计算机与外设访问控制的方法有多少种各有什么优缺点...
- kafka删除topic及其相关数据
- [恢]hdu 2062
- 如何获取html输入框的值,jQuery如何获取各种input输入框的值
- 估计理论(1):最小方差无偏估计(第2章)
- 欧姆龙PLC存储区划分小结
- java cxf webservice应用
- 计算机专业学习资源合集 | 视频电子书资源
- 厨师 做菜 java_经验丰富的厨师有哪些日常做饭技巧?
- win10安装Mysql8的两种方式(安装/卸载-图文教程)
- linux安装docker并搭建DNS服务器,劫持百度小实验
- 今天的彩蛋来的有点急,请抓住!
- 第十课 讲解易语言的网络验证
热门文章
- 智能照明控制系统助力某商业综合体实现“双碳”
- Koa 框架 koa-better-body
- 如何用语音模块SYN6288播报DHT11温湿度传感器传回来的数值
- PCI/PCIe 的那些事(1)- 总线基本知识
- EXCEL中如何通过经纬度计算两点之间的距离
- 基于spring boot 的学生科研项目共享平台 毕业设计-附源码271611
- NX二次开发-UF_DRF_ask_dim_info获得图纸尺寸属于哪个视图和图纸页
- (转)协议森林10 魔鬼细节 (TCP滑窗管理)
- 攻防世界——如来十三掌 give_you_flag
- C++和Rust_自从尝了Rust,Java突然不香了