1、jsp向servlet传递值的方式:
request对象,session对象,url,form表单
- <body>
- <%
- session.setAttribute("testSession","Hello session");
- request.setAttribute("testRequest","Hello request");
- %>
- <a href="http://localhost:8080/test/jsp2servlet?hrefAction=toServlet">单击此处</a>
- <form action="jsp2servlet?action=toServlet" method="post" name="form1">
- <input type="text" name="username"/>
- <input type="submit" value="submit"/>
- . </form>
- . </body>
Jsp2servlet.java
- String strSession = (String)request.getSession().getAttribute("testSession");
- String strRequest = (String)request.getAttribute("testRequest");
- String strHref = request.getParameter("hrefAction");
- String strForm = request.getParameter("action");
- String username = request.getParameter("username");
2、Servlet向jsp传值:
Request对象,session对象,URL
- String url = "result.jsp?first=传递第一个参数&second=传递第二个参数";
- String strRequest = "request传值";
- String strSession = "session传值";
- request.setAttribute("strRequest", strRequest);
- request.getSession().setAttribute("strSession", strSession);
- /**
- * 客户端跳转:效率低
- * session范围属性,url中的参数会传递下去,request范围属性不传递
- */
- . //response.sendRedirect(url);
- . /**
- * 服务器端跳转:常用,效率高
- * request范围属性,session范围属性,url中的参数会传递
- */
- . request.getRequestDispatcher(url).forward(request, response); //url必须指定需要提交到哪个页面
result.jsp
- <body>
- <%
- String strURL = request.getParameter("first"); //得到的是(传递的第一个参数)
- String strRequest = (String)request.getAttribute("strRequest");
- String strSession = (String)request.getSession().getAttribute("strSession");
- %>
3、从一个servlet到另一个servlet时的参数传递
(1)通过超链接和表单传递数据
- /**
- * 超链接
- */
- out.println("<a href='ServletB?name="+name+"'>this is a test</a>");
- /**
- * 表单
- */
- out.println("<form action='ServletB' method='post'>");
- out.println("用户名:");
- out.println("<input type='text' name='username'>");
- . out.println("<input type='submit' vlue='提交'>");
- out.println("</form>");
- out.println("</body>");
- out.println("</html>");
接收的servlet
- String name = request.getParameter("name");
- String username = request.getParameter("username");
(2)使用setAttribute()和getAttribute()方法传递参数
- String data = "This is a test, we need more test for this";
- request.setAttribute("strAtt", data);
- request.getRequestDispatcher("/ServletB").forward(request, response);
ServletB.java
String strAtt = (String)request.getAttribute("strAtt");
4、从一个jsp页面跳转到另一个jsp页面时的参数传递(都需要使用from表单指定传递到哪个页面)
(1)使用request对象获取客户端提交的信息
(2)使用session对象获取从客户端提交的信息
(3)利用隐藏域传递数据
- <!-- 隐藏字段,系统时间,并转换为毫秒数 -->
- <input type="hidden" name="time" value="<%=new java.util.Date()%>">