使用MVC模式开发程序,完成数据的模糊查询【转】

编写程序:使用MVC模式开发程序,完成数据的模糊查询。

要求:

(1)index.jsp用于输入要查询的数据。

(2)result.jsp:用于显示结果。

(3)queryServlet:用于验证数据、实例化JavaBean、调用连接数据库、控制页面跳转

(4)queryDAO:用于连接数据库及进行数据库的操作如:查询、删除、更改等

(5)Student:JavaBean用于数据的封装,方便将查询结果在servlet与jsp页面之间进行传递等

以上几个部分共同构成了MVC模式,JSP为MVC模式当中的V,Servlet为C,queryDAO与JavaBean合在一起为M。

[html] view plaincopyprint?

  1. <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
  2. <%
  3. String path = request.getContextPath();
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  5. %>
  6. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  7. <html>
  8. <head>
  9. <base href="<%=basePath%>">
  10. <title>My JSP ‘index.jsp‘ starting page</title>
  11. <meta http-equiv="pragma" content="no-cache">
  12. <meta http-equiv="cache-control" content="no-cache">
  13. <meta http-equiv="expires" content="0">
  14. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  15. <meta http-equiv="description" content="This is my page">
  16. <!--
  17. <link rel="stylesheet" type="text/css" href="styles.css">
  18. -->
  19. </head>
  20. <body>
  21. 请输入要查询的内容:
  22. <form action="queryServlet" method="post">
  23. <input name="name">
  24. <input type="submit" value="模糊查询">
  25. </form>
  26. </body>
  27. </html>

[html] view plaincopyprint?

  1. <%@ page language="java" import="java.util.*,com.mars.*" pageEncoding="gb2312"%>
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  3. <html>
  4. <head>
  5. <title>查询结果</title>
  6. </head>
  7. <body>
  8. 查询结果如下:
  9. <table border="1">
  10. <tr>
  11. <td>学号</td>
  12. <td>姓名</td>
  13. <td>年龄</td>
  14. <td>性别</td>
  15. <td>地址</td>
  16. </tr>
  17. <%
  18. ArrayList arrayList = (ArrayList)request.getAttribute("arrayList");
  19. for(int i=0; i<arrayList.size();i++){
  20. Student student = (Student)arrayList.get(i);
  21. %>
  22. <tr>
  23. <td><%=student.getId()%></td>
  24. <td><%=student.getName()%></td>
  25. <td><%=student.getAge()%></td>
  26. <td><%=student.getSex()%></td>
  27. <td><%=student.getAddress()%></td>
  28. </tr>
  29. <%
  30. }
  31. %>
  32. </table>
  33. </body>
  34. </html>

[html] view plaincopyprint?

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app version="2.4"
  3. xmlns="http://java.sun.com/xml/ns/j2ee"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
  6. http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  7. <welcome-file-list>
  8. <welcome-file>index.jsp</welcome-file>
  9. </welcome-file-list>
  10. <servlet>
  11. <servlet-name>queryServlet</servlet-name>
  12. <servlet-class>com.mars.queryServlet</servlet-class>
  13. </servlet>
  14. <servlet-mapping>
  15. <servlet-name>queryServlet</servlet-name>
  16. <url-pattern>/queryServlet</url-pattern>
  17. </servlet-mapping>
  18. </web-app>

[java] view plaincopyprint?

  1. package com.mars;
  2. public class Student {
  3. private int id;
  4. private String name;
  5. private String sex;
  6. private int age;
  7. private String address;
  8. public int getId() {
  9. return id;
  10. }
  11. public void setId(int id) {
  12. this.id = id;
  13. }
  14. public String getName() {
  15. return name;
  16. }
  17. public void setName(String name) {
  18. this.name = name;
  19. }
  20. public String getSex() {
  21. return sex;
  22. }
  23. public void setSex(String sex) {
  24. this.sex = sex;
  25. }
  26. public int getAge() {
  27. return age;
  28. }
  29. public void setAge(int age) {
  30. this.age = age;
  31. }
  32. public String getAddress() {
  33. return address;
  34. }
  35. public void setAddress(String address) {
  36. this.address = address;
  37. }
  38. }

