使用基于MVC2模式创建新闻网站

news/2024/5/13 19:43:39/文章来源:https://blog.csdn.net/weixin_30478757/article/details/96274072

1.什么是MVC

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

(1)Model层:Model指模型部分,一般在应用中Model层包括业务处理层和数据访问层。数据访问层主要是对数据库的一些操作的封装。业务处理层应用JavaBean构建,  JavaBean主要是用作将从View层获取的数据和数据库的数据进行桥接。除却JavaBean以外,若想构建分布式应用系统,可以应用EJB组件进行业务逻辑层的构建。

 

(2)Controller层:Controller指控制部分,一般是对View层提交的请求为其设置对应的Servlet进行特定功能的处理,这里的进行特定功能的处理一般是编写在Model中的业务处理层中的。Controller一般只是在Web应用中充当一个中介者的作用。

 

(3)View层:View指视图部分,这一部分的内容是展示给用户实际进行交互的,通常使用JSP和HTML进行构建(个人比较喜欢以HTML嵌入JSP的方式来构建网页)。

 

综上来说,一个小型完整的基于MVC设计模式的Web应用程序的处理流程应该如下:

 

 

      由上面的图中我们可以看出,用户在客户端(Web应用的客户端即为浏览器)中发出请求的时候,请求首先由View层的JSP/HTML将HTTP请求传给控制器中对应的Servlet,然后由Servlet负责调用Model层中的业务逻辑处理部分进行要求的处理,处理期间如果设计数据库的操作,则与数据库进行操作,最后全部操作结束之后,由业务逻辑层将结果发给控制层,控制层以HTTP响应的形式将结果发送回客户端。

 

 

MVC编程模式

MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式: [1] 
  • Model(模型)表示应用程序核心(比如数据库记录列表)。
  • View(视图)显示数据(数据库记录)。
  • Controller(控制器)处理输入(写入数据库记录)。
MVC 模式同时提供了对 HTML、CSS 和 JavaScript 的完全控制。
Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。
  通常模型对象负责在数据库中存取数据。
View(视图)是应用程序中处理数据显示的部分。
  通常视图是依据模型数据创建的。
Controller(控制器)是应用程序中处理用户交互的部分。
  通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
MVC 分层有助于管理复杂的应用程序,因为您可以在一个时间内专门关注一个方面。例如,您可以在不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易。
MVC 分层同时也简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。

新闻网站项目结构:

package myJava;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import java.util.List;public final class DBConn {@Test//连接数据库public  static SqlSession getSqlSession() {String resource = "myXML/mybatis-config.xml";InputStream inputStream = null;SqlSession session = null;try {inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);session = sqlSessionFactory.openSession();} catch (IOException e) {e.printStackTrace();}return session;}//校验用户信息public static Boolean check(Employee emp){SqlSession sqlSession = getSqlSession();try {//selectOne的第一个参数为Mapper.xml的mapper的namespace+id//参数二为映射的需要传入的参数Employee employee = sqlSession.selectOne("EmployeeMapper.selectEmployee_name", emp.getName());if (employee!=null && employee.getPassword().equals(emp.getPassword()))return true;elsereturn false;} finally {free(sqlSession);}}//获取数据库的全部数据public static List<News> getAllNews(){SqlSession sqlSession = getSqlSession();List<News> list = sqlSession.selectList("EmployeeMapper.selectNews");free(sqlSession);return list;}public static News getNewsById(int id){SqlSession sqlSession = getSqlSession();News news = sqlSession.selectOne("EmployeeMapper.selectById",id);free(sqlSession);return news;}//向数据库添加数据,并且需要sqlSession.commit()public static void insertNews(News news){SqlSession sqlSession = getSqlSession();int result =sqlSession.insert("EmployeeMapper.insertNews",news);sqlSession.commit();free(sqlSession);}//删除新闻public static int deleteNews(int id){SqlSession sqlSession = getSqlSession();int result = sqlSession.delete("EmployeeMapper.deleteNewsById",id);sqlSession.commit();free(sqlSession);return result;}//修改新闻信息public static int upDataNewsById(News news){SqlSession sqlSession = getSqlSession();int res = sqlSession.update("EmployeeMapper.upDataNewsById",news);sqlSession.commit();free(sqlSession);return res;}//释放Sqlsessionpublic static void free(SqlSession sqlSession){sqlSession.close();}
}

 

 

