`
mamacmm
  • 浏览: 199993 次
  • 性别: 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自定义视图以及提示信息的统一管理

    3. 配置自定义视图:完成自定义视图类的编写后,需要在Nutz的配置文件(如nutz-conf.properties)中声明这个自定义视图解析器,通过`mvc.view.resolver`属性指定你的实现类。 4. 视图参数传递:Nutz MVC允许你在...

    Nutz_Json_Book

    Nutz.Json 是一款轻量级、高效且易于使用的 JSON 处理库,它通过简单的 API 设计实现了 Java 对象与 JSON 字符串之间的转换,并提供了丰富的定制选项以满足不同的应用场景需求。无论是对于初学者还是经验丰富的开发...

    nutz的freemarker视图插件

    将Nutz与Freemarker结合,可以实现类似Struts2中对Freemarker模板的支持,使开发者能够利用Freemarker的强大功能来构建动态网页。 首先,让我们深入了解Nutz和Freemarker的基本概念: 1. **Nutz**: - Nutz是一个...

    nutz邮箱验证jar包

    "nutz邮箱验证jar包"是Nutz框架中用于电子邮件验证的一个特殊库,它为开发者提供了便捷的方式来验证用户的电子邮件地址,以确保数据的准确性和安全性。 在Java开发中,邮箱验证是一个常见的需求,例如在用户注册、...

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

    Nutz 是一个轻量级的Java框架,它提供了丰富的功能来支持数据库操作,包括视图的使用。视图在数据库设计中扮演着重要角色,允许开发者以简化的方式查询多个相关表的数据,而无需每次都进行复杂的联接操作。这篇博客...

    nutz应用示例

    标签中提到了`nutzdemo`,这可能是指该项目包含了一系列Nutz框架的演示用例,涵盖了一些基础功能,如路由处理、视图渲染、表单验证等。开发者可以通过这些示例学习到如何在实际项目中应用Nutz的各种特性。 总的来说...

    nutz框架使用手册.zip

    5. **实战示例**:手册可能包含多个实际开发案例,如CRUD操作、表单验证、文件上传下载、AJAX交互等,帮助读者通过实践更好地理解和掌握Nutz框架的使用。 6. **性能优化**:对于大型项目,性能优化至关重要。手册...

    Json方案,请参考

    ### Json Nutz:高效、灵活的JSON处理方案 #### 核心知识点概览: 1. **背景与目标**:在众多JSON处理库中,Nutz.Json脱颖而出,旨在提供最小、最快且最易用的JSON转换解决方案。其核心目标是简化JSON与Java对象...

    nutz需要的jar包

    Nutz是一个轻量级、高性能的Java开发框架,它提供了丰富的功能,包括MVC、ORM、DAO、AOP、IOC等,使得Java开发者能够快速地构建应用系统。...理解并熟练掌握这些jar包的功能和使用,是有效利用Nutz框架的关键。

    nutz 文件上传例子

    标题 "nutz 文件上传例子" 暗示我们即将探讨的是使用 Nutz 框架进行文件上传操作的相关知识。Nutz 是一个轻量级、高性能的 Java 开发框架,它提供了一系列方便实用的工具和组件,其中包括处理文件上传的功能。 在 ...

    ztree与nutz简单使用

    《ztree与nutz在实际应用中的简单使用详解》 在IT行业中,高效地管理和操作数据是至关重要的。zTree和Nutz都是在这方面提供强大支持的工具。zTree是一款基于JavaScript的灵活、强大的树状菜单插件,而Nutz则是一个...

    新框架Nutz

    Nutz的IoC(控制反转)功能是通过Nutz.Ioc实现的,它允许开发者将对象的映射关系存放在数据库或JSON文件中,而不是XML文件。Nutz.Ioc使用了MappingLoader和Mapping两个接口,这使得Nutz在未来有可能支持将映射关系...

    nutz学习资料2

    LendingCloud可能是使用Nutz框架开发的一个实际项目,这个文档将帮助我们了解如何在Nutz中实现具体的业务逻辑和数据管理。通过阅读这份文档,我们可以学习到如何在Nutz框架下进行数据库建模和操作,以及如何与后端...

    nutz代码生成器

    在使用Nutz Codematic时,首先你需要配置数据库连接信息,包括数据库类型(如MySQL、Oracle、SQL Server等)、数据库URL、用户名、密码等。配置完成后,工具会自动连接到指定的数据库,并读取表结构信息。 接着,你...

    nutz_redis集成依赖包

    6. **配置Redis连接**:在Nutz应用中,需要在配置文件(如`conf/nutz.conf`)中设置Redis的连接信息,如主机地址、端口、密码、数据库索引等。例如: ``` redis = { host : 'localhost', port : 6379, password...

    Nutz的插件与集成库-nutzmore

    2. **Web MVC**:Nutz MVC是一个基于Nutz的Web应用开发框架,它简化了控制器编写、视图渲染以及模型数据处理。Nutzmore可能包含了一些增强MVC功能的插件,如更丰富的模板引擎支持、国际化处理等。 3. **AOP(面向切...

    nutz框架开发手册

    - **轻量级**:Nutz的所有功能均不依赖第三方jar包,只需在项目中引入nutz.jar即可使用大部分功能。 - **高效性**:Nutz框架的设计目标之一就是在不影响运行效率的前提下,最大化地提高开发效率。 - **灵活性**:...

    nutz初使用之MVC HelloWorld (netbeans jsp版)

    我们将使用NetBeans IDE和JSP来实现这一过程。 首先,我们需要确保已经安装了NetBeans IDE,这是一个强大的Java开发环境,支持MVC模式的Web应用开发。接着,我们需要下载并添加Nutz框架到我们的项目中。Nutz的MVC...

Global site tag (gtag.js) - Google Analytics