JSP:全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它[1] 是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
Action:Action类是用户请求和业务逻辑之间的桥梁,每个Action充当客户的一项业务代理。是MVC模式中Control层
Service:service层是在mcv三层模式中新添加一层,能够更加清晰的定义应用程序的边界,需要操作数据的时候,通过service层访问DAO层来实现。service层做的事情,不仅仅是调用DAO操作数据,还会包含了一定的业务逻辑。整个程序的设计,也变成了针对服务进行设计。
DAO:Data Access Object是一个数据访问接口,数据访问:顾名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。是MVC模式中Model层
PO(persistant object 持久对象)对象模型反映了对象间的关系,如一对多、多对多、单向双向访问关系等。可以看成是与数据库中的表相映射的java对象。 而VO(value object 值对象) 通常用于业务层之间的数据传递,在WEB应用中,一般用于和前台页面做数据相互。 Struts1.x被2.x代替后VO层消失了,在action中直接传递PO,这样代码显得很简洁,很多SSH应用也都这样做。简单应用完全可以省VO而之久用PO,但还是建议使用VO。原因如下。 在目前的SSH中,若符合JPA规范,那就先设计PO model,再生成数据库。 在struts 2.1.6中使用json格式作为输出,PO对象中包含着复杂的关系,如果又是双向的,很容易出错,为了避免错误,我们又要在PO中打上相应的忽略注解,框架一多,各种注解参杂在PO中,显得很乱,最后都搞不清这些注解到底代表哪个功能。 若使用VO,原先PO中存在的一些字段也可以放入到VO中,PO可完全对应于数据库字段,而把一些需要和前台交互的字段放入VO中,VO中尽量存放简单数据类型。 这样不管是前台使用什么系统(webservice和doNet C#交互,还是使用flex,ajax json等),转换为xml格式也异常简单,制作报表也不用过多的考虑如何解析传递过来的复杂对象和子表嵌套。用户关系的只是workType.name而不是WorkType这个类,VO由业务层产生,传递给视图层或其它各种接口。这样可以使得层次间进一步解耦,PO对象模型也变得容易维护(少了很多注解,代码清晰)。也使得前端数据结构的变得更轻(VO都是简单数据类型),有利于传输和解析