转载于:https://www.cnblogs.com/houjiangbo/p/10885018.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_785332.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Yum项目上线实战 (网站运维)-Linux从入门到精通第十一天(非原创)

文章大纲 一、编译安装与卸载Nginx二、关于LAMP三、LAMP环境部署四、学习资料下载五、参考文章 一、编译安装与卸载Nginx Nginx&#xff1a;是一款比较流行的web服务器软件&#xff0c;类似于Apache。 1. Ngnix基础知识与Windows版本安装 https://www.cnblogs.com/WUXIAOCHANG/…

在CentOS 上搭建nginx来部署静态页面网站

在centOs 上搭建nginx来部署静态页面网站 一、部署服务器环境 nginx&#xff1a;轻量级、高性能的HTTP及反向代理服务器&#xff0c;占用内存少&#xff0c;并发能力强&#xff0c;相比老牌的apache作为web服务器&#xff0c;性能更加卓越。 在centOs上&#xff0c;是可以直接用…

爬虫(中文网站)使用lxml解析,出现乱码的解决方案

目录 0x00 问题描述 0x01 解决方案一 0x02 解决方案二 0x00 问题描述 如标题 0x01 解决方案一 情形一 打印结果如下&#xff1a;lantern_riddles为list 解决办法&#xff1a; lantern_riddles str(lantern_riddles).encode(ISO-8859-1).decode(gbk) 0x02 解决方案二 情…

利用haohedi的网页爬虫任务从网站上爬取数据

HHDI爬虫任务配置说明一、 摘要爬虫任务可以从主流网站爬取相关数据存储到目标数据库表或者服务器本地文件夹spider-data中&#xff0c;支持以html和json的形式保存原网页信息。二、 操作步骤本文以安居客&#xff08;https://yt.anjuke.com/sale/laishanqu/&#xff09;网站为…

大华网络摄像头ip搜索工具_茂名搜索营销工具 - 网站建设 - 万词霸屏网络营销-百度优化排名...

茂名搜索营销工具他说站真的不是短期就能见到效果的&#xff0c;我们刚开始在执行诊断方案时很浮躁且缺乏耐心&#xff0c;虽然有良好的执行力&#xff0c;但缺了耐心真的无法继续做下去。站&#xff0c;维诺团队除了建议他多等几个月&#xff0c;把该做的都完善下&#xff0c;…

laravel 开发的双语网站_8 个适合程序员学习新技能的网站

code小生 一个专注大前端领域的技术平台公众号回复Android加入安卓技术群程序员书库(ID:CodingBook)猿妹编译链接&#xff1a;https://medium.com/better-programming/7-great-websites-to-learn-new-tech-skills-c36f39de55b9最近&#xff0c;猿妹一直在和大家分享一些编程学习…

怎么给自己用html做好的网页添加ip地址_小白如何迅速搭建自己的网站(一)

首先我要强调两点&#xff1a;1、本文没有任何形式的销售域名、虚拟主机等相关的广告。2、本文适用于完全不懂代码的小白&#xff0c;用简单且切实有效的野路子&#xff0c;迅速搭建网站。我们来简单了解一下网站运作的原理用户在浏览器中输入网址并请求访问网站&#xff1b;浏…

ui做一个项目需要多久_做一个网站需要多久?

网站的制作时间要取决于我们所选择的建站方式以及相关准备工作&#xff0c;影响网站制作进度的因素有人为因素、也有技术因素&#xff0c;今天我们就来分析一下网站制作时间主要都集中在哪些方面。网站需求分析整理网站前期需求需要与建站公司进行沟通&#xff0c;这部分工作需…

java github 授权登录_vue.js + springboot-网站应用接入GitHub第三方登录

JAVA-网站应用接入GitHub第三方登录相对 网站应用接入 QQ 登录&#xff0c;简单很多&#xff0c;Github 直接创建应用就可以用&#xff0c;不需要长时间的审核(一)准备&#xff0c;创建应用(2)创建应用(3)填写信息(三)后台处理流程(1)前端请求登录&#xff0c;无参数(2)后端重定…

php网站适合优化_大型php网站性能和并发访问优化方案

