MVC网站(Spring Mvc)编写经验总结

单个网站使用MVC架构模式经验总结,包含具体网站包分类、包内类的编写、注意事项等方面。本人认为,按照如下包分类及编写方法,已经满足一个简单普通网站(主要针对java)的编写需求。

MVC主要层级

  • 数据库持久层(model)

常见应用的有Hibernate、Mybatis等持久层框架。

1. dao(repository)

此包中包含的类,是针对不同数据库的基本操作。
针对关系型数据库,是常见的CRUD(可能包含分页、模糊查询和排序等)操作,目前在JAVA EE中形成了JPA规范。
针对非关系型数据库,key-value。

一般对不同数据库类型,在dao包下建子包,例如:dao.jpa。

2. domain

针对关系型数据库,一般使用ORM映射技术,将数据库表格映射成Java类对象。

  • 业务逻辑层(service)

调用dao中的方法,实现具体的业务逻辑。
1. domain.page
将数据库查询后得到的结果组合,生成页面需要的类型。对应的类放在domain.page包下。

  • 控制层(controller)

这一层主要进行页面的互操作。接受页面传递数据,进行检验和处理,然后将参数传递给service。获取返回的结果,将对应的结果传递给页面。
1. controller
controller.screen,实现常用页面跳转,内部不包含具体业务逻辑,功能为根据url,跳转到页面。
controller,可以实现接口(Restapi),还可以实现对业务逻辑的调用。

其他

  • 其他包:

1. config
用于一些配置类。
2. common
通用对象,记录全局变量、枚举类等。
3. utils
工具包,放置参数检查等工具方法。

  • 接口方法实现策略:
//接口返回,必须注意,一般分为参数错误、异常返回、方法错误返回(null)、正确返回,四种方式。
//选择处理的方式(使用枚举,增加可读性):
// 1. 使用错误码的方式,将错误信息与错误码关联(类HTTP)。
// 优点:将不同的异常方式归类,简单。
// 缺点:种类过多,错误码过多,不易识别。
// 2. 直接将错误信息,使用包装器的方式,返回上一层。
// 优点:简单直接。
// 缺点:不易于识别转换,如果错误信息是英文,不易转换成中文显示。
// 采用:错误码(主,向上传递)+错误信息(辅,日志显示)+包装器
public Object myApi(...){
//参数检验必不可少,注意尽量写成if分块的方式,防止出现多层
//if-else 嵌套,易于扩展。
if(check(param1)){
return error1;
}
if(check(param2)){
return error2;
}
...

...
try{
...
}catch(Exception e){

return errorException;
}

}
时间: 2024-10-25 15:52:00

MVC网站(Spring Mvc)编写经验总结的相关文章

java MVC架构-spring mvc,struct2(理解)

MVC架构实现基础: 基于filter或者servlet实现请求地址分析,如果需要控制类处理请求,则调用相应的控制类.调用控制类时,根据配置文件初始化控制类相关的参数.数据库连接可持久化存在.控制类处理完毕,返回数据以及模板文件,渲染模板文件,返回给客户端.步骤简化,则有4步:1.按照配置文件或者注解,初始化所有的控制类,完成url和控制类的映射:2.接收请求,判断使用的控制类:3.注入控制类或方法需要的参数,调用对应的控制类或方法处理,返回数据和模板文件地址:4.根据返回的数据和模板文件地址,

Spring MVC - 配置Spring MVC

写在前面的话: 现在开始一段新的学习历程:Spring MVC.还是按照原来的三步走学习模式(what.why.how)进行讲解. 1.Spring MVC是什么(what) Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面. Spring MVC通过实现Model-View-Controller模式来很好地将数据.业务与展现进行分离.Spring MVC框架围绕DispatcherServlet设计. DispatcherServl

【Spring MVC】spring mvc中相同的url请求返回不同的结果

在项目中凡是使用Spring MVC这种控制器的,大多都是返回JSON数据对象,或者JSP页面. 但是相同的URL请求如何让他自动的选择放回的是什么? 在这里有由于鄙人没有亲自测试过,就不敢乱贴代码,只把别人写的引用一下,以防未来某天需要而忘却. 引用地址:http://my.oschina.net/wzlee/blog/262205

Struts2 MVC 同 Spring MVC 的比较

1.Struts2是类级别的拦截, 一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上SpringMVC就容易实现restful url,而struts2的架构实现起来要费劲,因为Struts2中Action的一个方法可以对应一个url,而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了. 2.由上边原因,SpringMVC的方法之间基本上独立的,独享request r

【Spring MVC】Spring MVC,阻止直接访问jsp,使用Interceptor登录拦截

问题描述: 在Java Web项目中,用户可访问Url一般只有一个,即index或login.而用户的其他Url请求都会引导到index页.如何来避免未登录用户直接访问Spring的Conroller和jsp文件? 解决方案: 一.阻止用户访问jsp. Spring的MVC模式是不提倡直接通过URL形式访问.jsp页面的,建议通过Controller跳转至View页面. 把jsp文件放在WEB-INF目录下,js和css等资源文件放在WEB-INF的同级目录下,WEB-INF对用户不可见,可以起

Spring MVC(二)--Spring MVC登陆实例

本文通过一个简单的登陆实例实现Spring MVC的流程,同时整合 MyBatis使用,流程是这样的: 1.访问一个URL进入登陆界面 2.输入正确的用户名和密码,成功则进入index页面,否则留在登陆页 一.配置web.xml 创建好WEB项目之后的第一步就是配置web.xml文件 1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app version="3.0" xmlns=&

玩转spring MVC(八)----spring MVC整合json

这篇文章在前边项目的基础上来整合json,最新项目资料见:http://download.csdn.net/detail/u012116457/8436187 首先需要的jar包:jackson-core-asl-1.7.2.jar  jackson-mapper-asl-1.7.2.jar 然后是配置文件json-servlet.xml,该文件得在web.xml中配置使其在tomcat启动时调用: <?xml version="1.0" encoding="UTF-8

[技术分享]20171229_Spring mvc _ spring mvc文件上传

这里我想说的重点是:这个方法file.transferTo(newFile) ,不用再去手写文件上传了,直接用这个方法即可 下面是Jsp <form name="Form2" action="/SpringMVC006/fileUpload2" method="post" enctype="multipart/form-data"> <h1>采用multipart提供的file.transfer方法上传

Spring3.X 配置----Spring MVC 配置

导论: 什么是Spring MVC? Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面. Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还是 Struts 这样的 Web 框架.通过策略接口,Spring 框架是高度可配置的,而且包含多种视图技术,例如  JavaServer Pages(JSP)技术.Velocity.