在我的Grails应用程序中的一个控制器中,我在会话variables中保存了一个参数值,如下所示: session.myVariable = params.myValue 之后,我可以从不同的控制器/ GSP页面访问保存的值,只要我积极使用应用程序。 但是,如果我暂时不使用我的应用程序,即使浏览器窗口仍处于打开状态,会话variables也会失去它的值。 这是否因为会话过期而发生? 我的印象是,一个会话直到浏览器窗口仍然打开,但显然我错了。 我应该怎么做以确保我在Grails应用程序中定义的所有会话variables在浏览器closures之前不会过期? 有没有办法手动设置会话超时? 预先感谢您的回答!
我试图得到MVC框架的悬念,所以忍受着我。 现在,我正在使用会话存储的唯一事情是存储当前login的用户。 我的网站很简单。 对于这个例子,考虑三个域对象,人,会议和文件。 用户可以login并查看会议的“仅成员”configuration文件,并可以向其中添加文件,或查看会议的公开“configuration文件”(如果未login)。 所以,从会议的私人档案中,login的用户,我有一个“添加文件”链接。 此链接路由到FileContoller.Add(int meetingId)。 从这个动作中,我得到了用户想要使用会议ID添加文件的会议,但是在表单发布之后,我仍然需要知道用户正在向哪个会议添加文件。 这就是我的问题所在,我应该通过TempData传递“正在交互”会议,还是将其添加到Session存储? 这是我目前如何添加操作设置,但它不工作: public ActionResult Add(int meetingId) { try { var meeting = _meetingsRepository.GetById(meetingId); ViewData.Model = meeting; TempData[TempDataKeys.CurrentMeeting] = meeting; /* add to tempdata here */ } catch (Exception) { TempData[TempDataKeys.ErrorMessage] = "Unable to add files to this meeting."; return RedirectToRoute("MeetingsIndex"); } return View(); } [AcceptVerbs(HttpVerbs.Post)] public […]
如果我错了,请纠正我:在传统的Web应用程序中,浏览器会自动将会话信息附加到对服务器的请求中,以便服务器知道请求来自谁。 实际上究竟追加了什么? 但是,在基于API的应用程序中,这些信息不会自动发送,所以在开发API时,我必须检查自己,例如请求是否来自经过身份validation的用户? 这通常如何完成?
我怎样才能得到当前会议ID在轨道3? 我已经尝试了以下,没有运气: session[:session_id] session['session_id'] session[:id] session['id'] session.id session.session_id
我是hibernate的新手,在阅读完hibernate api和tutorial后,似乎session不用的时候应该closures。 喜欢这个: Session sess=getSession(); Transcration tx=sess.beginTranscration(); //do something using teh session sess.save(obj); tx.commit(); sess.close; 在独立应用程序中使用它时,我毫无疑问。 但是我不确定什么时候在web应用程序中使用。 例如,我有一个Servlet: TestServlet从客户端接收参数,然后我调用pipe理器根据参数来查询某些内容,就像这样: class TestServlet{ doGet(HttpServletRequset,httpServletResponse){ String para1=request.getParam…(); String para2=….. new Manager().query(para1,para2); } } class Manager{ public String query(String pa1,String pa2){ Session=….// get the session //do query using para1 and 1 session.close() //Here, I wonder if I should close […]
我觉得这个文件必须被埋在某个地方,但是我找不到。 如何在ExpressJS中closures,结束或杀死(不pipe)会话?
我目前使用db(mysql)来存储我的会话。 它工作的很好,但有点慢。 我被要求使用Redis,但是我想知道这是不是一个好主意,因为我听说Redis延迟了写操作,所以我有点害怕,因为会话需要真实的时间。 你遇到过这样的问题吗?
我正在使用本教程构build一个使用Passport.js的身份validation系统。 我对passport.session()做了什么感到困惑。 玩过不同的中间件之后,我明白了express.session()是通过cookie向客户端发送会话ID的,但是我对passport.session()做了什么以及为什么需要除了express.session()。 以下是我如何设置我的应用程序: // Server.jsconfiguration应用程序并设置Web服务器 //importing our modules var express = require('express'); var app = express(); var port = process.env.PORT || 8080; var mongoose = require('mongoose'); var passport = require('passport'); var flash = require('connect-flash'); var configDB = require('./config/database.js'); //Configuration of Databse and App mongoose.connect(configDB.url); //connect to our database require('./config/passport')(passport); //pass passport for configuration app.configure(function() […]
将用户发送到结帐页面时,他们从http://sitename.com切换到https://sitename.com 。 因此, $_SESSIONvariables会丢失。 该网站有一个有效的SSL证书,可能会或可能不会有一些使用。
在Session vs Cache中存储数据表有什么区别? 有什么优点和缺点? 所以,如果它是一个简单的search页面,返回一个数据表格的结果,并将其绑定到一个gridview。 如果用户'a'search和用户'b'search,将它存储在Session中是否更好,因为每个用户最有可能具有不同的结果,或者我仍然可以将他们的每个search存储在Cache中,或者是没有意义的,只有一个caching。 我想基本上我想说的是Cache会被覆盖。