Month: August 2011

Tomat如何实现session

Servet Spec 规定了三种session tracking机制:   1.cookie (cookie name 必须是JSESSIONID)   2.url rewrite (即给URL加上,";jessionid=EDFGHGFRTYTYUI56789", e.g.)   3.如果当前处于SSL中,则servlet容器可以直接利用SSL中内置的会话跟踪机制实现自己的session 据不完全代码跟读,tomcat5.5并没有采用第3种方案(我也无法确证),所以这里只讨论前两种: 机制1: cookie a. 创建session时 => 服务端创建cookie,并通过http-response发到客户端 //org.apache.catalina.connector.Request. doGetSession() … //先创建session对象 // Creating a new session cookie based on that session if ((session != null) && (getContext() != null) && getContext().getCookies()) { Cookie cookie = new Cookie(Globals.SESSION_COOKIE_NAME, session.getIdInternal()); //注意:cookie的domain未设置 …

Tomat如何实现session Read More »

记住这个术语:Synchronizer Token

Synchronizer Token 就是用于防止表单重复提交的那种token Core J2EE Patterns里有描述: Synchronizer (or Déjà vu) Token This strategy addresses the problem of duplicate form submissions. A synchronizer token is set in a user’s session and included with each form returned to the client. When that form is submitted, the synchronizer token in the form is compared to the synchronizer token …

记住这个术语:Synchronizer Token Read More »

如果一个Use Case中既有读操作,又有写操作

如果一个Use Case中既有读操作,又有写操作,则试试能否把读操作全部做完,再进行写操作。不要混起来做。 好处就是:读操作放一起,就有希望把它们抽出来作为一个方法,以后别的类可以重用它。

你应在哪些场景下废止当前的session?

废止当前的session,一是为了让用户无权再进行任何需授权的操作,比如   1. sign out 废止session的另一个目的是:若某个操作暗示“用户尚未登入”作为前提,则在这个操作进行前就应该废止session,确保用户进入“未登入”状态; 否则,若用户还处于登入状态时却仍然去做这些操作,就可能会出问题,比如   2. login  — 若用户A仍存于session中,这时在同一个浏览器中以B身份登录,则登录后,A残留在session的数据可能就会被送给B。类似的情形有:   3. 注册   4. 忘记密码,欲重置

串匹配:找到子串的前缀和后缀

偶惊奇地发现,我不用作任何"+1", "-1"之类的操作 String str = "prefixKeywordPostfix"; String KEYWORD = "Keyword"; String prefix = str.substring(0, str.indexOf(KEYWORD)); //"prefix" String keyword = str.substring(str.indexOf(KEYWORD), str.indexOf(KEYWORD) + KEYWORD.length()); //"Keyword" String postfix = str.substring(str.indexOf(KEYWORD)+ KEYWORD.length()); //"Postfix"