[java] view plaincopyprint?

  1. package com.mars;
  2. import java.io.IOException;
  3. import java.util.ArrayList;
  4. import javax.servlet.ServletException;
  5. import javax.servlet.http.HttpServlet;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. import com.mars.QueryDAO;
  9. public class queryServlet extends HttpServlet {
  10. public void doPost(HttpServletRequest request, HttpServletResponse response)
  11. throws ServletException, IOException {
  12. request.setCharacterEncoding("GBK");
  13. response.setCharacterEncoding("GBK");
  14. String name = request.getParameter("name");
  15. QueryDAO qd = new QueryDAO();
  16. ArrayList arrayList = qd.queryLike(name);
  17. request.setAttribute("arrayList", arrayList);
  18. request.getRequestDispatcher("/result.jsp").forward(request, response);
  19. }
  20. }

[java] view plaincopyprint?

  1. package com.mars;
  2. import java.sql.*;
  3. import java.util.ArrayList;
  4. import com.mars.Student;
  5. public class QueryDAO {
  6. private Connection conn = null;
  7. public QueryDAO() {
  8. try {
  9. Class.forName("com.mysql.jdbc.Driver");
  10. conn = DriverManager.getConnection(
  11. "jdbc:mysql://localhost:3306/testmvc", "root", "root");
  12. } catch (ClassNotFoundException e) {
  13. e.printStackTrace();
  14. } catch (SQLException e) {
  15. e.printStackTrace();
  16. }
  17. }
  18. public ArrayList queryLike(String name) {
  19. ArrayList arrayList = new ArrayList();
  20. String SQL = "select * from student where name like" + "‘%" + name
  21. + "%‘" + "or address like " + "‘%" + name + "%‘";
  22. try {
  23. ResultSet resultSet = conn.createStatement().executeQuery(SQL);
  24. while (resultSet.next()) {
  25. Student student = new Student();
  26. student.setId(resultSet.getInt("id"));
  27. student.setName(resultSet.getString("name"));
  28. student.setAge(resultSet.getInt("age"));
  29. student.setSex(resultSet.getString("sex"));
  30. student.setAddress(resultSet.getString("address"));
  31. arrayList.add(student);
  32. }
  33. } catch (SQLException e) {
  34. e.printStackTrace();
  35. }
  36. return arrayList;
  37. }
  38. public static void close(Connection conn) {
  39. if (conn != null) {
  40. try {
  41. conn.close();
  42. } catch (SQLException e) {
  43. e.printStackTrace();
  44. }
  45. conn = null;
  46. }
  47. }
  48. public static void close(Statement stmt) {
  49. if (stmt != null) {
  50. try {
  51. stmt.close();
  52. } catch (SQLException e) {
  53. e.printStackTrace();
  54. }
  55. stmt = null;
  56. }
  57. }
  58. }

[sql] view plaincopyprint?

    1. drop database testmvc;
    2. create database testmvc;
    3. use testmvc;
    4. create table student (
    5. id int not null primary key auto_increment,
    6. name varchar(10),
    7. age int,
    8. sex varchar(2),
    9. address varchar(50)
    10. );
    11. insert into student values(null,‘张三‘,20,‘男‘,‘北京市东城区天安门‘);
    12. insert into student values(null,‘李四‘,21,‘男‘,‘上海市东城区天安门‘);
    13. insert into student values(null,‘王五‘,22,‘男‘,‘天津市东城区天安门‘);
    14. insert into student values(null,‘赵六‘,23,‘男‘,‘南京市东城区天安门‘);
    15. insert into student values(null,‘孙七‘,24,‘男‘,‘福建省东城区天安门‘);
    16. insert into student values(null,‘钱八‘,25,‘男‘,‘长沙市东城区天安门‘);
    17. insert into student values(null,‘刘九‘,26,‘男‘,‘武汉市东城区天安门‘);

使用MVC模式开发程序,完成数据的模糊查询【转】

时间: 2024-10-18 20:29:57

使用MVC模式开发程序,完成数据的模糊查询【转】的相关文章

分层模式开发+MVC模式开发--韩顺平雇员数据库管理

1.分层模式 在使用分层设计模式编写代码之前,我们更多的是采用面向过程然后眉毛胡子一把抓,在一两个程序代码里写完所有的功能,这样只适合于小型个人项目.因为不利于阅读和修改,只有编程的个人比较熟悉程序的结构.这不利于程序的扩展性和协同开发.所以,我们引入一个固定的模式来进行编程,使得所有代码结构清晰明确,而且易于扩展延伸. 此处介绍的一种模式是分层模式.把程序分成几个层次:界面层.业务逻辑层.数据层. 界面层:主要功能就是实现界面的显示.比如要在登陆页面显示输入框之类,就需要login.php中放

