JavaWeb开发规范
以下的建议将帮助你更有效地使用本文所描述的 Java 编程标准:
*******************************************************
当你写代码时就应该遵守标准,而不应是一个事后的想法。
加了注释的代码不仅在你写程序时,而且在你写完程序时,都更容易理解。
在程序开发阶段和维护阶段,一致性地命名成员函数和字段都使工作更加容易。
在开发和维护阶段,整洁的代码让工作更加容易。
概括起来说,遵守标准将提高你开发过程中的生产率,并且使你的代码更易维护(因此也使维护者的生产率提高了)。
如果从一开始你就写出整洁的代码,你将在撰写过程中受益。使它们成为你的质量保证的过程。代码检查的一部分应该是确保源码遵守你的机构所采用的标准。
将标准作为你训练和指导开发员更有效率的基础。
常量要么放在.properties属性文件或者接口和抽象类中。
*******************************************************(服务平台)
目录结构
src
------jdbc_mysql.properties 数据库连接配置
------log4j.properties 日志组件配置
------applcationContent.xml 负责引用服务端所有 Spring 配置文件路径
------struts.xml 负责处理action
-----com.accp.class20.模块名
-------config
----spring
----struts
-------model
-------dao
-------service
-------hessian(对内)
-------webservice(对外跨平台,看情况开发)
-------web
-------intercepor
-------listener
-------filter
-------action
------core
---------dao
---------service
---------action
---------util
-------intercepor
-------listener
-------filter
------com.accp.class20.模块名 (单元测试)
------测试实体类
webroot
----- css
-----js
-----image
-----WEB-INF
------pages
------模块名
-----实体名
-----实体名_main.jsp
-----实体名_add.jsp
-----实体名_edit.jsp
-----实体名_display.jsp
-----index.jsp
***************************************************************
Spring
配置文件以spring-开头的自动加载,如:
spring-user.xml
spring-role.xml
struts
配置文件以struts-开头的自动加载,如:
struts-user.xml
struts-role.xml
********************************************************
命名规范
实体Entity 如UserEntity
持久层接口UserDao
持久层实现类UserDaoImpl
对外发布接口UserService
接口实现类UserServiceImpl
hessian接口UserHessain
hessian实现类UserHessainImpl
webservice接口 UserWs
webservice实现类UserWsImpl
********************************************************
代码规范
一定要单元测试,打包发布时不要发布。
********************************************************
架构规范
dao层单独处理,service调用dao层,所有的业务处理放在service层,hessian调用service,hessian对外发布为服务,action调用hessian层。
********************************************************
POJO层
映射的实体对象。与数据库的表对应。
放到模块的model包下。
DVO层
映射的实体对象。与数据库的视图对应。
放到模块的dvo包下。
Dao层
逻辑服务处理对象,完成一个业务的逻辑处理功能
放到模块的dao包下
方法名必须以 create* , del* , update*, start*, cancel* , stop*, save* , add* ,remove* , saveOrUpdate*,createBatch*,deleteBatch*,updateBatch*,pay* 等匹配的才会是带事务的方法,否则不能进行增删改操作
查询方法必须以load*,loadBy*,findListBy*,findAllList*
Service层
逻辑服务处理对象,完成一个业务的逻辑处理功能
放到模块的service包下
方法名必须以 create* , del* , update*, start*, cancel* , stop*, save* , add* ,remove* , saveOrUpdate*,createBatch*,deleteBatch*,updateBatch*,pay* 等匹配的才会是带事务的方法,否则不能进行增删改操作
查询方法必须以load*,loadBy*,findListBy*,findAllList*
动宾结构形式的名称
两个单词之间不要带其它符号
方法命名不得采用缩写形式
方法命名的基本原则:容易看懂
Hessian层
逻辑服务处理对象,完成一个业务的逻辑处理功能
放到模块的hessain包下
方法名必须以 create* , del* , update*, start*, cancel* , stop*, save* , add* ,remove* , saveOrUpdate*,createBatch*,deleteBatch*,updateBatch*,pay* 等匹配的才会是带事务的方法,否则不能进行增删改操作
查询方法必须以load*,loadBy*,findListBy*,findAllList*
动宾结构形式的名称
两个单词之间不要带其它符号
方法命名不得采用缩写形式
方法命名的基本原则:容易看懂
Controller层
Controller类中的方法命名统一采用do*(执行操作)、go*(显示页面).在Action中不应该出现一个public的方法不是以go或do开头。
在不会引起混淆的情况下,Controller的method命名可不加模块名称这时,可如下命名更简便(具体如何视情况而定):
操作说明 方法名 action的配置 jsp页面(或返回的Controller)
进入每个模块的主页: goCodeRuleMain codeRule_main.action codeRule_main.jsp
进入高级查询页面: goCodeRuleFind codeRule_find.action codeRule_find.jsp
进入新增页面: goCodeRuleAdd codeRule_add.action codeRule_add.jsp
进入批量新增页面: goCodeRuleAddBatch codeRule_addBatch.action codeRule_addBatch.jsp
进入修改页面: goCodeRuleEdit codeRule_edit.action codeRule_edit.jsp
进入批量修改页面: goCodeRuleEditBatch codeRule_editBatch.action codeRule_editBatch.jsp
进入浏览页面: goCodeRuleDisplay codeRule_display.action codeRule_display.jsp
进入选择页面: goCodeRuleSelect codeRule_select.action codeRule_select.jsp
执行新增操作: doCodeRuleAdd addCodeRule.action codeRule_main.action
执行修改操作: doCodeRuleEdit editCodeRule.action codeRule_main.action
执行删除操作: doCodeRuleDel delCodeRule.action codeRule_main.action
执行批量操作: doCodeRuleDelBatch delCodeRuleBatch.action codeRule_main.action
********************************************************
快捷键 ctrl + shift + F 进行排版, 代码为统一格式
ctrl + shift + O 可以消除不使用的 import 类, 和添加需要引用的类
ctrl + 1 (数字) 在有 warning 的地方, 出现解决方法, 如继承序列化接口的需要唯一序列码
ctrl + 2, 然后按R 可以对文件中所有的使用该名称的地方进行改名
项目的编码为 UTF-8
********************************************************
jsp文件命名规则:
实体名_main.jsp
实体名_add.jsp
实体名_edit.jsp
实体名_display.jsp
CodeRule=实体名
********************************************************
JavaWeb开发规范的更多相关文章
- 规范大于编码-我的javaWeb开发规范
1.应用名称和数据库名称一致 2.javaBean类名称+s和数据库表名一致 3.返回一条数据时,变量名为javaBean类名称的小写;返回多条数据时,变量名为javaBean类名称的大写 4.jav ...
- JavaWeb学习总结-01 JavaWeb开发入门
一 基本概念 1 Web开发的相关知识 Web,表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资源分为: 静态web资源(如html 页面): ...
- JavaWeb---总结(一)JavaWeb开发入门
一.基本概念 1.1.WEB开发的相关知识 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资源分为: 静态web资源( ...
- JavaWeb学习总结(一)——JavaWeb开发入门
http://www.cnblogs.com/xdp-gacl/p/3729033.html 只为成功找方法,不为失败找借口! JavaWeb学习总结(一)--JavaWeb开发入门 一.基本概念 1 ...
- JavaWeb学习总结(一)——JavaWeb开发入门(转载)
转载自http://www.cnblogs.com/xdp-gacl/p/3729033.html感谢孤傲苍狼的分享. 一.基本概念 1.1.WEB开发的相关知识 WEB,在英语中web即表示网页的意 ...
- 李兴华JavaWeb开发笔记
李兴华JavaWeb开发笔记 1.Java语法-基础 环境变量-JAVA_HOME, PATH, ClassPath 变量名 作用 举例 JAVA_HOME 指向JDK目录 C:\Program Fi ...
- JavaWeb学习总结(一)JavaWeb开发入门
静态网页和动态网页 静态网页:在服务器上没有经过服务器解释执行的网页. 动态网页:在服务器上经过服务器解释执行的网页. 无论是静态网页还是动态网页,客户端看到的网页都是由HTML所构成的,所以Java ...
- javaWeb学习总结(1)- JavaWeb开发入门
一.基本概念 1.1.WEB开发的相关知识 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资源分为: 静态web资源( ...
- JavaWeb学习总结(一)——JavaWeb开发入门(转)
转载自 http://www.cnblogs.com/xdp-gacl/p/3729033.html 一.基本概念 1.1.WEB开发的相关知识 WEB,在英语中web即表示网页的意思,它用于表示In ...
随机推荐
- Array(数组)对象-->indexOf() 方法
1.定义和用法 indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置,即下标. 如果没有找到匹配的字符串则返回 -1. 语法: string.indexOf(searchvalue ...
- django创建app
前几天,
- 挑战全网最幽默的Vuex系列教程:第一讲 Vuex到底是什么鬼
先说两句 官方已经有教程了,为什么还要写这个教程呢?说实话,还真不是我闲着蛋疼,官方的教程真的是太官方了,对于刚入门 Vuex 的童鞋来说,想必看官方的教程,很多地方就如同看圣经一样,比如「欧玛尼玛尼 ...
- c++缓冲区 vBufferChar.hpp
//vbuffer_char.hpp //vov #ifndef V_BUFFER_CHAR_HPP #define V_BUFFER_CHAR_HPP #include <iostream&g ...
- golang trace 分析 简例
今天,通过一个例子,一方面熟悉trace在自定义范围内的分析,另一方面golang 在协程调度策略上的浅析. Show Code // trace_example.go package main im ...
- 挑战全网最幽默的Vuex系列教程:第二讲 Vuex旗下的State和Getter
先说两句 上一讲 「Vuex 到底是个什么鬼」,已经完美诠释了 Vuex 的牛逼技能之所在(纯属自嗨).如果把 Vuex 比喻成农药里面的刘备,那就相当于你现在已经知道了刘备他是一个会打枪的力量型英雄 ...
- 1327C - Game with Chips (构造)
题目大意:一个n*m的棋盘上有k个棋子,k个棋子相互关联,可以一起向上向下向左向右,当碰到边界时,如果继续移动会发生越界,那么该棋子会保持不动,其余棋子继续移动.问能否在2*n*m的移动次数内,使各个 ...
- Supermarket POJ - 1456(贪心)
题目大意:n个物品,每个物品有一定的保质期d和一定的利润p,一天只能出售一个物品,问最大利润是多少? 题解:这是一个贪心的题目,有两种做法. 1 首先排序,从大到小排,然后每个物品,按保质期从后往前找 ...
- 【题解】P2602 数字计数 - 数位dp
P2602 [ZJOI2010]数字计数 题目描述 给定两个正整数 \(a\) 和 \(b\) ,求在 \([a,b]\) 中的所有整数中,每个数码(digit)各出现了多少次. 输入格式 输入文件中 ...
- Spring Security 是如何在 Servlet 应用中执行的?
Spring Security 是一个强大的认证和授权框架,它的使用方式也非常简单,但是要想真正理解它就需要花一时间来学习了,最近在学习 Spring Security 时有一些新的理解,特意记录下来 ...