我有一个有状态的EJB,我用它来保持我的应用程序中的当前用户信息.这个EJB被注入到servlet控制器中,用于存储登录的最后一个用户.但是,每个客户端上的会话似乎都是相同的.
示例EJB代码:
Stateful
@LocalBean
public class CurrentUserBean {
private string Username;
public void setUser(String un)
{
Username = un;
}
....
Run Code Online (Sandbox Code Playgroud)
示例Servlet代码:
public class MainController extends HttpServlet {
@EJB private CurrentUserBean userBean;
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession();
String name = session.getAttribute("username");
userBean.setUser(name);
......
Run Code Online (Sandbox Code Playgroud)
现在,当应用程序部署在我的服务器上并且我有许多不同的人从几个不同的客户端与服务器通信时,用户名始终设置为登录的最后一个用户.换句话说,它似乎是有状态会话bean在所有客户中保持相同的状态.这让我很困惑,因为我在java 6 ee教程中读到了第247页的以下引用:
在有状态会话bean中,实例变量表示唯一客户端/ bean会话的状态.因为客户端与其bean交互("会话"),所以这种状态通常称为会话状态.顾名思义,会话bean类似于交互式会话.会话bean不共享; 它只能有一个客户端,就像交互式会话只能有一个用户一样.当客户端终止时,其会话bean似乎终止并且不再与客户端关联.
有人可以解释为什么会发生这种情况,并解释如何以适当的方式使用有状态bean,而不是在所有客户端中保持相同的状态?
谢谢.
这是我遇到问题的代码示例:
我试图在悬停时在 HTML 元素上方添加一个动态删除按钮。例如,当我有以下 HTML 时:
<div class="row-fluid" object="columns-editable">
<div class="col-md-6" object="column-editable">Column 1</div>
<div class="col-md-6" object="column-editable">Column 2</div>
</div>
<div class="row-fluid" object="columns-editable">
<div class="col-md-6" object="column-editable">Column 1</div>
<div class="col-md-6" object="column-editable">Column 2</div>
</div>
Run Code Online (Sandbox Code Playgroud)
对于每一行,当用户悬停时,该行上方会弹出一个图标,允许他们删除该行。但是,当我在代码中执行此操作时,删除按钮的位置仍然位于第一行的顶部,即使它设置为绝对位置。

感谢您的帮助。
我正在尝试在javascript中使用字符串,解析并替换HTML中的项目,然后将其强制转换为字符串.我不能为我的生活弄清楚如何将新的jQuery对象转回HTML.
var compiled = '<div><div id="header-content">Test</div></div>';
$(compiled).find('#header-content').html('Woot');
var newCompiled = $(compiled).html();
//Need newCompiled to be '<div><div id="header-content">Woot</div></div>'
Run Code Online (Sandbox Code Playgroud)
请帮忙.
我正在尝试设计一个类似CMS的系统,允许用户修改其站点内的HTML.问题是我们正在使用Razor作为视图引擎,我试图想出一个强大的策略,允许用户编辑所有的HTML并仍然保持剃刀功能,如循环,你会有一个列表文章或东西沿着这些路线.
我也不确定文件系统是如何工作的.可以/应该将修改过的razor html页面存储在数据库中吗?或者您是否必须覆盖磁盘上的文字文件.
任何帮助深表感谢.
谢谢
每当用户点击我网站上的页面时,我都会运行以下代码来跟踪用户点击,页面浏览量,他们去哪里等等......
public static void AddPath(string pathType, string renderType, int pageid = 0, int testid = 0)
{
UserTracking ut = (UserTracking)HttpContext.Current.Session["Paths"];
if (ut == null)
{
ut = new UserTracking();
ut.IPAddress = HttpContext.Current.Request.UserHostAddress;
ut.VisitDate = DateTime.Now;
ut.Device = (string)HttpContext.Current.Session["Browser"];
if (HttpContext.Current.Request.UrlReferrer != null)
{
ut.Referrer = HttpContext.Current.Request.UrlReferrer.PathAndQuery.ToString();
ut.ReferrerHost = HttpContext.Current.Request.UrlReferrer.Host.ToString();
ut.AbsoluteUri = HttpContext.Current.Request.UrlReferrer.AbsoluteUri.ToString();
}
}
//Do some stuff including adding paths
HttpContext.Current.Session["Paths"] = ut;
}
Run Code Online (Sandbox Code Playgroud)
在会话结束时的Global.asax.cs文件中,我存储了该会话信息.当前会话超时设置为20分钟.
protected void Session_End(object sender, EventArgs e)
{
UserTracking ut = (UserTracking)Session["Paths"];
if (ut != …Run Code Online (Sandbox Code Playgroud)