1.jsp中通过<a>标签给servlet传递数据:
jsp:
<a href="MyServlet?name=mi">转到servlet</a>
servlet:
String name = request.getParameter("name");
System.out.println(name);
注意标红的代码.
2.从servlet中给jsp传数据:
2.1使用setAttribute方法,并用request.getRequestDispachar("path").forward(request,response)转发到jsp页面中
servlet:
request.setAttribute("name", "name");
request.getRequestDispatcher("B.jsp").forward(request,response);
jsp:
使用getAttribute()接收<%=request.getAttribute("name")%>
可接收到值name
2.2使用response.sendRedirect("location");重定向到B.jsp页面中(接收不到值)servlet:
jsp:request.setAttribute("name", "name"); response.sendRedirect("B.jsp");
结果为null,证明没有传过来.<%=request.getAttribute("name")%>
最后加一个:使用GetParameter()方法接收,不管是转发还是重定向都接收不到值.
3. A.jsp传到B.jsp:
A.jsp<a href="B.jsp?name=mi">转到B.jsp</a>
B.jsp<%=request.getParameter("name") %>
可以接收到.而使用getAttribute()方法接收不到.
4.从servlet传值到servlet02
4.1 重定向(失败)
servlet
request.setAttribute("name", "mi"); response.sendRedirect("MyServlet02");
servlet02页面显示为null,说明也没有传过来.response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); String name = (String) request.getAttribute("name"); out.print(name);
4.2 转发(成功)servlet
servlet02request.setAttribute("name", "mi"); request.getRequestDispatcher("MyServlet02").forward(request,response);
response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); String name = (String) request.getAttribute("name"); out.print(name);
以上代码.
还有一个问题也需要弄明白,那就是getAttribute和getParameter的区别于用法,上面我也进行了许多尝试,
更多关于两者之间的关系点击这个链接,很详细!点击打开链接