傻下傻下咁,最近继续学习Struts2,这么傻瓜化的开发框架,我竟然还是遇到一大堆问题。
服务器端:
1)pattern设计真的好重要啊,细化的时候需要考虑好多东西,首先就是对框架要熟悉,这一点我作为新手就做不到了。设计出来的东西基本不可用,结果开发的时候一团糟,业务逻辑根本不能体现,结果变成补漏洞,效率非常的低。
2)字符集的问题,Struts2默认不支持中文,稍微搜了一下资料,用filter在不知道原理的情况下解决了。MySql也是,在url加上字符集信息即可。
3)怎么调试,查看出错信息,表笑我,我知道这个问题很低B,开始的时候我真的只能从页面看到tomcat的异常返回信息……后来发现原来myeclipse中的console有更详细的堆栈信息
4)ubuntu下tomcat的部署,总是提示我找不到JRE_HOME,我明明在系统变量里面设好了路径呀……搞了N久。才想起我是在自己的账户下设环境变量的,而tomcat是用root权限启动的,root下没有java的环境变量,晕。
5)整合Servlet和jsp脚本,因为部分功能是交由文叔写的,因为文叔对Servlet比较熟。整合还算顺利,不过文叔使用sql Server(晕啊,这么混乱的开发肯定史无前例),搞了很久没办法切换到jdbc下,一下子把全部数据库代码用Hibernate重写,文叔表情好崩溃啊……对不起啊……我这个so call CTO太烂了。然后就是jsp的脚本,加了一下对session空值的判断,就不那么容易报错了,文叔你要注意咯~
6)配置管理在ubuntu,新学的一门课程,关于版本控制的,蛮实用的,我在这里也弄了一下,windows下很简单两下就搞定了,可以我想用ubuntu做服务器啊,于是在上面很欢乐的键入apt-get install subversion……傻眼了,教育网的软件源没有,啊,没关系了,找源码来编译吧,反正以前也做过。辛辛苦苦用搜狗还有求助于小蕊的国际网路下了源码包和依赖包。弄了好几天了,不是缺这个包就是那个包,全在国外的,痛苦……最终都没有弄好,我恨华工校园网啊……要是有电信多好啊……
7)Cookie问题,搞了很久,而且还存在一些不得不解决的疑问,后文再述
JS方面:
1)div和css的控制……还是表笑我,菜鸟就菜鸟呗,这几样都是初学,其实就是动态调调值,很基础。
2)不会用调试器,以后慢慢改进……
关于Cookie:
很郁闷的一个东西,本来J2EE里面的response已经封装好了addCookie的方法了,网上的人也是这么做的,可是我死活都没有办法添加Cookie到本地(使用IE,Cookie只存在于浏览器进程,没有写入IE缓存)。也许这就是不了解底层技术细节的缘故,这么小的一个问题搞了很久都没有解决,甚至连网上也众说纷纭。后来终于想到可能是浏览器问题,换用firefox和chrome,诶,成了,Cookie能正确写入啊,就IE不行,晕啊,js已经不一样了,现在连服务器语言都有影响,真痛苦啊。
没办法,只好找微软的资料,发现用ASP写的Cookie中多了一个java中没有属性——Expires。就是它了,我没有再查Cookie的标准,不知道Cookie中是不是一定使用Expires来表示生存期的,是不是微软故意和java作对还是java我行我素,asp中的Cookie是可以直接add的,response中会自动添加Expires字段。用java的话就要自己写Set-Cookie的Header了,时间格式也要按照Expires=Thu, 01-Jan-1970 00:00:10 GMT的形式转换一下添加到最后,结果就成了这样一个不伦不类的格式,终于搞定了写入的那part了。
Date date = new Date();
date.setTime(date.getTime()+60 * 60 * 24 * 14*1000);
String[] d = date.toString().split(" ");
String expires = d[0]+", "+d[2]+"-"+d[1]+"-"+d[5]+" "+d[3]+" "+d[4];
response.setHeader("Set-Cookie", "gavin.cookie.rememberme=\""+cookie.getValue()+"\"; Version="+cookie.getVersion()+"; Domain="+cookie.getDomain()+"; Max-Age="+cookie.getMaxAge()+"; Path="+cookie.getPath()+";Expires="+expires);
接下来的疑问就是关于Cookie的安全性了,看了几篇介绍都不痛不痒的文章,只是说Cookie要加密,谁不知道呀。我思考了一下,提出疑问。
1)Cookie中保存用户标识(用户ID,密码等),对于这些信息的加密很简单,就算别人得到了你的Cookie文件也没办法读出你的信息,一个DES还有一些URL规则就搞定了。问题在于伪造。
2)假设我从你的电脑盗取了一个Cookie文件,我确实是没有办法盗取你的账户信息,但是Cookie无非就是用request发送一段信息到服务器而已,那么这段信息无论是否加密,Cookie文件中确实保存了,然后我把它发送到服务器,服务器是否就没有办法辨认哪个我是真正的用户呢?(大家都发送同一段字符串)
3)我看到一些说法是在服务器端保存Cookie副本,还有使用RSA加密,其实都没有脱离第2点所说,request求其可以冒仿,那么定然可以发送一摸一样的request,服务器应该怎么抵御这种攻击呢?请高手赐教。
其实问题的核心是,当Cookie被盗的时候如何保证安全性。 <!--v:3.2-->
分享到:
相关推荐
struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全...
1. 虽然Struts2在安全方面有一些漏洞,但通过及时更新版本和合理配置,可以有效避免如S2-005、S2-016等已知漏洞。 七、最佳实践 1. 使用ActionSupport基类,可以自动处理表单回显和错误显示。 2. 避免过度依赖OGNL...
struts2学习总结
根据提供的文件信息,我们可以整理出关于Struts2框架的一些关键知识点。尽管原文中的信息较为零散且不完整,但还是可以从中提炼出一些有价值的内容。接下来,我们将详细探讨这些知识点。 ### Struts2简介 Struts2...
本总结将深入探讨Struts2的核心概念、关键功能和实用技术,以帮助开发者全面理解并熟练运用这一框架。 一、Servlet模板 在Struts2中,Servlet模板是一种处理请求和响应的方式。它通过拦截器链对请求进行处理,然后...
以下是对Struts2知识点的详细总结: 1. **Struts2核心组件** - **FilterDispatcher**(或现在的`StrutsPrepareAndExecuteFilter`):这是Struts2的核心过滤器,它负责拦截请求,处理Action映射,并转发到相应的...
在这个“Struts2项目开发经验总结”中,我们将深入探讨Struts2的核心概念、关键特性以及在实际项目中的应用。 首先,Struts2作为控制器,负责处理HTTP请求,并通过Action类来执行业务逻辑。Action类是Struts2的核心...
Struts2是一个强大的Java web应用程序开发框架,它遵循Model-View-Controller (MVC)设计模式,用于构建可维护性和可扩展性高的企业级应用。本文将深入探讨Struts2的核心概念,包括Action、Result、配置文件、OGNL与...
Struts 是一个开源的 JavaEE ...以上是对Struts开发模式的经验总结,涵盖了从环境配置到实际开发的关键点。在实际开发中,还需要对异常处理、国际化、安全性等方面有深入理解,以构建稳定、高效、可扩展的Struts应用。
### Struts2初步使用总结 #### 一、Struts2原理概述 **1.1 为什么要用Struts2** 在探讨为何使用Struts2之前,我们先简要回顾一下Struts2的一些基本特点: - **模块化设计**:Struts2采用模块化的架构设计,使得...
以下是关于Struts2的一些核心知识点的详细说明: 1. **环境搭建**:要搭建Struts2的开发环境,首先需要配置Tomcat服务器和JDK。接着,将必要的Struts2库文件(jar包)添加到项目的类路径中,通常这包括Struts2的...
### Struts2 学习重点知识点总结 #### 一、Struts2 概念与架构 **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 ...
很多Struts2的功能都是基于XWork实现的。 3. **ognl.jar**:OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取和设置Java对象的属性。在Struts2中,OGNL用于传递Action与视图之间的数据,...
struts知识点总结struts知识点总结,觉得有需要的就拿去看看吧
Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试...