2 Star 1 Fork 1

一MT一 / jweb

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

#================================================= #========= jweb 框架介绍 ============= #========= by:yuanqy ============= #=================================================

jweb对外抛露三个抽象类:
1、JWebConfig --(类)用来配置jweb框架
├ configConstant() --(方法)用户常量配置区,可覆盖默认配置和文件配置。(加载顺序:系统默认常量->配置文件常量->用户常量) └ configPlugin() --(方法)插件配置区,如C3P0,MyBatis,quartz....
2、JWebInterceptor --(类)项目拦截,在项目启动/销毁时的额外操作
├ init() --(方法)项目启动时:可以加载默认数据,比如:从数据库读取配置、菜单、权限... └ destroy() --(方法)项目关闭时: 可以进行资源销毁操作
3、HandleInterceptor --(类)请求拦截、类似Spring中的HandlerInterceptorAdapter
├ preHandle() --(方法)请求执行之前:可以进行编码、安全控制等一系列处理[重要] └ afterCompletion() --(方法)请求执行之后:可以根据ex是否为null判断是否发生了异常,进行日志记录、重定向。或赋值操作。
jweb系统配置:

说明:所有配置信息(键值对)都保存在:JWebFilter.constants变量中,配置信息来自于以下三个方面: 1、系统默认配置:(不用管,想改可通过后两种方式覆盖)

constants.put("encoding", "utf-8"); // 默认编码 constants.put("ViewPrefix", "/WEB-INF/jsp/"); // 视图地址 constants.put("ViewSuffix", ".jsp"); // 视图类型 constants.put("component-scan", ""); // 项目启动扫描包,""默认全扫描
2、配置文件:(配置文件怎么写就不说了,说下配置文件的放置位置,多个文件可以用分号;分割:)
位置说明:在web.xml配置信息filter中加入
<init-param>
<param-name>propertyFile</param-name> <!--名字固定为:propertyFile--> <!-- <param-value>file:/app.properties</param-value> 放在系统根目录 --> <!-- <param-value>app.properties</param-value> 放在项目根目录 --> <!-- <param-value>/app.properties</param-value> 放在项目WEB-INF下 --> <param-value>classpath:app.properties</param-value><!-- 放在项目ClassPath下 -->

</init-param>

3、实现JWebConfig类并在configConstant()方法中往Map<String, String> constants加入配置信息

jweb注解配置:

1、@JController --[TYPE]控制类注解,该类必须继承Controller类,用于Action路由分发 2、@JAutowired --[FIELD]属性变量注解,比如引用的服务或接口 3、@JTransaction --[METHOD]事务控制,只能用于server方法上,须引人cglib-nodep 4、@JRemark --[METHOD]接口描述,只能用于mybatis接口方法上,记录日志描述用 5、@JParam --[METHOD]Action方法字段取值,有两种类型的值。1.是URL中的通过下标取,2.是Post参数值,直接取 6、@JTask --[TYPE]Quartz定时器 7、@JValue --[FIELD]获取全局配置文件上下文值

注解加载顺序说明:
启动时:
a、找到@JController控制类,并进行实例化 b、对实例化的类进行反射查找有@JAutowired的属性变量 c、对有@JAutowired的server进行Cglib动态代理(如果没有cglib包,默认直接实例化,并无法使用Mybatis事务) d、对有@JAutowired的接口进行JDK动态代理
运行时:
e、对有@JTransaction(必须Cglib)的Server方法,在运行时自动加上事务。 f、对有@JRemark的接口方法,在运行时自动记录日志。
jweb的RESTful风格URL:

对URL的处理以对应不通的Controller,method,param 总共分为下列4种URL格式:

注: param可以有多个,以/分割。在Controller.getParameterURL()中以下标取值
controllerKey为@JController注解内写的值 method为控制类中的方法名[公共方法] param为参数
例:http://localhost:8080/book/read/1001/5.html ::假意为: 读取书库 里面ID为1001的书籍的第5页

@JController("/book") public class BookController extends Controller {

public void read(@JParam({1}) int bookId,@JParam({2}) int page){
//String p1=getParameterURL().get(0); //String p2=getParameterURL().get(1); //可以获取到p1=1001 p2=5 可以获取到bookId=1001 page=5

}

}

jweb编程规范(建议[不强求]):

1、所有@JController注解的类(即控制层)以:xxxxController.java命名 2、所有Server类(即服务层)以:xxxxServer.java命名 3、所有ajax请求以ajax开头,如:验证用户名称: /ajaxCheckName.html 4、提交操作以Action结尾,公用菜单权限,如:进入修改页面为:/edit.html 提交修改为:/editAction.html 能进修改的页面就有修改的权限。 5、服务层和接口层方法命名规则(服务层可以继承接口层,也可以不继承,无所谓):

listXXXX() --返回list对象 getXXXX() --返回一个对象 addXXXX() --新增操作 delXXXX() --删除操作 editXXXX() --修改操作

#==============================注意点==================================== 1、jweb框架使用的过滤器filter进行的请求拦截,对于有服务器端的forward,在web.xml的<filter-mapping>标签中必须加上:

<dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> <dispatcher>INCLUDE</dispatcher> <dispatcher>EXCEPTION</dispatcher>

空文件

简介

暂无描述 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/-MT-/jweb.git
git@gitee.com:-MT-/jweb.git
-MT-
jweb
jweb
master

搜索帮助