`
mamacmm
  • 浏览: 197350 次
  • 性别: Icon_minigender_1
  • 来自: 河北
社区版块
存档分类
最新评论

使用Nutz的json视图实现前台密码验证

    博客分类:
  • J2EE
阅读更多

使用Nutz的json视图实现前台密码验证

 

 

【阅读本文前提】

 

    您了解Nutz框架(刚刚接触Nutz,对此还不熟悉),想要使用json视图;

    您对jquery的ajax还不熟悉,想要使用此功能;

    您使用了MD5加密了原始密码,或者其他方式加密了原始密码,在修改密码时候需要先把用户输入的原始密码传到后台,在进行加密,与数据库中的密码判断,如果相同,传回到页面。

 

【正文】

 

  1.怎么在项目中使用Nutz框架,这里就不说了,具体可查看:

     http://code.google.com/p/nutz/wiki/nutz_preface?tm=6

  

   2.前台修改密码部分

 

   修改密码的页面的代码为(我使用了FreeMarker视图,但对功能实现不影响,您也可用其他视图):

 

<form name="theForm" action="" method="post">
<input type="hidden" name="personId" value="aa" />
<table width="95%" border="0" cellPadding="0" cellSpacing="1" bgcolor="#6386d6">
  <tr bgcolor="#EFF3F7" class="TableBody1">
      <td width="35%" height="37" align="right"><b>登录名:</b></td>
      <td height="37" align="left">${Session[config.session_user].loginName}</td>
  </tr>
  <tr bgcolor="#EFF3F7" class="TableBody1">
      <td width="35%" height="37" align="right"><b>用户名:</b></td>
      <td height="37" align="left">${Session[config.session_user].userName}</td>
  </tr>
  <tr bgcolor="#EFF3F7" class="TableBody1">
      <td width="35%" height="37" align="right"><b>原始密码:</b></td>
      <td height="37" align="left">
      	<input type="password" name="oldpassword" value="" />
      </td>
  </tr>
  <tr bgcolor="#EFF3F7" class="TableBody1">
      <td width="35%" height="37" align="right"><b>新密码:</b></td>
      <td height="37" align="left">
      	<input type="password" name="password" value="" />
      </td>
  </tr>
  <tr bgcolor="#EFF3F7" class="TableBody1">
      <td width="35%" height="37" align="right"><b>重复密码:</b></td>
      <td height="37" align="left">
      	<input type="password" name="repassword" value="" />
      </td>
  </tr>
  <tr bgcolor="#EFF3F7" class="TableBody1">
      <td width="35%" height="37" align="center"></td>
      <td height="37" align="left">
      	<input class="mya" type="button" value="确定" onclick="return validateForm();" />
      	<input class="mya" type="reset" value="重置" />
      </td>
  </tr>
</table>
</form>

 

js代码(我直接写在了页面上):

 

<script type="text/javascript">
<!--
	function validateForm(){
		var oldpassword = theForm.oldpassword;
		var password = theForm.password;
		var repassword = theForm.repassword;
		var obj = false;
                                
                                。。。。。。
                    	$.ajax({
			async:false, //使用同步请求,因为异步请求不能将返回值传给全局变量;这里很重要
			url:"${base}/admin/validate.action",
			type:"post",
			dataType:"json",
			data:"oldPwd="+oldpassword.value,
			success:function(data){
			   // alert("ok:"+data);
			    obj = data;
			}
		});
		
		 if(!obj){
			alert("请输入正确的原始密码!");
			oldpassword.value="";
			oldpassword.focus();
			return false;
		}
                                。。。。。。
//-->
</script>

 

其中。。。。。。是略掉了其他代码,对此功能实现无影响。

 

 

到这里,解释下:

 

用户在页面上输入了原始密码,比如是:admin,在js代码里面使用了jquery的ajax进行与后台交互

其中的 async:false 这个设置很重要

URL地址就是在后台的一个子模块的一个入口函数(就像struts2里面的action)

 

3.后台部分

 

在相关的模块里面的相关入口函数validate的代码:

 

/**
* 前台密码验证
* @return
 */
@At("/admin/validate")
@Ok("json")
public boolean validate(@Param("oldPwd")String oldPwd,HttpServletRequest req){
			
	User user = (User)req.getSession().getAttribute(Constants.LOGIN_USER);
	boolean flag = MD5Util.checkMD5String(oldPwd, user.getPassword());

	return flag;
}

 

 

其中的@Ok("json")表示要返回json视图

其中的(@Param("oldPwd")String oldPwd表示接收前台传过来的值oldPwd

先从Session中取得登录用户的密码,在和传过来的oldPwd,使用MD5工具类进行比较,把比较结果传回前台。

 

 

解释到这里,我想大家应该明白了吧(有什么写的不好的地方,欢迎指教。)

 

 

 

分享到:
评论
2 楼 zozoh 2011-05-03  
如果想自己封装 JSON 的返回,不用默认的 @Ok("json") ,而自己写个新的视图类型,也会更方便,比如我自己就常用 @Ok("ajax") -- 一个我自己定制的视图
1 楼 wendal 2011-05-02  
呵呵,不错

相关推荐

    TT随笔五 Nutz自定义视图以及提示信息的统一管理

    NULL 博文链接:https://536762164-qq-com.iteye.com/blog/1872468

    nutz的freemarker视图插件

    让nutz支持freemarker。 具体使用和在struts2中使用是一样的

    nutz 使用手册 nutz-1.a.33-manual.pdf

    nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册 nutz 使用手册

    nutz邮箱验证jar包

    用于nutz邮箱验证jar包

    Nutz_Json_Book

    • 通过简单的toJson 和fromJson能完成绝大部分的互转工作, 不再需要额外的配置. • 能够提供模板, 容易的更改Json的展现, 和反向的Java Object生成 • 适用于任何的Java对象, 包括基本类型 • 支持JDK1.5+

    高效,小巧的开源JAVA WEB 开发框架-Nutz (源码,开发文档)

    Json 解析器 -- Nutz.Json 更多的简化Java语法的函数和类 -- Nutz.Lang 以及 Nutz.Castors 不依赖任何第三方 Jar 包,从而便于程序员建立开发环境,部署,甚至重新编译 Nutz 的源代码。 不幸的是在第一版,我还是...

    nutz-1.b.52.zip

    如果你觉得 JSON 转换很麻烦(要写超过一行以上的代码),Nutz.Json 专为你设计 如果你觉得 Java 语法不如 Ruby 便捷, Nutz.Castor 以及 Nutz.Lang 专为你设计 如果你以前根本没接触过 SSH ,只使用 JDBC 编程, ...

    nutz框架使用手册.zip

    nutz框架使用手册,从零到有深入学习nutz平台开发

    Nutz框架文档

    活 -- 各个部分可以独立使用,比如在 Spring 里采用 Nutz.Dao ,又比如在 Nutz.Ioc 里使用 Hibernate 等 整 -- 它所有功能均不依赖第三方 jar 文件。 这就意味着:如果一个 Web 应用,你在 WEB-INF/lib 下只 需要...

    Nutz-1.b.38

    同传统的 SSH 相比,它具备如下特点:轻 -- 当前最新版,整个 jar 文件共 910kB -- 针对 JDBC 的薄封装,无缓存全 -- 提供了 Dao (ORM, SQL 管理), Ioc, Aop, Mvc, Json解析 等必要功能活 -- 各个部分可以独立使用,...

    ztree与nutz简单使用

    NULL 博文链接:https://yunhaifeiwu.iteye.com/blog/1041416

    nutz pdf学习文档

    活 -- 各个部分可以独立使用,比如在 Spring 里采用 Nutz.Dao ,又比如在 Nutz.Ioc 里使用 Hibernate 等 整 -- 它所有功能均不依赖第三方 jar 文件。这就意味着:如果一个 Web 应用,你在 WEB-INF/lib 下只 需要放置...

    springboot+nutz+beetl整合工程

    dao层使用nutz,view层使用beetl,数据源使用阿里的druid

    nutz框架开发手册

    nutz框架开发手册,框架很方便使用的,和大家分享

    Nutz中select 包含 order by 的问题

    使用nutz, 直接写sql查询 select 中包含 order by 查询出错的问题修正

    nutz生成javabean工具.zip

    nutz生成javabean工具.zip

    nutz代码生成器

    可连接多种数据库根据表直接生成nutz所需的bean

    在Nutz[1.b.38]中使用视图对关联数据表的操作

    NULL 博文链接:https://gevin.iteye.com/blog/1147922

    nutz插件 定位页面路径

    可以快速定位路径 页面 本jar包是nutz实用插件 希望大家多多下载

Global site tag (gtag.js) - Google Analytics