每天进步一点点(二)

  果不其然,软件开发进度和预计时间存在出入,而且是很大出入,在开发前预计某某功能按照自己的自愿能很快实现,就算是自己非常熟悉的方面,在开发期间同样也会面临各种问题。今天解决了一个问题,另外又进一步学到ExtJs。

  一:关于防止未登录直接访问。这个其实是很好解决的问题,就session问题,但是在之前一直没有去解决这个问题,应该算是web安全最最最简单的安全了。如果是采用传统JSP+Servlet应该是很好解决的,不过到用了各种框架后也许就会显得力不从心无从下手。这次前台是采用ExtJs,后台则是Struts2。仅login.jsp和index.jsp两个界面,数据交互采用Ajax,昨天有提到ExtJs大部分接受的JSON,所以跳转在ExtJs中,为什么不在Struts配置文件中进行跳转呢?因为我想给给登陆界面login.jsp返回一个flag表示时候登陆成功,这个地方一定是可以在Struts配置文件中进行跳转的,不过目前还不知道。回到重点,我需要在登陆成功后将用户名、密码保存在session中,所以我在login.jsp对应的LoginAction.java中用到了ActionContext,代码如下:

    //保存session,防止未登录进行访问
    ActionContext actionContext = ActionContext.getContext();
    Map session = actionContext.getSession();
    session.put("username", name);
    session.put("userpass", password);

  这样就讲用户名和密码保存在了session里,当然必须是验证成功后才保存。

  同样在index.jsp需要取出session值,因为没有判断用户类型,所以仅做了是否为空判断,代码如下:

  <%
      String username = (String)session.getAttribute("username");
      String userpass = (String)session.getAttribute("userpass");
      if (username == null || userpass == null){
          response.sendRedirect("login.jsp");
      }
   %>

  OK!

  二:这个问题之前没有仔细深究过,是关于ExtJs与后台的交互问题,将前台数据提交到服务器端,简单点说,对于form表单提交有两种方式(目前所知),第一:采用this.up(‘form‘).getForm().submit({//code}),这种方式有点类似于JSP传递方式会将表单数据中的数据一一进行传递,而不是通过转换成JSON(但是也可以进行JSON传递),此种方式有的地方会比较简便,因为不需要对JSON解析,服务器端Struts2由于已经封装好所以只需要声明和前台一样的字段;第二:则是Ext.Ajax.request({//code})此种方式没有上一种将字段一一进行传递而是将其封装为JSON字符串,服务器端再进行解析。至于何种用哪种,必定两者都有其用武之地。

每天进步一点点(二),布布扣,bubuko.com

时间: 2024-08-11 07:41:46

每天进步一点点(二)的相关文章

最优雅退出 Android 应用程序的 6 种方式

一.容器式 建立一个全局容器,把所有的Activity存储起来,退出时循环遍历finish所有Activity import java.util.ArrayList;    import java.util.List; import android.app.Activity;    import android.os.Bundle; public class BaseActivity extends Activity {        @Override        protected voi

利用css3的animation实现点点点loading动画效果(二)

box-shadow实现的打点效果 简介 box-shadow理论上可以生成任意的图形效果,当然也就可以实现点点点的loading效果了. 实现原理 html代码,首先需要写如下html代码以及class类名: 订单提交中<span class="dotting"></span> css代码 .dotting { display: inline-block; min-width: 2px; min-height: 2px; box-shadow: 2px 0 c

每天进步一点点——Linux中的线程局部存储(二)

转载请说明出处:http://blog.csdn.net/cywosp/article/details/26876231 在Linux中另一种更为高效的线程局部存储方法,就是使用keyword__thread来定义变量.__thread是GCC内置的线程局部存储设施(Thread-Local Storage),它的实现很高效.与pthread_key_t向比較更为高速.其存储性能能够与全局变量相媲美,并且使用方式也更为简单.创建线程局部变量仅仅需简单的在全局或者静态变量的声明中增加__threa

企业级产品思考(二)

接着这个话题写完吧,以前弄到腾讯内部的产品架构ppt,其中谈到一条:不为企业产品做架构!这点深有体会,因为重口难调,极端的可能是两个需求对应两种完全不同的架构,比如我们老版本的客户端重写了explorer,优点是我们可以控制用户行为,缺点是容易出bug,同步不流畅,容易卡死,新版本参考svn做了同步功能,体验爽了,流畅了但是控制不了用户行为,这个时候用户提出一个需求:同步下来的文件我不想员工轻易复制走!!何解?那么如何思考企业产品的设计来迎合需求,我想这个问题永远只有一个临时答案. 我想从第一篇

Unity3d 4.0新动画系统Mecanim用法(二)

上一篇,我们初步了解了一下Mecanim的部分很基础的类容,我以一个疑问的形式结尾.这次我来揭晓此问题的答案,其实很简单,上次的警告如下: 4.0新动画系统Mecanim用法(二)"> 警告的大概意思是:用在Animator Controller中的Animation clips需要有在检视面板中被设置了Muscle(肌肉)的这个步骤. 我的英文很烂,但我可以知道这句话的含义,就是我们的用到的这个Animation Clip必须是已经产生了Avatar的模型中的Animation Clip

Key/Value之王Memcached初探:二、Memcached在.Net中的基本操作

一.Memcached ClientLib For .Net 首先,不得不说,许多语言都实现了连接Memcached的客户端,其中以Perl.PHP为主. 仅仅memcached网站上列出的语言就有:Perl.PHP.Python.Ruby.C#.C/C++以及Lua等. 那么,我们作为.Net码农,自然是使用C#.既然Memcached客户端有.Net版,那我们就去下载一个来试试. 下载文件:http://pan.baidu.com/s/1w9Q8I memcached clientlib项目

杨森翔:春节文化大观上编 第三章 春节古诗词 目录 第一节:春节诗词概述 一、 除夕诗词概述 二、元日诗词概述 三、 元宵诗词概述 第二节:春节古诗词拾萃

杨森翔:春节文化大观上编 第三章 春节古诗词 目录 第一节:春节诗词概述 一. 除夕诗词概述 二.元日诗词概述 三. 元宵诗词概述 第二节:春节古诗词拾萃 一.腊祭诗词 二.祭灶诗词 三.除夕诗词 四.元旦诗词 五.人日诗词 六.元宵诗词 第一节:春节古诗词概述 中国的春节,作为除旧迎新的节日,时间相当长,从年前的腊月二十三,天空中就似乎弥漫了节日的气息.这种节日的气氛,在保持传统风俗较好的地方,甚至会持续到二月二龙抬头的时候,但欢度春节的高潮,应该说是自除夕始一直到上元之夜.因此,历代歌咏和反

WebGL入门教程(二)-webgl绘制三角形

前面已经介绍过了webgl,WebGL入门教程(一)-初识webgl(http://www.cnblogs.com/bsman/p/6128447.html),也知道了如何绘制一个点,接下来就用webgl画出一个三角形. 效果图: 在WebGL入门教程(一)-初识webgl中,知道如何绘制一个点 //绘制一个点 gl.drawArrays(gl.POINTS, 0, 1); 但是图形是有多个点组成,那么就应该考虑如何绘制多个点,WebGL提供了一种很方便的机制,缓冲区对象(buffer obje

Data guard概念篇二(转载)

本文转载至以下链接,感谢作者分享! http://tech.it168.com/db/2008-02-14/200802141545840_1.shtml 一.Standby数据库类型     前章我们简单介绍了Standby数据库,并且也知道其通常分为两类:物理standby和逻辑standby,同时也简短的描述了其各自的特点,下面我们就相关方面进行一些稍深入的研究: 1. 物理standby 我们知道物理standby与primary数据库完全一模一样(默认情况下,当然也可以不一样,事无绝对