本文 MVC 模式的一个简单案例,可以作为 练习 MVC 模式进行测试,建议不了解 MVC 模式 的小伙伴可以先去学习一下。 要求实现根据航班号查询航班信息的功能。 © 用户输入航班号并点击“搜索航班”按钮后,系统提交该查询请求,并在查询结果页面上显示满足条件的航班信息,如图3所示 (d) 当系统没有找到该航班的信息时,在查询页面上显示提示信息。用户点击“返回”按钮时,页面回到查询页面,如图4所示 index.jsp: info.jsp ==实体部分JavaBean:对应 数据库中表。 == Dao 层: DBUtil:数据库工具类: 业务逻辑层: 到此,一个 MVC 的案例就实现了,需要的小伙伴可以参考一下,参考的同时记得修改相关的包名等内容哦!如果该文对您有帮助,别忘了点个赞,点个关注哦!一、前言
二、功能要求:
(a) 初始面面为查询页面,用户在该页面输入要查询的航班号,如图1所示
(b) 用户输入航班号,点击“搜索航班”按钮时,系统将校验用户输入内容,当用户没有输入航班号直接点击“搜索航班”按钮时,将给出提示信息,如图2所示
三、代码展示:
View:
<%@ 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>
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ taglib prefix="c" uri="https://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层:
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; } @Override public String toString() { return "FlightInfo{" + "flightid='" + flightid + ''' + ", company='" + company + ''' + ", leaveairport='" + leaveairport + ''' + ", arriveairport='" + arriveairport + ''' + ", leavetime='" + leavetime + ''' + ", arrivetime='" + arrivetime + ''' + ", airplane='" + airplane + ''' + '}'; } }
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; } }
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 block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.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 block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.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); } }
四、效果展示:
后记:
感谢感谢!
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算