为什么request.getParameter("userid")可以获得值getAttribute不能
时间: 2024-06-01 12:08:19 浏览: 48
`request.getParameter("userid")` 是用于获取 HTTP 请求中的参数值的方法,而 `getAttribute()` 是用于获取 Servlet 请求范围内的属性值的方法。如果你想要从 HTTP 请求中获取参数值,应该使用 `request.getParameter("userid")` 方法;如果你想要从 Servlet 请求范围内获取属性值,应该使用 `request.getAttribute("userid")` 方法。请确保在使用这些方法之前,你已经正确地设置了参数值或属性值。如果你仍然无法获取值,请检查你的代码是否正确,并确保你的应用程序已经正确地处理了请求。
相关问题
// 添加产品到购物车 @RequestMapping("addcart.action") public String addcart() { this.front(); if (this.getSession().getAttribute("userid") == null) { return "redirect:/index/preLogin.action"; } String userid = (String) this.getSession().getAttribute("userid"); Cart cart = new Cart(); cart.setAddtime(VeDate.getStringDateShort()); cart.setGoodsid(getRequest().getParameter("goodsid")); cart.setNum(getRequest().getParameter("num")); cart.setPrice(getRequest().getParameter("price")); cart.setUsersid(userid); this.cartService.insertCart(cart); return "redirect:/index/cart.action"; }解析该段代码
这段代码是一个Java Spring MVC框架的控制器方法,用于将商品添加到购物车中。具体解析如下:
- 首先调用了this.front()方法,该方法可能是控制器的一个基础方法,用于初始化一些公共数据或检查用户登录状态等。
- 使用getSession().getAttribute("userid")获取用户ID,如果用户未登录,则重定向到登录页面。
- 创建一个Cart对象,将商品ID、数量、价格和用户ID设置进去。
- 调用cartService的insertCart()方法将cart对象插入到数据库中。
- 最后重定向到购物车页面。
需要注意的是,该段代码中的参数获取使用了HttpServletRequest的getRequest()方法,这个方法可能是在前面的基础方法中进行了设置。同时,该段代码中的cartService是一个服务类,用于处理购物车相关的业务逻辑。
jsp中(String)request.getAttribute("userid")获取为空
如果 `(String)request.getAttribute("userid")` 获取为空,有以下几种可能的原因:
1. 该属性在请求中并不存在。可能是在前一个页面中没有设置,或者在请求中被重置了。
2. 该属性在请求中存在,但是它的值为空。可以通过在设置属性时检查值是否为空来避免此情况。
3. 该属性在请求中存在,但是在获取属性值时使用了错误的属性名。请确保使用正确的属性名。
你可以在设置属性时使用 `request.setAttribute("userid", "xxxxx")` 来设置属性值。如果你已经确定该属性存在于请求中,可以尝试使用 `request.getParameter("userid")` 来获取属性值。此外,还可以在 JSP 页面中使用 EL 表达式 `${userid}` 来获取属性值。
阅读全文