第七次作业--MVC

1.什么是MVC?

MVC模式(Model–view–controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)

1.1 根据MVC系列教材(一),加深对MVC的理解

1.1.1只使用Sevlet的短处
 format.append("<!DOCTYPE html>");
  
        format.append("<form action='updateHero' method='post'>");
        format.append("名字 : <input type='text' name='name' value='%s' > <br>");
        format.append("血量 : <input type='text' name='hp'  value='%f' > <br>");
        format.append("伤害: <input type='text' name='damage'  value='%d' > <br>");
        format.append("<input type='hidden' name='id' value='%d'>");
        format.append("<input type='submit' value='更新'>");
        format.append("</form>");

这段是写在Servlet中的html代码片段。直观感受就是可读性差,也不方便后期修改维护

1.1.2只使用jsp的短处

在Servlet里面写html代码,有缺点,那如果把html放到JSP文件中,就会干净很多

<form action='updateHero' method='post'>
    名字 : <input type='text' name='name' value='<%=hero.getName()%>'> <br>
    血量 :<input type='text' name='hp' value='<%=hero.getHp()%>'> <br>
    伤害: <input type='text' name='damage' value='<%=hero.getDamage()%>'> <br>
    <input type='hidden' name='id' value='<%=hero.getId()%>'>
    <input type='submit' value='更新'>
</form>

那JSP有什么缺点呢?How2j说,JSP写java代码不方便。
但是其实我觉得这条不成立。JSP写Java代码无非就是用<% %>把java代码括起来,其实很方便。。。

1.1.3 结合Servlet和JSP

核心思想就是Servlet只用来查询数据库,JSP只用来获取从Servlet传过来的对象。
说白了就是:Servlet只写Java, JSP只写html

1.1.5 MVC设计模式

MVC分别是Model, View, Controller

  • Model 模型,模型就是数据,也就是Servlet获取的东西
  • View 视图, 也就是JSP展示的东西
  • Controller 控制器,把不同的数据显示在不同的视图上

2.进行增删改查操作

先阅读老师发的两篇文章:

2.1 MVC系列教材 (二)- 结合Servlet和JSP 实现查询功能

2.2 新建数据库和表

由于我新建的how2java数据库在每次重启Mysql-Front之后都会消失(不知道为什么), 所以我干脆直接在已有的test数据库中新建了一张hero数据表,如下图
image

3下载how2j中的案例并解压(已在第五步修改)

这一步我在week6的项目中已经做过一次,因此这里只需把week6中的jar文件复制粘贴到week8_MVC中的WEB-INF/lib下即可
image

4.进行查询操作

4.1修改数据库的名称,用户名和密码

image

4.2修改Servlet相关文件

本来我的文件都是安装how2j上搞好了,但是老师说web.xml配置的方法容易出现Servlet不能运行的情况,因此在此对涉及Servlet的部分进行修改。
修改后如图:
image
需要注意的是,记得引入以下几个包,否则第22行List, HeroDAO()会报错

import java.util.List;
import bean.Hero;
import dao.HeroDAO;

4.3运行结果

image
这里我的数据表啥也没有。。
调了半个多小时,不知道问题出在哪,就是看不到数据。暂时先把剩下的步骤做完,再回来看看。

5.EL和JSTL 参考EL表达式, JSTL --图文并茂详解

image
这段报错是因为在3中我只放了jar文件,文件没有放完全。原因是这次的作业与上次相比,多用到了EL和JSTL,因此需要添加相应的依赖。
此处补上。以下这一段是对3的补充修改:


下载地址:MVC系列教材 (五)- CRUD
经过一番周折,终于修改成功
image


5.1进入正题: 什么是EL和JSTL?

  • EL是指Expression Language,它是一种用于在JSP页面中访问JavaBean属性和其他对象的简洁语言。 EL可以帮助开发人员避免使用脚本片段来访问Java对象,从而简化了JSP页面的编写。
  • JSTL是指JSP Standard Tag Library,它是一组自定义标签,用于简化在JSP页面中执行常见任务的操作。 包括条件语句、循环和格式化等。JSTL标签库提供了比Java代码更简单且易于维护的方式来处理这些任务。

通过上述概念,大致可以明白EL和JSTL都是用来简化JSP页面的。EL用来访问JavaBean属性和其他对象,JSTL用来简化在JSP页面中执行的常见任务操作。

5.2 追问:什么是JavaEean属性?

JavaBean属性是指在Java类中定义的成员变量,并且这些变量可以通过公共的getter和setter方法来访问。JavaBean通常用于存储应用程序数据,例如用户输入、数据库记录等。
JavaBean属性的命名约定遵循驼峰式命名法,即属性名由多个单词组成,首字母小写,每个单词的首字母大写,例如"firstName"和"lastName"。
在JSP页面中,可以通过EL表达式或JSTL标签库来访问JavaBean属性,从而将数据从Java代码传递到JSP页面上。

这段概念中最重要的是最后一句:可以通过EL表达式或JSTL标签库来访问JavaBean属性,从而将数据从Java代码传递到JSP页面上。


经过长时间测试,还是没有发现4.3中为什么不能正常显示出数据。暂时先这样,后续如果发现问题再做修改。


经过这几天的琢磨,在chatGPT的帮助下,终于有了进展。我之前的修改方向一直放在了eclipse上面,chatGPT让我检查一下表头属性的类型,我发现原来问题出在我表头的类型和老师提供的不完全一样。当我把类型修改好以后,一张完整的表格终于能正常显示了。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值