我想根据某些事件使用户的会话无效.我存储了他们的sessionID,如何从这个ID获取他们的HttpSession?不推荐使用HttpSessionContext类,没有替换.
我是GWT的新手...我想在我的Web应用程序中实现会话基本上我希望会话从单击按钮(处理事件)开始,然后单击另一个按钮结束(其他处理事件) ).这是可能的?
怎么一步一步做?
这段代码好吗?:
主要(客户端):
Button b1 = new Button("b1");
b1.addClickHandler(new ClickHandler) {
public voin onClick(){
...
rpc.setSession(callback); //rpc call the service...
}
}
Button b2 = new Button("b2");
b1.addClickHandler(new ClickHandler) {
public voin onClick(){
...
rpc.exitSession(callback);
}
}
Run Code Online (Sandbox Code Playgroud)
// ------------------------------------------------ ------------------------------------
import com.google.gwt.user.client.rpc.RemoteService;
public interface MySession extends RemoteService {
public void setSession();
public void exitSession();
}
Run Code Online (Sandbox Code Playgroud)
// ------------------------------------------------ ------------------------------------
import com.google.gwt.user.client.rpc.AsyncCallback;
public interface MySessionAsync {
void setSession(AsyncCallback<Void> callback);
void exitSession(AsyncCallback<Void> callback);
}
Run Code Online (Sandbox Code Playgroud)
// ------------------------------------------------ ------------------------------------
import de.vogella.gwt.helloworld.client.MySession;
public class …Run Code Online (Sandbox Code Playgroud) 我使用Spring 3和Hibernate 3.6开发Web应用程序 - 我是新的,我想知道我是否真的理解会话是如何工作的.
是否正确,由会话ID标识的服务器和客户端之间的会话与休眠会话不同?
服务器和客户端之间的会话始终是HttpSession.(?)什么时候创建?当用户登录时,或者当匿名用户请求页面(不受保护)时?
httpsession和hibernate-sessions之间有什么联系吗?是否由sessionfactory创建的Hibernate会话与httpsession没有连接?我不确定hibernate使用这样的命令引用哪个会话:
this.sessionFactory.getCurrentSession().save(object);
Run Code Online (Sandbox Code Playgroud)
这个getCurrentSession():这个休眠会话活动了多长时间?用户登录的整个时间?或仅用于一个事务(可以包括多个数据操作?)
我很抱歉这个问题可能很容易回答,但是大多数文件都是英文的,如果不是,那么母语理解有时很难(主要是因为经常使用"会话"这个词)
谢谢你帮我理解这个话题!:-)
这是我在登录页面中编写的代码
HttpSession session = request.getSession(true);
session.setAttribute("name", user1);
String nme=(String) session.getAttribute("name");
Run Code Online (Sandbox Code Playgroud)
而且,这是logout.jsp的代码
<% request.getSession().invalidate();
Run Code Online (Sandbox Code Playgroud)
要么
if(session!=null){
session=null;
}
Run Code Online (Sandbox Code Playgroud)
要么
request.getSession().setAttribute("name", null); //it just assigns null to attribute
response.sendRedirect("login.jsp");
%>
Run Code Online (Sandbox Code Playgroud)
会话正在创建,但在注销按钮工作后....我希望后退按钮不起作用.
我有一个简单而简短的问题,但在任何地方都找不到答案。我创建了一个 HttpSession 并想从中获取一个属性,例如一个 User 对象。
HttpSession session = request.getSession(true);
Object userObject = session.getAttribute("name");
if ((userObject != null) && (userObject instanceof User)) {
User currentUser = (User) userObject;
...
}
Run Code Online (Sandbox Code Playgroud)
问题如下: .getAttribute 函数获取一个字符串名称作为参数 - 名称是什么?我从哪里知道名字的?它是在某处预定义的吗?- 那么在哪里定义另一个?
谢谢!
我想使用用户发送的名称设置会话属性。用户将首先登录。当他登录时,我希望他的用户名将设置为会话属性。
我该怎么办?
这是我的控制器:
@GetMapping("/login")
public String login() {
return "Login";
}
@PostMapping("/loginCheck")
public String checkLogin(@ModelAttribute("users") Users user) {
if (userService.checkUser(user)) {
return "redirect:/"+user.getUsername()+"/";
} else {
return "Login";
}
}
@PostMapping("/signup")
public ModelAndView createuser(@ModelAttribute("users") Users user) {
if (userService.checkUser(user)) {
return new ModelAndView("Login");
} else {
userService.adduser(user);
return new ModelAndView("Login");
}
}
Run Code Online (Sandbox Code Playgroud)
现在我如何将用户名设置为我进入的会话user.getUsername()?
HttpSession session=request.getSession(true);我在www.someurl.com的控制器中注意到,会话ID在步骤2和步骤4中是不同的.看起来Spring Security创建了一个新会话,该会话现在附加到公共页面请求.为什么会发生这种情况,我是否可以强制Spring Security使用现有会话?
我正在学习春天.执行登录/注销功能.这就是我的控制器的样子:
@RequestMapping(value="/successfulLoginAuth", method=RequestMethod.GET)
public ModelAndView postHttpLogin(HttpSession session, Authentication authInfo)
{
ModelAndView mav = new ModelAndView();
mav.setViewName("redirect:/index.html");
session.setAttribute("authInfo", authInfo);
return mav;
}
Run Code Online (Sandbox Code Playgroud)
登录是通过Spring Security使用我实现的dao服务执行的.这很好.
这是index.jsp的内容:
<%
HttpSession session1 = request.getSession(false);
Authentication authInfo;
if( (session1 != null) &&
( (authInfo = (Authentication)session1.getAttribute("authInfo")) != null)
)
{
out.print(" yo " + authInfo.getName() + " " + authInfo.getAuthorities().iterator().next().getAuthority());
}
else
{
%>
<a href="${pageContext.request.contextPath}/registration">New? Sign Up!</a><br/>
<a href="${pageContext.request.contextPath}/login">Existing? Sign In!</a><br/>
<%} %>
Run Code Online (Sandbox Code Playgroud)
当我登录并重新启动服务器时,我仍然登录.在服务器重启后,会话信息是否应该丢失?如果我重新启动浏览器,它将按预期工作(即会话信息丢失).
这是我的Spring Security配置:
<http auto-config="true" use-expressions="true">
<intercept-url pattern="/" access="permitAll" />
<intercept-url pattern="/logout" …Run Code Online (Sandbox Code Playgroud) 获取会话HttpServletRequest.getSession()和HttpSession注入控制器方法之间有什么区别吗?
我正在尝试使用此签名测试方法:
@Autowired
HttpSession http_Session;
@RequestMapping(method=RequestMethod.GET, value="/search/findByName")
public @ResponseBody List<Map> search(@RequestParam(value="name", required=true) String name){
Integer user_id = http_Session.getAttribute("userinfo");
}
Run Code Online (Sandbox Code Playgroud)
userinfo是一个类,其中包含有关用户的信息,并在用户登录时设置在会话范围内.但是当我尝试测试时:
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(locations = {
"classpath:/META-INF/applicationContext.xml"})
public class userControllerTest {
private MockMvc mockMvc;
@Autowired
private WebApplicationContext webApplicationContext;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.webApplicationContext).build();
}
@Test
public void userTest() throws Exception {
mockMvc.perform(MockMvcRequestBuilders.get("/search/findByName").param("name", "bob"))
.andDo(print())
.andExpect(MockMvcResultMatchers.status().isOk());
}
Run Code Online (Sandbox Code Playgroud)
问题是userinfo类属性是在另一个方法中设置的,所以当我尝试在这个方法中访问它时,我得到了一个NullPointerException,并且通过自动装配httpSession,我为每个必须测试的方法获得了一个新的Session.
我应该如何处理session属性,我的方法不接受会话参数,并且对于每个测试,它都会创建一个带有新会话的WebApplicationContext.
httpsession ×10
java ×8
session ×3
spring ×3
spring-mvc ×3
servlets ×2
attributes ×1
controller ×1
getattribute ×1
gwt ×1
gwt-rpc ×1
hibernate ×1
jakarta-ee ×1
jsp ×1
junit4 ×1
security ×1
spring-boot ×1
widget ×1