文章目录

  • 一、前言
  • 二、功能要求:
  • 三、代码展示:
    • 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&amp&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 模式实现简单 航班查询系统相关推荐

  1. 简单航班查询系统java_基于jsp的航班信息查询-JavaEE实现航班信息查询 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的航班信息查询, 该项目可用各类java课程设计大作业中, 航班信息查询的系统架构分为前后台两部分, 最终实现在线上 ...

  2. java 航班_Java实现简单航班查询系统-Go语言中文社区

    #java实现简单航班管理系统 题目要求:声明一个Flight(航班)类,该类包含private域航班号(如:CA1430),起飞时间(如:10:15AM),到达时间(如:2:30PM).为该类声明合 ...

  3. Java实现简单航班查询系统

    #java实现简单航班管理系统 题目要求:声明一个Flight(航班)类,该类包含private域航班号(如:CA1430),起飞时间(如:10:15AM),到达时间(如:2:30PM).为该类声明合 ...

  4. 基于MVC模式的电商购物系统

    该平台的整体设计使用了MVC模式,实现了分层的设计.本电商购物系统主要包含了二个部分:前台客户可以直接通过电脑或客户端网站进行登录,进行商品的购买.后台管理人员可以查看所有客户的基本信息:也可以对店铺 ...

  5. 基于Android的航班查询系统的设计与实现

    需求分析是把来自用户的信息加以分析和提炼,在功能和性能上加以描述.它是软件开发过程的初始阶段部分,它的基本任务是理解用户需要什么,确定系统必须完成哪些工作,从而对目标系统提出完整.准确.清晰.具体的要 ...

  6. Java 编写航班查询系统 窗体程序 完整源码

    开发环境 开发语言为Java,开发环境Eclipse或者IDEA都可以.数据库采用:MySQL.运行主程序,或者执行打开JAR文件即可以运行本程序. 系统框架 利用JDK自带的SWING框架开发,需要 ...

  7. 基于微信小程序的教务查询系统的设计与实现

    目录 1 绪论 2 1.1 研究背景 2 1.2 教务查询系统的现状和发展前景 3 1.3 系统的技术架构 3 1.4 论文框架 4 2 系统需求分析 5 2.1 系统概述 5 2.2 系统功能需求 ...

  8. dremio连接mysql_一种基于dremio实现跨数据源分布式查询系统和方法_2018108444691_说明书_专利查询_专利网_钻瓜专利网...

    a.给选择出的最优sql配置一个sqlid和sql模板: b.sql模板会预留sql参数: c.用户通过sqlid和参数调用查询接口: d.查询接口使用模板生成dremio的sql: e.通过drem ...

  9. 基于MVC模式下的二手车拍卖平台设计

    课程名称:<软件体系结构与设计模式> 实验项目名称:基于MVC模式下的二手车拍卖平台设计 实验内容 按下列要求编写程序并上机调试运行: 拍卖系统要又三个显示界面,分别是车体图片,文字描述和 ...

最新文章

  1. 2021-2027年中国玩具行业市场研究及前瞻分析报告
  2. java数组是不是对象_java的数组是对象吗
  3. PHPCMS V9数据库表结构分析
  4. 深度学习笔记第一门课​第四周:深层神经网络
  5. 每日程序C语言30-static作用
  6. 合适是最好,声音选项里面 声音的硬件加速到底有什么用
  7. 什么是“ rpcsvchost”,以及为什么它在Mac上运行?
  8. 论述计算机与外设的访问控制方法,试论述计算机与外设访问控制的方法有多少种各有什么优缺点...
  9. kafka删除topic及其相关数据
  10. [恢]hdu 2062
  11. 如何获取html输入框的值,jQuery如何获取各种input输入框的值
  12. 估计理论(1):最小方差无偏估计(第2章)
  13. 欧姆龙PLC存储区划分小结
  14. java cxf webservice应用
  15. 计算机专业学习资源合集 | 视频电子书资源
  16. 厨师 做菜 java_经验丰富的厨师有哪些日常做饭技巧?
  17. win10安装Mysql8的两种方式(安装/卸载-图文教程)
  18. linux安装docker并搭建DNS服务器,劫持百度小实验
  19. 今天的彩蛋来的有点急,请抓住!
  20. 第十课 讲解易语言的网络验证

热门文章

  1. 智能照明控制系统助力某商业综合体实现“双碳”
  2. Koa 框架 koa-better-body
  3. 如何用语音模块SYN6288播报DHT11温湿度传感器传回来的数值
  4. PCI/PCIe 的那些事(1)- 总线基本知识
  5. EXCEL中如何通过经纬度计算两点之间的距离
  6. 基于spring boot 的学生科研项目共享平台 毕业设计-附源码271611
  7. NX二次开发-UF_DRF_ask_dim_info获得图纸尺寸属于哪个视图和图纸页
  8. (转)协议森林10 魔鬼细节 (TCP滑窗管理)
  9. 攻防世界——如来十三掌 give_you_flag
  10. C++和Rust_自从尝了Rust,Java突然不香了