案例
- search.jsp 输入查询条件,点击 【搜索】 按钮,提交到 doSearch.jsp
- doSearch.jsp 实现查询数据库
- doSearch.jsp 转发 result.jsp,并且 还要实现 数据传递,将数据传递给 result.jsp
- result.jsp 只是显示数据
设计原因
这样设计,3个页面,每个页面负责各自的功能
相当于 大型医院,收费、大夫、护士、药房管理人员,各司其职
但对于 乡村小诊所,就完全没有必要分的这么细致,很有可能只有1-2人,就负责 收费、医生、护士、药房管理人员等所有工作
实现
search.jsp
<form method="post" action="doSearch.jsp">
标题:<input name="title"> <input type="submit" value="搜索">
</form>
doSearch.jsp
<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
request.setCharacterEncoding("UTF-8");
String title=request.getParameter("title");
/*
模拟数据库查询
*/
List<String> titles=new ArrayList<>();
titles.add("java从入门到放弃");
titles.add("java编程思想");
titles.add("java从入门到入坟");
//向request对象中放数据
request.setAttribute("titles",titles);
System.out.println("request:"+request);
//转发
request.getRequestDispatcher("result.jsp").forward(request,response);
%>
result.jsp
<body>
<%
System.out.println("request:"+request);
//从request对象取数据,与上一个页面的request对象共享数据
List<String> titles=(List<String>)request.getAttribute("titles");
for(String title:titles){
out.println(title+"<br>");
}
%>
</body>
