针对内网访问和外网访问,首页有选择的展现验证码

这是一个很简单的需求,我一开始就只有一个想法,那就是在页面加载完成之后,对请求的url进行判断,如果是内网访问,就对验证码这一部分进行样式的隐藏。也就是在$(document).ready(function(){ 

//判断是否内网

$("tr[class='val']").css("display","table-row");

}

 

这样做毫无疑问是没有问题的,但是放到测试环境进行测试的时候,我就发现不对了!! 打开页面的时候,因为判断是在页面整体加载完成之后才回执行,所以最终效果出来,如果是内网访问,那么页面首先是有验证码,然后页面会一闪,验证码消失,很明显,这样的用户体验是很差的,所以只能换一个方法实现!我思考了一下,如果要做进页面的时候就显示最终效果,那么验证码那一段js一开始就不能存在!所以我换了个思路,只有内网访问时,给密码下面的添加了这一段js!这样一来效果就完成了。

 if(//是内网){
  
  $("tr[id='kkk']").after("<tr class='val' height='35'>"
         +"<td height='28' style='padding-left:4px'>验证码:</td>"
      +"<td colspan='2'>"
         +" <input type='text' style='height:28px; width:50px; border:#a1cde5 1px solid; padding:0 2px;' id='validcode' name='validcode' />" 
         +" <img id='validimg' src='<%=basePath%>/www/marketingcenter/validCode.jsp' onclick='javascript:change();' style='position: absolute;' />"
      +"<a href='#' onclick='change();' style='margin-left:65px'>换一张 </a>"         
         +"</td>"
         +"</tr>");
 }

我们的项目是用的struts2框架,而其实我是不会这个框架的,最近几天自学了点struts2框架的知识,大概懂了点! 在做内外网判断的时候,我找到了跳转到login.jsp的action

<action name="login"
   class="com.huawei.iread.interfaces.service.www.marketingcenter.service.EnterpriseInitService" method="login">
   <result>/www/marketingcenter/login.jsp</result>
  </action>

然后找到EnterpriseInitService下面的login方法,在方法中对内外网访问进行了判断,然后把判断结果放进了session中,在前台去取到该值var boom =<%=session.getAttribute("ifNeedValid")%>; 最终完成判断!

 

我在java开发的路上走的不远,写博客是为了记录自己的工作经历,给你们也给以后的自己看看,对你们也许会有帮助,对我自己而言,这种感觉也会很奇妙!

关于我的内容,如果有更好的实现方法,或者有什么建议都可以直接说!

 

posted on 2017-08-07 22:41  敲代马  阅读(788)  评论(0编辑  收藏  举报

导航