【Web开发】Mean web开发 01-Express实现MVC模式开发

简介 Mean是JavaScript的全栈开发框架.更多介绍 用Express实现MVC模式开发是Mean Web全栈开发中的一部分. Express 是一个基于 Node.js 平台的极简.灵活的 web 应用开发框架,它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用.Express官网. 两种文件夹结构 水平文件夹结构: 按照文件的功能来分类.整个应用的分类都放在一个按照MVC文件夹结构组合的目录之中.例如: app文件夹用于保存Express应用的逻辑部分相关代码,包含: c

MVC模式开发图书商城项目分析

MVC模式开发图书商城项目分析 1. 功能分析 1.用户注册 2.用户登录 3.添加商品(CURD) 4.商品查看-- 列表查询 5.商品详情页面 6.将商品添加购物车 7.查看购物车 8.修改购物车 9.生成订单 10.订单查看(取消) 11.在线支付 12.下载销售榜单 游客(未登录): 注册.登陆.商品查看 商城注册用户 : 商品查看.添加商品到购物车.购物车管理.生成订单.订单管理.在线支付 管理员 : 添加商品.商品管理.查看订单 .榜单查看(导出) 2. 系统设计 1技术选型 (系统

第一个MVC模式的程序

数据库 是一个SQL sever数据库,结构很简单,创建名为firstMVC的数据库,只包含一个数据表(名称为Persons),其中共有三列,分别用于保存人员(persons)的ID.姓名以及创建日期: 数据库信息: 模型 需要一个数据模型与数据库进行通信并处理数据.使用LINQ to SQL 从数据库检索数据.在Model文件夹添加一个新的LINQ to SQL项目条目,并将其名称指定为Persons.然后连接数据库,拖动Persons数据表,将其从服务器资源管理器拖动到LINQ to SQL

使用mvc模式开发网站

看了韩顺平的j2ee的视频后,吧里面教的做了出来,感觉好极了,新手上路!!! 这个肯定不是原创,但是也不是转载,那我就姑且把它作为翻译吧,给其他看视频学习但是没有代码的同学一点福利吧 首先是login.jsp的登陆界面代码. <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <% String path = request.getConte

Extjs MVC模式开发,循序渐进,Helloworld

MVC模式案例(一) 即将实现网页的布局有三部分组成:顶部标题.左侧菜单和右侧主题内容显示.这里我们对案例的布局有个初步印象,方便今后我们的进一步学习. 了解了项目的最终效果,下面来看一下该案例最终的文件结构: 文件结构可以看出,在整个项目中,app文件夹是我们的主要工作目录,其中包含:controller(控制器).model(数据模型).store(数据集).view(视图).另外还有server文件夹,其主要目的是代替后台服务器为项目提供数据.这些内容我们将在今后的文章中逐步讲解,今天我们

.net使用mvc模式开发web应用 模型与视图间的数据处理

http://www.cnblogs.com/JeffreyZhao/archive/2009/02/27/mvc-use-strong-type-everywhere.html#3427764 本文来自于 主要讲到尽可能使用强类型作为action与view间的数据传递介质 不使用viewdata 为每一个视图建立一个数据传递Molde 缘由: 1.使用ViewData的坏处是必须使用字符串作为键进行访问.字符串是什么?是常量.分散在各处的常量是维护性的大敌,而使用ViewData则几乎无可避免

c# MVC模式学习笔记_数据验证

改变显示字段名称 设计字段规范 1.引用 1 using System.ComponentModel; 2 using System.ComponentModel.DataAnnotations; 2.DisplayName值 public class Book { public int BookID { get; set; } [DisplayName("ISBN")] public string isbn { get; set; } [DisplayName("图书名称:

Swing程序最佳架构设计—以业务对象为中心的MVC模式(转)

前言: 我打算写一系列关于Swing程序开发的文章.这是由于最近我在做一个Swing产品的开发.长期做JavaEE程序,让我有些麻木了.Swing是设计模式的典范,是一件优雅的艺术品,是一件超越时代的产品! 有机会作Swing软件的开发,让我非常有感觉! 呵呵,希望有机会能够用Java3D编写软件,那种感觉一定更棒! Java和Swing都是杰作.我这个人对别人一向很挑剔的,能够得到我由衷地赞誉,可想而知它们有多优秀了.奇怪的是,它们居然一直都无法占领桌面市场.有人说这是技术的原因.我认为这应该