同步操作将从 JbootProjects/jboot 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
由于 Jboot 是基于 JFinal 进行二次开发的,因此 Jboot 的 MVC 相关功能是来至于 JFinal 提供的功能。
JFinal 的相关文档: https://www.jfinal.com/doc/3-1
Controller 是 JFinal 的核心类之一,是 MVC 设计模式中的控制器。基于 Jboot 开发的控制器需要继承 Controller。Controller 也是定义 Action 方法的地点,一个 Controller 可以包含多个 Action 。
另外,JbootController 扩展了 JFinal 的 Controller 类,增加了 Jwt、FlashMessage 和 其他一些实用的方法。
建议基于 Jboot 开发的应用,都继承至 JbootController。(备注:只是建议、而非必须。)
Action 的相关文档请参考: https://www.jfinal.com/doc/3-2
Interceptor 拦截器的相关文档请参考 https://www.jfinal.com/doc/4-2
FixedInterceptor 的用法和 Interceptor 一样,但是 FixedInterceptor
不会被 @Clear
清除,常用于给 Controller 或者 Service 的注解进行增强。
Handler 处理器是 JFinal 的核心,用于预先处理 Web 的所有请求,其架构可以参考 https://www.jfinal.com/doc/13-2 ,用法参考:https://www.jfinal.com/doc/2-7
Render 请参加 JFinal 的文档 https://www.jfinal.com/doc/3-7
Jboot 增强了 JFinal 的 Session 功能,同时 Session 默认使用了 Jboot 自带的缓存实现,当 Jboot 的缓存使用分布式缓存之后(比如 redis )。Session 就会自动有了分布式 Session 的功能。
当然,也可以通过如下来配置 Session 特殊功能:
jboot.web.session.cookieName #cookie 的名称
jboot.web.session.cookieDomain #cookie 的域名
jboot.web.session.cookieContextPath #cookie 的路径
jboot.web.session.maxInactiveInterval #cookie 的刷新时间
jboot.web.session.cookieMaxAge #cookie 的有效时间
jboot.web.session.cacheName #Session的缓存名称
jboot.web.session.cacheType #Session的缓存类型(不配置的情况使用jboot的默认缓存)
Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准(RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。
JWT的方法:
方法调用 | 描述 |
---|---|
setJwtAttr() | 设置 jwt 的 key 和 value |
setJwtMap() | 把整个 map的key和value 设置到 jwt |
getJwtAttr() | 获取 已经设置进去的 jwt 信息 |
getJwtAttrs() | 获取 所有已经设置进去的 jwt 信息 |
getJwtPara() | 获取客户端传进来的 jwt 信息,若 jwt 超时或者不被信任,那么获取到的内容为null |
JWT的相关配置
配置属性 | 描述 |
---|---|
jboot.web.jwt.httpHeaderName | 配置JWT的http头的key,默认为JWT |
jboot.web.jwt.secret | 配置JWT的密钥 |
jboot.web.jwt.validityPeriod | 配置JWT的过期时间,默认不过期 |
Jboot 提供了一些列的 validate 注解,方便用户对 Controller 进行数据验证。
使用方法:
@RequestMapping("/validate")
public class ValidateController extends Controller {
public void index(){
renderText("index");
}
// 访问 /validate/test1 不通过,必须是 /validate/test1/data 才会通过
@UrlParaValidate
public void test1(){
renderText("test1");
}
// 访问 /validate/test2 不通过,浏览器会显示内容 :test2 was verification failed
@UrlParaValidate(renderType = ValidateRenderType.TEXT,message = "test2 was verification failed")
public void test2(){
renderText("test2");
}
// 访问 /validate/test3 不通过,必须传入 form 数据
@EmptyValidate(value = @Form(name = "form"),renderType = ValidateRenderType.JSON)
public void test3(){
renderText("test3");
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。