网站性能优化对于大型网站来说非常重要&#xff0c;一个网站的访问打开速度影响着用户体验度&#xff0c;网站访问速度慢会造成高跳出率&#xff0c;小网站很好解决&#xff0c;那对于大型网站由于栏目多&#xff0c;图片和图像都比较庞大&#xff0c;那该怎么进行整体性能优化…

获取网站的ip地址

1.复制网站网址 2.winr打开cmd命令提示符 3.ping 地址 回车

字 掉落 炫酷 网站_周末觉得无聊?这些奇葩网站你需要了解一下!点击收获快乐...

国庆七天假&#xff0c;有很多朋友会在这个时候去人山人海里旅个游&#xff0c;顺便拍点照片在朋友圈晒幸(ren)福(duo)。而总有一些像你我这样的人&#xff0c;在领导同事的工作重压之下&#xff0c;已经丧失了出门「冲锋陷阵」的勇气&#xff0c;宁愿在家过上几天不洗头不化妆…

html浏览次数纪录,巧用JavaScript记录网站访问次数

巧用JavaScript记录网站访问次数2008-02-23 07:39:20来源&#xff1a;互联网 阅读 ()我们知道Cookie是记录访问你站点的用户的信息&#xff0c;它驻留在用户的硬盘上&#xff0c;如果该用户再次返回你的站点&#xff0c;则该cookie就会被一起发回到你的服务器中&#xff0c;便于…

用 API 提取、写入指定网站的 Cookie - 回复 bangrj 的问题

问题来源: http://www.cnblogs.com/del/archive/2009/02/27/1399526.html#1463307本例效果图:代码文件:unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 class(TForm)Button1: TButton;But…

御泥坊搜索引擎优化网络诊断_网络营销外包——网络营销外包专员如何做好网站搜索引擎优化...

相信很多企业在规划网站建设优化时&#xff0c;都曾经了解过竞价排名&#xff0c;前期投入大换来的也仅仅是短期内的效果&#xff0c;因此&#xff0c;一些中小企业却因为高成本退而求其次&#xff0c;选择了尝试搜索引擎优化&#xff0c;那么针对网站排名提升的搜索引擎优化中…

网站如何过服务器的白名单,服务器怎么添加域名白名单

在服务器使用中经常会用到黑白名单规则&#xff0c;比如防火墙白名单、邮件白名单、服务器添加域名白名单主要和备案有关。当网站配置完成后&#xff0c;需要把域名解析到机房IP&#xff0c;而根据工信部要求&#xff0c;使用国内机房必须进行在白名单管理界面&#xff0c;可以…

令人印象深刻的使用独特javascript动画效果的网站

原文&#xff1a;queness.com 编译&#xff1a;GBin1.com 今天GBin1推荐一篇来自queness的文章&#xff0c;介绍了一些使用javascript的动画特效的网站。 Javascript技术的应用使得动画效果更加炫酷&#xff0c;最后一个绝对值得大家欣赏&#xff01; 飞翔的艺术 Rever…

宅男网上购买大家电对各大网站的总结

家里要买一些家电&#xff0c;我又正好在家闲着&#xff0c;那这个光荣的任务当然是我来做&#xff0c;但我可不愿意到国美苏宁这样的商场去逛&#xff0c;我是技术指标狂&#xff0c;到那种地方服务员还没我懂&#xff0c;关键是还价了半天还没有网上的便宜&#xff0c;费那个…

Python爬虫实战之招聘网站职位信息

目的 完成对目标招聘网站的岗位信息一级分类&#xff0c;二级分类&#xff0c;三级分类的获取. 网址 boss直聘 https://www.zhipin.com/shenzhen/?sidsem_pz_bdpc_dasou_title 58同城 https://sz.58.com/job.shtml?utm_sourcemarket&spmu-2d2yxv86y3v43nkddh1.BDPCPZ_…

如何启用https_教你启用HTTPS,让你的网站也能通过https访问

本文主要介绍 如何启用HTTPS如有需要&#xff0c;可以参考如有帮助&#xff0c;不忘 点赞 ❥一、准备工作服务器一台&#xff08;可以购买阿里云轻量应用服务器&#xff0c;比较便宜&#xff09;SSL证书 &#xff08;可以注册阿里云免费证书&#xff0c;安全性较差&#xff09;…