通俗理解mvc结构与servlet

本文深入解析MVC(Model-View-Controller)框架的工作原理及应用,探讨其在Web开发中的优势与挑战,涵盖模型、视图、控制器各层的具体实现与职责划分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

MVC框架

全明是Model View Controller,是是模型(model)-视图(view)-控制器(controller)的缩写

优点:

耦合性低
重用性高
部署快,生命周期成本低
可维护性高
缺点:

MVC理解比较复杂
调试困难
增加了系统结构的复杂性
 

这是java的mvc架构,这就像工厂中车间的情景一样,每个部门分管不同的流程和工作,比如
dao即使data access object,主要负责处理数据库操作;
biz,business层,负责整个应用程序的相关业务流程,并用代码实现出来;
util,即utility,工具辅助层,一组通用的代码集合,比如处理多语言功能,网站非法信息过滤等等功能的代码集;
web,即是前台网页处理的后台代码,负责把从数据库中处理过的数据,通过web层处理之后,显示成html代码的部分。
这样经过每部分的分工合作,团队之间能更好的开发应用程序,而应用程序之间的运作也会相对比较顺畅。

 

 


实现M层的开发
创建工程并导入相应的jar文件
webroot->web-inf->lib直接放到这里就可以了。

编写工具类
ConnUtil.java + jdbc.properties

编写实体类
编写数据访问对象
编写业务处理对象
实现V层的开发
reg.jsp页面

<form action="reg.do" method="post">
    用户名:<input name="userName" ><br> 
    密码:<input name="userPass"><br>
    地址:<input name="userAddress"><br>
    手机:<input name="userPhone"><br>
    <input type="submit" value="注册"><br>
</form>


实现C层的开发
在MVC模式中Controller控制器的作用三个:

接收用户请求
调用业务逻辑
页面导航
第一步:完成Servlet的创建和配置

@WebServlet("/reg.do")
public class RegController extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
            doPost(request, response);
        }
    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    }
}


第二步:接收用户发送的请求信息

request.setCharacterEncoding("utf-8"); //设置请求的中文编码
String userName = request.getParameter("userName");
String userPass = request.getParameter("userPass");
String userAddress = request.getParameter("userAddress");
String userPhone = request.getParameter("userPhone");


第三步:调用后台业务类,实现业务处理

Users users = new Users(userName,userPass,userAddress,userPhone);
UsersService usersService = new UsersService();
boolean bool = usersService.save(users);


第四步:页面导航

客户端重定向

response.sendRedirect("index.jsp");
服务器端转发

request.getRequestDispatcher("index.jsp").forward(request, response);

 

servlet用来连接服务器和客服端

客户端发送请求至服务器端;
服务器将请求信息发送至 Servlet;
Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;
服务器将响应返回给客户端。
生命周期:

创建servlet对象,只有第一次访问时才会创建,第二次服务器会启动一个线程来运行它
调用init方法,初始化servlet信息,init方法只能被调用一次
调用doPost方法来处理请求
服务器关闭时,调用destroy方法来销毁servlet对象
servlet的配置

用web.xml配置

<servlet> <servlet-name>ServletDemo</servlet-name> <servlet-class>day_052102.ServletDemo</servlet-class> </servlet> <servlet-mapping> <servlet-name>ServletDemo</servlet-name> <url-pattern>/ServletDemo</url-pattern> </servlet-mapping>

总结:

MVC是 模型(Model),视图(View)和控制(Controller)的缩写,其目的实现Web系统的职能分工。

其中Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现;

View层用于与用户的交互,通常用JSP来实现;

Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。

模型表示数据结构和行为,在DAO中有很好的体现,我们通常称DAO为接口,在DAO中可以定义一些行为(实现需要定义类来implement接口),而这些行为的操作对象是数据,所以很好的体现了模型。

视图是指用户能够看到并且能够与它进行交互的页面,对视图来讲只是作为一种输出数据并允许用户操纵的方式,这和JSP的功能是一样的,Jsp只是将数据以表单的形式提交给相对应的Servlet,在Jsp页面上是不对数据进行操作的。

控制器接受用户的输入并调用模型和视图去完成用户的需求,这和Servlet的功能是一样的,Servlet类中重写了doGet()和doPost()方法来接收视图(jsp)中传过来的数据,并且从模型(DAO)中调用相应的行为来处理数据,最后将得到的结果封装到HttpResponse中,返回给视图(jsp)。
 

附:bookdao例子关系图

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值