(String)session.getAttribute("username")为空,怎么改
时间: 2024-03-26 21:38:59 浏览: 225
如果`session.getAttribute("username")`为空,可能是因为在登录时没有将用户名存储到session中。你可以在登录时将用户名存储到session中,例如:
```java
@RequestMapping("/login")
public String login(@RequestParam("username") String username, HttpSession session) {
// 验证用户名和密码...
// 如果验证通过,则将用户名存储到session中
session.setAttribute("username", username);
return "redirect:/index";
}
```
如果你已经确定登录时已经将用户名存储到session中,但是在查询日志时获取到的值为空,你可以检查一下是否有多个服务器在使用session,如果是,需要进行session共享配置,确保session可以在多个服务器之间共享。
相关问题
switch (method){ case "findAll": if(session.getAttribute("userName")!=null){ String userName= (String) session.getAttribute("userName"); String userId= userRepository.finduserId(userName); List<Contact> list = contactRepository.findAll(userId); req.setAttribute("list_contact",list); System.out.println(list); req.getRequestDispatcher("/index.jsp").forward(req,resp); // if (session.getAttribute("userName")!=null){ // req.getRequestDispatcher("/index.jsp").forward(req,resp); // } // else if(session.getAttribute("adminuserName")!=null){ // req.getRequestDispatcher("/adminAdress.jsp").forward(req,resp); // } } else if(session.getAttribute("adminuserName")!=null){ String userName= (String) session.getAttribute("userName"); List<Contact> list = contactRepository.findAll(); req.setAttribute("list_contact",list); System.out.println(list); req.getRequestDispatcher("/adminAdress.jsp").forward(req,resp); // if (session.getAttribute("userName")!=null){ // req.getRequestDispatcher("/index.jsp").forward(req,resp); // } // else if(session.getAttribute("adminuserName")!=null){ // req.getRequestDispatcher("/adminAdress.jsp").forward(req,resp); // } } break; case "deleteById": String id = req.getParameter("id"); contactRepository.deleteById(id); resp.sendRedirect("contact"); break;
这段代码使用了switch-case语句来处理不同的method参数值。
在"findAll"的情况下,代码首先检查session中是否存在"userName"属性。如果存在,则获取该属性的值作为userName,并通过userRepository.finduserId方法获取对应的userId。接着,调用contactRepository.findAll(userId)方法来获取该用户的所有联系人信息,并将结果存储在名为"list_contact"的request属性中。然后,通过req.getRequestDispatcher方法将请求转发到"/index.jsp"页面,以显示联系人列表。
如果session中不存在"userName"属性,而存在"adminuserName"属性,则进入else if分支。在该分支中,直接调用contactRepository.findAll方法获取所有联系人信息,并将结果存储在名为"list_contact"的request属性中。然后,通过req.getRequestDispatcher方法将请求转发到"/adminAdress.jsp"页面,以显示管理员的联系人列表。
在"deleteById"的情况下,代码通过req.getParameter方法获取id参数的值,并调用contactRepository.deleteById方法来删除指定id的联系人信息。然后,通过resp.sendRedirect方法将请求重定向到"contact"页面,以继续执行其他操作。
需要注意的是,这段代码只是一个片段,其中的其他代码(如userRepository和contactRepository对象的实现)并没有完整地展示出来。你需要根据具体情况进行适当的修改和完善。
@GetMapping("/order2") public String order2(Model model){ HttpSession session = request.getSession(); model.addAttribute("username",session.getAttribute("username")); model.addAttribute("orders",session.getAttribute("orders")); model.addAttribute("carts",session.getAttribute("carts")); return "/order"; }
这是一个Spring MVC中的控制器方法,使用了GetMapping注解,表示该方法处理GET请求,请求路径为"/order2"。
该方法接受一个Model类型的model参数,用于向前端页面传递数据。在方法中,我们首先获取一个HttpSession对象,该对象用于存储当前用户的会话信息。然后,我们通过model.addAttribute()方法向前端页面传递三个参数:
- username:当前用户的用户名,从session中获取。
- orders:当前用户的所有订单信息,从session中获取。
- carts:当前用户的购物车信息,从session中获取。
最后,我们返回一个字符串"/order",表示该方法处理的请求将会渲染名为"order.html"的前端页面。在实际应用中,我们需要在Spring MVC的配置文件中配置ViewResolver,将请求路径和实际的前端页面进行映射。例如,可以将请求路径"/order2"映射到"WEB-INF/views/order.html"页面,这样在处理该请求时,Spring MVC框架会自动将该页面渲染并返回给前端浏览器。
阅读全文
相关推荐
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %> <% String username = (String)session.getAttribute("username"); String sex = (String)session.getAttribute("sex"); String sport_hobby = (String)session.getAttribute("sport_hobby"); %> <html> <head> <title>用户信息</title> </head> <body> 用户信息 用户名(昵称): <%= username %> 性别: <%= sex %> 体育爱好: <%= sport_hobby %> 修改(<%= username %>)昵称</ a> </body> </html>这段代码输出中文时乱码,帮我修改一下
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)