首页 新闻 搜索 专区 学院

关于JSP中使用getAttribute的到servlet传来的值为空的问题。求救啊

0
悬赏园豆:30 [已解决问题] 解决于 2018-05-24 22:28
@WebServlet( urlPatterns ={"/player"},  name = "testServlet")
public class testServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                String name = "wb";
                request.setAttribute("wb",name);
                request.getRequestDispatcher("/welcome.jsp").forward(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                doPost(request,response);
    }
}
<html>
<head>
    <title>Title</title>
</head>
<body>

<%
    String name = (String)request.getAttribute("wb");
    System.out.println(name);
%>
</body>
</html>

最后得到的值为空,这是什么情况各位大神?

Wb同学在此的主页 Wb同学在此 | 初学一级 | 园豆:4
提问于:2018-05-18 12:51
< >
分享
最佳答案
1

你的这个写法没有问题,可是你运行的时候不能直接运行welcome.jsp页面。因为你根本就没有写到servlet的跳转,你随便加个页面在上面写<jsp:forward page="/player"/>就可以了,都没跳转等于servlet代码没运行,当然输出也是空的了。不想加页面的话直接跑servlet也可以的。

收获园豆:15
饥饿前行者 | 菜鸟二级 |园豆:272 | 2018-05-18 15:34

没有采纳吗?

 

饥饿前行者 | 园豆:272 (菜鸟二级) | 2018-05-19 14:10

@饥饿前行者: 抱歉,现在才回复。之后反应回来了,谢谢,谢谢!

Wb同学在此 | 园豆:4 (初学一级) | 2018-05-24 22:26
其他回答(3)
0

打断点调试;
你要想在jsp页面输出变量
用<%=request.getAttbute("wb")%>
或者
el表达式${wb}在页面输出

、熙和 | 园豆:1501 (小虾三级) | 2018-05-18 14:06

谢谢!我知道错误在哪了! 谢谢!

支持(0) 反对(0) Wb同学在此 | 园豆:4 (初学一级) | 2018-05-24 22:27
1

题主没有访问到后台,建议先访问后台。你直接访问页面的话后台根本没走当然返回是空了。

收获园豆:5
imyourmark | 园豆:274 (菜鸟二级) | 2018-05-21 15:19
1

你这个流程如果URL首先访问###/player ,然后容器进入你的jsp页面返回到浏览器进行渲染,这个Attribute是可以取到的

forward这个方法是同一个请求,因此肯定可以取到【此时你浏览器看到的是player这个地址,而不是welcome.jsp这个地址】

 

如果你在浏览其中直接访问welcome.jsp,那是肯定没有值的

收获园豆:5
2012 | 园豆:20677 (高人七级) | 2018-05-24 14:04

发现了,发现了。谢谢!

支持(0) 反对(0) Wb同学在此 | 园豆:4 (初学一级) | 2018-05-24 22:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册