JFinal Web开发学习注册界面和后端验证
Posted wyhluckydog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JFinal Web开发学习注册界面和后端验证相关的知识,希望对你有一定的参考价值。
效果:
直接点击注册后 :
后端验证是可靠地,前端js验证是不可靠的。只需要在浏览器删除js验证代码即可突破js验证。
1.注册界面
在WebRoot下新建regist.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page isELIgnored="false" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>注册</title> </head> <body> <form action="regist" method="post"> 用户名:<input name="reg.name" type="text" >${nameErrMsg}<br> 密码: <input name="reg.pwd" type="password">${pwdErrMsg}<br> 验证码:<input name="reg.yzm" type="text"><img src="/yzm"><br>${yzmErrMsg} <button type="submit">注册</button> </form> </body> </html>
使用原生html书写,可根据自己的需求美化,使用各种优秀前端框架.
2.写后端验证
在validate包中新建RegistValidator继承JFinal的Validator
在重写的validate方法中加入自己需要验证的字段
package cn.pangpython.validate; import com.jfinal.core.Controller; import com.jfinal.validate.Validator; /** * @author pangPython * 注册的验证器 */ public class RegistValidator extends Validator { @Override protected void handleError(Controller arg0) { // TODO Auto-generated method stub } @Override protected void validate(Controller arg0) { validateRequired("reg.name", "nameErrMsg", "请填写用户名!"); validateRequired("reg.pwd", "pwdErrMsg", "请填写密码!"); validateRequired("reg.yzm", "yzmErrMsg", "请填写验证码!"); } }
3.新建公共控制器CommonController继承JFinal的Controller
在里边写一些前后端通用的方法,这里先写验证码生成
package cn.pangpython.controller; import com.jfinal.core.ActionKey; import com.jfinal.core.Controller; import com.jfinal.render.CaptchaRender; /** * @author pangPython * 通用控制器,写一些通用的方法,验证码生成等 */ public class CommonController extends Controller { @ActionKey("/yzm") public void verifycode(){ render(new CaptchaRender()); } }
Jfinal的验证码生成很简单,就这么几个单词….验证码校验是更简单(在JFinal2.2中)
要把这个控制器在路由中绑定一个url
FrontRoutes.java
package cn.pangpython.routes; import com.jfinal.config.Routes; import cn.pangpython.controller.CommonController; import cn.pangpython.controller.IndexController; import cn.pangpython.controller.UserController; /** * @author pangPython * 前台路由 */ public class FrontRoutes extends Routes { @Override public void config() { add("/",IndexController.class); add("/user",UserController.class); add("/common",CommonController.class); } }
4.在首页控制器中写注册方法
IndexController.java
package cn.pangpython.controller; import com.jfinal.aop.Before; import com.jfinal.core.Controller; import cn.pangpython.validate.RegistValidator; /** * @author pangPython * 主页控制器 */ public class IndexController extends Controller { public void index(){ renderText("index"); } //渲染注册页面 public void regpage(){ render("regist.html"); } //处理注册 @Before(RegistValidator.class) public void regist(){ renderText("注册成功!"); } }
5.在MyJFinalConfig中的configConstant(Constants me)函数中添加映射视图:
@Override public void configConstant(Constants me) { // 开发模式 me.setDevMode(true); //这里可以通过配置文件来读取配置参数,更灵活 //指定视图 me.setViewType(ViewType.JSP); }
具体功能实现后面系列博客中会继续更新…
: )
参考博客:https://blog.csdn.net/u012995856/article/details/52781479
以上是关于JFinal Web开发学习注册界面和后端验证的主要内容,如果未能解决你的问题,请参考以下文章