假设,我有一个拥有大量servlet的Web服务器.对于在这些servlet之间传递的信息,我正在设置会话和实例变量.
现在,如果有2个或更多用户向此服务器发送请求,那么会话变量会发生什么?它们对所有用户都是通用的,或者对于每个用户而言都是不同的.如果它们不同,那么服务器如何区分不同的用户?
还有一个类似的问题,如果有n用户访问特定的servlet,那么这个servlet只在第一个用户第一次访问它时实例化,或者是否为所有用户单独实例化?换句话说,实例变量会发生什么?
java multithreading servlets session-variables instance-variables
在大多数网站上,当用户即将提供登录系统的用户名和密码时,会出现一个"保持登录状态"的复选框.如果选中该复选框,它将使您在同一Web浏览器的所有会话中登录.如何在Java EE中实现相同的功能?
我正在使用基于FORM的容器管理身份验证和JSF登录页面.
<security-constraint>
<display-name>Student</display-name>
<web-resource-collection>
<web-resource-name>CentralFeed</web-resource-name>
<description/>
<url-pattern>/CentralFeed.jsf</url-pattern>
</web-resource-collection>
<auth-constraint>
<description/>
<role-name>STUDENT</role-name>
<role-name>ADMINISTRATOR</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>jdbc-realm-scholar</realm-name>
<form-login-config>
<form-login-page>/index.jsf</form-login-page>
<form-error-page>/LoginError.jsf</form-error-page>
</form-login-config>
</login-config>
<security-role>
<description>Admin who has ultimate power over everything</description>
<role-name>ADMINISTRATOR</role-name>
</security-role>
<security-role>
<description>Participants of the social networking Bridgeye.com</description>
<role-name>STUDENT</role-name>
</security-role>
Run Code Online (Sandbox Code Playgroud) 我正在JBoss AS 5中运行一个Web应用程序.我还有一个servlet过滤器,它拦截了对服务器的所有请求.现在,如果会话已过期,我想将用户重定向到登录页面.我需要执行此操作'isSessionExpired()'检查过滤器并需要相应地重定向用户.我该怎么做?我在web.xml中设置会话时间限制,如下所示:
<session-config>
<session-timeout>15</session-timeout>
</session-config>
Run Code Online (Sandbox Code Playgroud) 我有这个大问题.每次我向服务器发出新请求时,我当前的会话都会消失.
我检查了很多地方.我找不到问题所在.我还在tomcat和application中都包含了web.xml中的session-config.我还启用了接受我的浏览器的cookie.在每个浏览器中测试.它不起作用.
我只是使用JSP/Servlet开发一个简单的java ee applcation.我在服务器机器中部署到tomcat之后才遇到问题.
以下是使用过滤器的Java代码片段,如果用户名和密码也正确,则每次都会显示错误页面.请帮帮我,我对这个概念知之甚少.
String sql="select * from reg where username='"+user+"' and pass='"+pwd+"'";
rs=st.executeQuery(sql);
if(rs.next())
{
chain.doFilter(request,response);
}
else
sc.getRequestDispatcher("/error.html").forward(request,response);
Run Code Online (Sandbox Code Playgroud) 我已使用Google提供的示例代码成功实现了与Google的登录。
但是,我不确定应该如何使用此“后端服务器身份验证”。
该文件位于:https : //developers.google.com/identity/sign-in/web/backend-auth
我正在开发一个需要google登录名和google drive的网站,因为程序在运行:
在实现google drive API之前,我认为我需要使用google登录系统,但是我不确定该怎么做。
目前,我的网站为1.用户登录/ 2.用户注销/ 3.然后网络不询问google帐户,而只是在其中登录前一个用户。
“后端服务器身份验证”是否可以回答以下我的问题?
我了解这是与此相同的问题:如何注销使用OAuth2登录Google的应用程序?。我理解了答案的含义,但是我无法找到一种方法来实现“仅从应用程序而不是Google登出”。
总结一下,我的问题是2;
我正在上Java Web开发课程,但我对Django有更多的经验.我知道有些概念是相似的,但它们在不同的层次和不同的名称中组合在一起.
Django概念如何映射到Java,反之亦然,JSP页面,Struts 1.x动作和FormBeans在哪些地方适合Django层?
我很难概念化Tomcat如何在幕后处理cookie和会话管理.
Tomcat何时何地发布cookie来管理HttpSession?根据这个问题/答案,会话是从最初的呼叫创建的getSession().
如果我正在运行Filter并调用getSession(),是否会自动附加必要的cookie(假设我已将web.xml配置为使用cookie)ServletResponse?如果没有,我该怎么办?我没有运行任何jsp.
我需要实现简单的servlet用户身份验证(在Java动态Web项目中),但有些事情让我感到困惑.
首先,servlet由于某种原因创建了cookie,JSESSIONID尽管我从未要求它.而且,我不能改变它的价值,如果我这样做request.addCookie(new Cookie("JSESSIONID", session.getId())),它会产生这样的东西:
Cookie: JSESSIONID=6B5B441038414B4381EDB7470018F90E; JSESSIONID=7890D45DF445635C49BDEB3CADA8AD99; .......
Run Code Online (Sandbox Code Playgroud)
所以,它复制了cookie.
其次,我不确定在哪里比较cookie和会话的id,以及在何处以及如何正确创建会话(即request.getSession(true? / false? / nothing?);)
我已经阅读了一些文档但仍需要帮助.
我有一个servlet HomeServlet,authentication如果用户未经过身份验证,则会将用户重定向到页面.
这是我如何做到的(HomeServlet.java):
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if(request.getSession().getAttribute("user") != null) {
request.getRequestDispatcher("/WEB-INF/index.jsp").forward(request, response);
} else {
response.sendRedirect("authentication");
}
}
Run Code Online (Sandbox Code Playgroud)
而且我也有AuthServletjsp页面提供身份验证表单并验证用户.
AuthServlet.java:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String action = request.getParameter("ACTION");
if ("login".equals(action)) {
String[] result = doSomeValidations();
if (result.size() > …Run Code Online (Sandbox Code Playgroud)