{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

初学java的小白接到了项目:JSP页面与MySQL数据库连接、MVC模式等。怎么做才能体现项目需求呢?

nodejhnodejh 回答0 收藏2
问题描述:本人初学java一年。现在到了做项目了。项目需求:JSP页面与MySQL数据库连接、MVC模式等。现在很迷茫。不知道要做啥项目才能体现需求
收藏问题

10条回答

xorpay

xorpay

回答于2022-06-28 15:38

谢谢邀请!

JSP是Java Web开发的传统技术之一,虽然弊端比较多,比如业务逻辑与显示逻辑耦合、无法分别部署、开发角色分工不清等问题,但是JSP对于初学者来说还是有一定的学习必要性,有不少遗留项目依然需要采用JSP技术。

MySQL数据库是目前使用比较多的数据库之一,尤其在Web开发领域。MySQL数据库简单易学且功能强大,Java程序员往往都对MySQL数据库比较熟悉。虽然通过JSP直接连接MySQL数据库是可以做到的,但是这种做法显然是有很多问题的,恰好通过MVC结构是可以基本解决这些问题的。

MVC是一个软件开发领域的经典结构,采用MVC进行Web开发也就是所谓的Model2开发方式,这种开发方式用JavaBean来描述M(模型),采用JSP来描述V(视图),采用Servlet来描述C(控制器)。MVC最大的好处是实现了不同部分的解耦,提升了Web程序的模块化程度,使得多角色协作开发有了重要的基础,也为日后的优化打下来基础。

要想利用MVC结构完成一个传统Java Web开发,需要综合使用Servlet、JSP、JavaBean、JDBC、MVC、DAO等一系列传统技术,而通过一个模拟银行“存取转”业务的Web应用是一个不错的选择。

存取转业务的基础是账户,所以可以先写一个Account类作为M部分,然后为M定义一个映射表格。以DAO的方式完成数据库与Account类的映射,需要定义接口、实现类和工厂类。接着定义控制器Servlet,在Servlet中完成用户请求的各种“导航”,最终通过JSP完成呈现。

这个过程只是一个基本的模拟,而且并没有采用任何开源框架,对于Java学习者来说,学习开源框架是必要的。在掌握了MVC和DAO之后,再学习SpringMVC和Mybatis会更容易理解。

作者简介:中国科学院大学计算机专业研究生导师,从事IT行业多年,研究方向包括动态软件体系结构、大数据、人工智能相关领域,有多年的一线研发经验。

欢迎关注作者,欢迎咨询计算机相关问题。

评论0 赞同0
  •  加载中...
henry14

henry14

回答于2022-06-28 15:38

谢邀~

针对这个问题,具体的怎么连接数据库,怎么增删查改,这些代码自己用google一下就可以得到答案,这里就不细说;初学者写代码经常会有个问题:把所有代码都写在“一层”里,甚至是一个类、一个方法里。

下面我谈谈自己的建议,如果意见不同,请留言讨论。


什么是MVC

MVC是Model—View—Controler的简称;即模型—视图—控制;MVC是一种设计模式,它强制性的把应用程序的输入、处理和输出分开。

  • 视图: 视图是用户看到并与之交互的界面;视图向用户显示相关的数据,并接受用户的输入;视图不进行任何业务逻辑处理。

  • 模型: 模型表示业务数据和业务处理;相当于JavaBean;一个模型能为多个视图提供数据。这提高了应用程序的重用性

  • 控制器: 当用户单击Web页面中的提交按钮时,控制器接受请求并调用相应的模型去处理请求;然后根据处理的结果调用相应的视图来显示处理的结果。

  • MVC的处理过程:首先控制器接受用户的请求,调用相应的模型来进行业务处理,并返回数据给控制器。控制器调用相应的视图来显示处理的结果。并通过视图呈现给用户。

代码如何分层

大概知道什么是MVC了吧,其实就是:对代码分层,各司其职。

现在看看题主的代码怎么写,我就按照我的习惯进行一下分层:

  • JSP能直接访问数据库么?技术上是没问题的,但是我们通常不会这么做。和数据库完成交互的,一般代码里面会有两层:Model和Dao。Model相当于JavaBean,是对数据库表中数据的承载,Dao就是对数据库表的操作。这里可以是JDBC,也可以使用ORM框架。

  • 再往上,我一般会设置多带带的Service层,Service会有业务逻辑,可能会调用其他的Service,也可能会调用Dao层中的方法,也可能是调用其他系统的接口。

  • Service上面,再是Controller层,主要用于接受客户端的数据,并对数据进行简单的校验。(我这样的写法,Service层+Controller层 = MVC中的C)

  • 浏览器(客户端)与C层的交互,会使用的View。

  • 当然,静态变量、配置、工具类等,都会有多带带的包,不在这里讨论。

具体的流程

所以具体的一个流程是这样的?例如页面输入用户身份证号,查询用户详细信息:

  • JSP中输入身份证号;

  • Controller层拿到View,对于代码来说就是个Java对象,这一层可以增加验证,比如不能输入空、null或是身份证号规则验证;

  • 传到Service层,这一层这个场景下,没有什么特殊处理;

  • 传到Dao层,查询数据库,返回客户信息:客户姓名-张三,客户性别-M;开始返回;

  • 传回Service层,把M转成“男”(不过经常是在SQL中直接关联字典表了);

  • 传回Controller层,再传回JSP展示。

我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。

评论0 赞同0
  •  加载中...
张迁

张迁

回答于2022-06-28 15:38

首先谢谢你的邀请,因为你的最后一句话,让我对你的提问理解有点模糊,不过你前面说的项目需求,SpringMVC和JSP、MySQL,你可以做个简单的登录就能实现你这三个条件了,用MVC框架来搭建项目,数据库连接有很多种,你可以百度搜一下,建一个登录用户的实体,然后就可以了。

评论0 赞同0
  •  加载中...
BWrong

BWrong

回答于2022-06-28 15:38

jsp做页面连接mysql数据库,建立mvc框架

评论0 赞同0
  •  加载中...
qieangel2013

qieangel2013

回答于2022-06-28 15:38

1. 首先从问题中得知你可能需要用到的技术jsp,mysql

2. jsp是前端显示技术,mysql是后台数据库,mvc只是一种模式,把model数据,view界面,controller业务逻辑分离开来

3. 可以做一些图书管理系统,学生管理系统,可以上网搜教程,也可以私聊我,免费指导

评论0 赞同0
  •  加载中...
U2FsdGVkX1x

U2FsdGVkX1x

回答于2022-06-28 15:38

做一个xx管理系统,就明白bean,servlet,dao怎么写了

评论0 赞同0
  •  加载中...
rose

rose

回答于2022-06-28 15:38

初学者可以写个自定义mvc,有助于了解mvc模式。

评论0 赞同0
  •  加载中...
kaka

kaka

回答于2022-06-28 15:38

把你这里说的内容,做成一个简单应用吧!最后一句:你有什么建议?在这里告送我吧!

评论0 赞同0
  •  加载中...
马永翠

马永翠

回答于2022-06-28 15:38

需求不清晰噢⊙_⊙

评论0 赞同0
  •  加载中...
JouyPub

JouyPub

回答于2022-06-28 15:38

jsp可以直接写java代码,但是我不明白什么奇葩项目要在jsp上直接连接MySQL?

评论0 赞同0
  •  加载中...

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<