servlet无法向jsp传递参数 jsp无法从servlet获取参数
本来是做一个搜索功能,将搜索的条件提交到servlet,然后通过redirect转到展示页面(show.jsp),但是在show.jsp中获取的参数总是为空。我现在把整个...
本来是做一个搜索功能,将搜索的条件提交到servlet,然后通过redirect转到展示页面(show.jsp),但是在show.jsp中获取的参数总是为空。我现在把整个过程简化一下,这段代码就是我想实现的功能,请各位看看是怎么一回事
1. index.jsp
<h3>求平方:</h3><form action = "CheckServlet" method = "post">
<input type = "text" name = "name1"/>
<input type = "submit" value = "计算"/>
</form>
2. CheckServlet
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
String str = request.getParameter("name1");
try{int num=Integer.parseInt(str);int num2=num*num;String number=""+num2;
HttpSession session = request.getSession(true);
session.setAttribute("num", number);
response.sendRedirect("succ.jsp");
}catch(Exception e){response.sendRedirect("error.jsp");}
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
3. succ.jsp
<h3>输入数字的平方为</h3>
<%String number = (String)request.getAttribute("num");
out.print(number);
%>
提交数据后转到succ.jsp然后就输出null,实在没办法,不知道是不是myeclipse的问题,还请各位帮帮忙!!!!谢谢!!!!! 展开
1. index.jsp
<h3>求平方:</h3><form action = "CheckServlet" method = "post">
<input type = "text" name = "name1"/>
<input type = "submit" value = "计算"/>
</form>
2. CheckServlet
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
String str = request.getParameter("name1");
try{int num=Integer.parseInt(str);int num2=num*num;String number=""+num2;
HttpSession session = request.getSession(true);
session.setAttribute("num", number);
response.sendRedirect("succ.jsp");
}catch(Exception e){response.sendRedirect("error.jsp");}
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
3. succ.jsp
<h3>输入数字的平方为</h3>
<%String number = (String)request.getAttribute("num");
out.print(number);
%>
提交数据后转到succ.jsp然后就输出null,实在没办法,不知道是不是myeclipse的问题,还请各位帮帮忙!!!!谢谢!!!!! 展开
5个回答
展开全部
你应该从session里取值额。希望对你有所帮助。‘
<h3>输入数字的平方为</h3>
<%String number = (String)request.getAttribute("num");
out.print(number);
%>
改为
String number = (String)session.getAttribute("num");
<h3>输入数字的平方为</h3>
<%String number = (String)request.getAttribute("num");
out.print(number);
%>
改为
String number = (String)session.getAttribute("num");
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
CheckServlet内没必要用session传值,直接将HttpSession session = request.getSession(true);
session.setAttribute("num", number);这两句改成
request.setAttribute("num", number);或者楼主坚持要用session传值的话可以用楼上的方法,但不推荐这样做~
session.setAttribute("num", number);这两句改成
request.setAttribute("num", number);或者楼主坚持要用session传值的话可以用楼上的方法,但不推荐这样做~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
页面不应该是request.getAttribute("num"); 你在servlet设置的session的传值,所以这块应该是session.getAttribute("num");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不要用redirect,用forward试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不懂。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询