⑴ 简述web开发中mvc框架是什么,并描述mvc框架的基本流程
MVC框架就是已经帮你准备好了视图跟控制器的基类以及相互关联的程序基础类,你只需要继承控制器或者视图来具体实现就行了,框架会自动帮你实现MVC模式间的交互。
如果你只懂模式,没有框架,那么你自己必须按照MVC的模式要求,来自己一个个实现控制器跟视图,还有他们之间的交互。
⑵ JSP在MVC模式开发的Web项目中的作用是
jsp用来嵌入在网页中实现动态显示网页数据的效果
MVC本来是存在于Desktop程序中的,M是指数据模型,V是指用户界面,C则是控制器。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式
⑶ 对mvc的理解,mvc有什么优缺点,结合struts,说明在一个web应用中如何去使用
在Struts应用的视图中包含JSP,客户化标签两个组件。Struts是一种基于MVC经典设计模式的开放源代码的应用框架,也是目前Web开发中比较成熟的一种框架。通过把Servlet、JSP、JavaBean、自定义标签和信息资源整合到一个统一的框架中,为Web开发提供了具有高可配置性的MVC开发模式。Struts体系结构实现了MVC设计模式的概念,它将Model、View和Controller分别映射到Web应用中的组件。Model由代表系统状态和商业逻辑Action来构建,View是由JSP和struts提供的自定义标签来实现,Controller负责控制流程,由ActionServlet和ActionMapping来完成
⑷ .net web开发有WEBFORM,MVC,EF等来开发,各有什么优点和缺点
net web主要的优点就是速度快,因为.net web使用的语言是C#,C#做的程序就是事件+控件,你比如使用EXTJS这个JS框架,C#只需要使用控件就可以搞定,MVC、EF这些如果使用EXTJS框架,只能自己手写代码,MVC、EF开发网站的周期较.net web长
C#里面使用ADO.NET连接数据库又不像MVC(JavaEE),不同的数据库操作引入不同的命名空间(Java里面叫导入包),这个比Java方便得多,因为Java使用数据库,必须找到对应版本数据库的jar包才可以,否则无法操作数据库,C#直接引入对应的命名空间,比如使用微软的MSsql数据库,C#只需要导入System.Data,System.Data.SqlClient这两个命名空间即可调用对应的数据库操作类,但是Java不一样,比如SQL2000和SQL2005使用的jar包是不一样的,但是这C#使用这两个数据库直接导入System.Data,System.Data.SqlClient就可以了
C#使用AJAX也只需要使用一个控件,而MVC、EF肯定要手写
C#唯一的缺点是不能跨平台,也就是你开发的web网页,只能部署在Windows里面的IIS(Internet Informatica Server)服务器上
MVC、EF可以跨平台,也就是就算你使用Linux都可以将网页部署上去
⑸ .net web开发有WEBFORM、MVC、EF等来开发,它们各有什么优点和缺点
asp.net Web Forms
优点:最重要的一点解决方案多,经验丰富,什么需求基本都能找到解决方法。没有什么比服务器端控件再好用的东西了。数据绑定控件(gridview,formview),数据原(objectdatasource,sqldatasource,linqdatasouce),有了这些控件开发业务系统觉得没有比用web forms更好,更快的技术了 提供的服务多,到asp.net2.0 .net framework就提供很多非常好的服务,profile,membership,cache,Microsoft patterns & practices(企业库)UI控件,AJAX,第三支持的比较多有着很多成熟的开发模型比如微软推出petshopN层架构 。
缺点:因为使用了功能强大的服务器控件导致页面比较大,每次post,response的数据相对ajax,silverlight肯定是大的,会影响性能。
Silverlight
优点:开发富互联网应用(RIA)绝对是最合适的技术,,新版Silverlight集成GPU加速,开发3D,多媒体绝对是利器。
对于一些业务系统,做得好的,真的好看,而且好用,用户体验也很好网上可以找不少Demo
新的Silverlight开发模式MVVM虽然比较新但真的很好用,如果要做业务系统那么一定要用MVVM这个设计模式太能体现更多Silverlight开发优势(databinding 功能强大)
缺点:掌握UI设计工具的人太少,所以做不出很酷,很炫的页面效果。
与后台交互不方便,所有交互只能是web service(WCF),虽然RIA1.0也很方便,但都是异步操作,总没有web form那么直接了当。回调来对调去的还有4.0提供了很强大的匿名方法还有Action<>这些类库。
最后我只能说要想做得好真不容易。
ASP.NETMVC
我还没有用mvc 2,3做过项目只是最近做一些tutorial,给我的影响就是返朴归真,与后台交互回到了最原始Post,Response,类似回到ASP时代。
优点:层次清晰,Model,Controller,View ,Action,都有向导产生,非常规范,感觉就是很专业,像是搞大项目架构,不想web form那么随意。
页面展现和后台完全分开,去掉了服务器端控件,与后台交互使用JSON数据对象,所以性能上一定优于web form 还有同样强大的Route URL功能,搜索引擎优化SEO。
成熟的MVC设计模式。
缺点:取消了服务器端控件,使得一些业务系统的输入变得更为单调,在一些也用户的互操作上大打折扣。
与后台交互虽然比Silverlight要好点,不用异步方法,但只能post,submit还是没有web form的事件机制好用。
一定要精通javascript,Jquery,Json不然UI这关真不好过。
最后对于开发业务系统最主要还是提供用户很方便输入数据,快速响应操作,对于开发人员就能很方便保存和更新数据,能很方便调用的需要数数据,调用特定的方法,并返回需要结果。能很方便的调试代码。
虽然silverlight,asp.net mvc都是在asp.net webform后出来的技术,但也没有必要就认为Silverlight,MVC就一定比传统的asp.net webform就好。其实不关什么技术都是为了解决不同的问题而产生,每项技术都有他存在的价值。
可惜很多开发人员对web form的了解还停留在asp.net 1.0的时代,很多asp.net的新特性都没有用到,还有就是拿asp.net的开发模式去开发silverlight应用。
⑹ 如何用myeclipse spring mvc 开发web
环境版本
IDE:MyEclipse 8.5
Spring:spring 3.2.8
JDK:1.6
1.打开MyEclipse-->File-->New-->Web Project,在打开的对话框里面输入project Name为SpringMvc,点击Finish。如下图所示:
2.在新建项目上右键选择,properties-->Java Build Path-->Libraries-->Add External JARs,引入spring-framework-3.2.8.RELEASE-dist目录下几个必需的jar包.
3.文件结构
4.web.xml配置:
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <!-- 监听所有请求 --> <url-pattern>/</url-pattern> </servlet-mapping></web-app>
5.springmvc-servlet.xml配置:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <!-- 扫描所有的 controller --> <context:component-scan base-package="com.springmvc.controllers" /> <!-- 启动注解驱动 SpringMVC 功能 --> <mvc:annotation-driven /> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/views/" /> <property name="suffix" value=".jsp" /> </bean></beans>
6.在WebRoot目录下,新建views文件夹,添加index.jsp.
7.在com.springmvc.controllers包下,新建HomeController类文件,
8.部署项目运行,访问http://localhost:8080/SpringMvc/home,
⑺ servlet在使用mvc模式开发web项目中的作用
servlet的作用:处理请求,视图跳转。
MVC模式就是一种目前广泛流行的设计模式.它是Xerox PARC在20世纪80年代为编程语言Smalltalk-80发明的一种软件设计模式旧。MVC是Model-View-Controller的简称。即模型-视图-控制器[8]。MVC包括三类对象.模型Model是应用对象.视图View是它在屏幕上的表示,控制器Controller定义用户界面对用户输入的响应方式。
⑻ 在用mvc设计模式开发Web程序时实体与实体之间的关系还要设计一个单独的实体类吗,比如学生选课的过程
这个得根据你具体的需求来订,你肯定最后也就是要看哪个学生,选了那些课,所以呢你建立的这个关系表是没有自己单独的方法的,他的作用就是将学生表和选课表建立联系,所以你可以在学生表层,写个查询该学生选了多少课程的方法,用到关系表。当然也可以在课程层,写个查多少学生学了该课的方法,没必要建个关系类了。
⑼ 简述mvc思想在web体系软件开发中起什么作用
Model在Web系统中的应用
Model对象代表了商业规则和商业数据,存在于EJB层和Web层。在J2EE的规范中,系统有些数据需要存储于数据库中,如用户的账号信息(account model),公司的数据(company model)等,也有一些不需要记录在数据库里的,如某用户浏览的当前产品目录(catalog model),他的购物内容(shopping cart model)等。这些model数据存在于哪一层要根据它们的生命周期和范围来决定。在Web层有HttpSession和ServletContext及Java Bean对象来存储数据,在EJB层则有EJB来存储数据和逻辑。Web层的Java Bean的model对象存储了EJB层model对象的数据的拷贝。因为EJB层有很多不同的model对象,所以Web层可以通过一个ModelManager来控制EJB层的各model对象,在ModelManger中可以封装使用后台model对象的方法。
在EJB层把所有的数据和规则都模式化为EJB也是不恰当的。如可以把存取数据库的对象模式化为DAO对象。DAO中可以封装与具体数据库的交互细节,如可以读写不同的表,多个数据库,甚至多种数据库。如定单的model对象可以是一个OrderDAO, 它可能要同时处理Order表,OrderStatus表和OrderItemLines表。
还有可以考虑使用Value对象。一个Value 对象可以封装远程对象,因为每一个读远程对象的属性都可能是一个远程过程调用,都会耗费网络资源。可以在EJB的远程对象中使用Value对象. 在远程对象中一次性得到Value对象来得到所有属性的值。
3.3 Controller在Web系统中的应用
Controller对象协调Model与View,把用户请求翻译成系统识别的事件。在Web层,一般有一个MainServlet(或Main.jsp),接收所有请求,它可以调用屏幕流管理器(ScreenFlowManger)决定下一个屏幕。一般还有一个请求处理器RequestProcessor,包含所有请求都需要做的处理逻辑,如把请求翻译成系统事件(RequestToEvent)。请求处理器通常还包含一个代理对象ClientControlWebImpl,它是EJB层的逻辑处理的在Web层的代理。在EJB层,有一个ClientController提供Web 层对EJB层的只读访问。还有一个StateMachine用来建立和删除ejb,处理Web层送来的事件。
Controller还有一个重要的功能就是同步View和Model的数据。在ModelManger中包含一个ModelUpdateManger,它把系统事件转换为一个Model的集合,即所有需要同步的Model,然后通知Listeners去做同步操作。
4. 结束语
近年来随着互联网技术的发展和新的商业模式的出现,必然会出现大量基于Web的应用系统。对于如何设计这些系统的体系结构,也逐渐有了一些统一的认识,最主要的是的就是其体系结构要合理,开放。需求永远会比技术和设计思想发展快,要使将来系统的升级所付出的代价最小,研究软件系统的体系结构还是非常很用和有必要的。
⑽ Java Web 开发时的 MVC 模型和软件的3层架构(表现层,业务逻辑层,数据访问层)有哪些区别和联系
三层架构和MVC是有明显区别的,MVC应该是展现模式(三个加起来以后才是三层架构中的UI层)
三层架构(3-tier application) 通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。区分层次的目的即为了“高内聚,低耦合”的思想。
1、表现层(UI):通俗讲就是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。
2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。
3、数据访问层(DAL):该层所做事务直接操作数据库,针对数据的增添、删除、修改、更新、查找等。
MVC是 Model-View-Controller,严格说这三个加起来以后才是三层架构中的UI层,也就是说,MVC把三层架构中的UI层再度进行了分化,分成了控制器、视图、实体三个部分,控制器完成页面逻辑,通过实体来与界面层完成通话;而C层直接与三层中的BLL进行对话。