一个简单的BBS做好了,让我对MVC的结构有了自己的体会。
MVC就是Model—View—Control(模型,视图、控制器)结构。MVC结构的编程思想在三十年就提出了,它基于这个一个现视:大多数软件根据模块的用途在逻辑上都可以分为三个部分:负责展示数据对象给用户的界面层—view层、根据界面反馈处理业务逻辑的控制层---Control层、系统的数据模型,即域对象Model层。MVC这个概念最早是为桌面应用程序开发提供指导的;在WEB应用开发中按照MVC思想实现。
用JSP生成动态网页展示BBS的内容,用Servlet负责流程控制,既用户所有请求提交到Servlet,后台servlet根据请求路径可以模糊配置的特点,在请求以特定的[color=red]动作名字.路径名[/color]结尾的格式发,接受请求后servlet解析这个路径就会得到对应的动作名字符串,再根据这个字符串做出相应处理。
系统中只用到一种servlet,即ControlServlet,用户的所有请求都会提交给这个Servlet,这些动作请求处理的对象都是主控servlet中得到的Request和Response对象,根据这个规则,设计如下处理方式:每一种action对应与一个处理Request和Response对象的类,这样,每个类中就可以定义一种execute(Request req,Response resp)方法,这个方法处理完用户请求后,返回一个字符串,代表要输出到客户端的url,是一个HTML,也可能是一个JSP文件---由ControlServlet转发给客户端;根据这些分析将进一步深入以便构造一个简洁的MVC结构。
MVC框架结构有五部分组成:
ControllerServlet.java:请求分发控制器,解析请求中的动作名字,调用动作工厂对象生成的动作对象处理请求,处理后返回的结果为目地url,控制器再将请求和应答对象转向目标url;
ActionFactory.java:该工厂类将请求中的动作名转换成 servlet 可以用来完成其工作的动作类;
Action.java: 接口类,该接口定义所有动作的公共接口;
具体Action的实现类:指实现了Action接口的类,会被ActionFactory工厂根据请求中的名字创建,从而调用其具体实现的方法处理Request\Response对象后,返回一个URL由主控Servlet转发给用户。可以理解为,为一个具体的Action实现类用于处理页面上每一种用户点击(请求);
在通过具体Action实现类实现用户请求并在JSP页面展示出来。
搞了半天终于搞清楚了流程了。 :D
MVC就是Model—View—Control(模型,视图、控制器)结构。MVC结构的编程思想在三十年就提出了,它基于这个一个现视:大多数软件根据模块的用途在逻辑上都可以分为三个部分:负责展示数据对象给用户的界面层—view层、根据界面反馈处理业务逻辑的控制层---Control层、系统的数据模型,即域对象Model层。MVC这个概念最早是为桌面应用程序开发提供指导的;在WEB应用开发中按照MVC思想实现。
用JSP生成动态网页展示BBS的内容,用Servlet负责流程控制,既用户所有请求提交到Servlet,后台servlet根据请求路径可以模糊配置的特点,在请求以特定的[color=red]动作名字.路径名[/color]结尾的格式发,接受请求后servlet解析这个路径就会得到对应的动作名字符串,再根据这个字符串做出相应处理。
系统中只用到一种servlet,即ControlServlet,用户的所有请求都会提交给这个Servlet,这些动作请求处理的对象都是主控servlet中得到的Request和Response对象,根据这个规则,设计如下处理方式:每一种action对应与一个处理Request和Response对象的类,这样,每个类中就可以定义一种execute(Request req,Response resp)方法,这个方法处理完用户请求后,返回一个字符串,代表要输出到客户端的url,是一个HTML,也可能是一个JSP文件---由ControlServlet转发给客户端;根据这些分析将进一步深入以便构造一个简洁的MVC结构。
MVC框架结构有五部分组成:
ControllerServlet.java:请求分发控制器,解析请求中的动作名字,调用动作工厂对象生成的动作对象处理请求,处理后返回的结果为目地url,控制器再将请求和应答对象转向目标url;
ActionFactory.java:该工厂类将请求中的动作名转换成 servlet 可以用来完成其工作的动作类;
Action.java: 接口类,该接口定义所有动作的公共接口;
具体Action的实现类:指实现了Action接口的类,会被ActionFactory工厂根据请求中的名字创建,从而调用其具体实现的方法处理Request\Response对象后,返回一个URL由主控Servlet转发给用户。可以理解为,为一个具体的Action实现类用于处理页面上每一种用户点击(请求);
在通过具体Action实现类实现用户请求并在JSP页面展示出来。
搞了半天终于搞清楚了流程了。 :D