xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<servlet-name>DataServlet</servlet-name>
<servlet-class>edu.xalead.DataServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>ViewServlet</servlet-name>
<servlet-class>edu.xalead.ViewServlet</servlet-class>
</servlet>
<servlet>
<servlet-mapping>
<servlet-name>DataServlet</servlet-name>
<url-pattern>/datas</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ViewServlet</servlet-name>
<url-pattern>/vs</url-pattern>
</servlet-mapping>
</web-app>
DataServlet
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class DataServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
List<Student> stus = new ArrayList<>();
stus.add(new Student(222,"zhangsan","M"));
stus.add(new Student(223,"lisi","F"));
stus.add(new Student(224,"wangmazi","M"));
stus.add(new Student(225,"zhouliu","F"));
//在服务器端的请求派发时,如果需转交数据,则可通过request携带数据
request.setAttribute("stus",stus);//把stus集合放入request属性集合中
request.getRequestDispatcher("/vs").forward(request,response);
//貌似此方法与上面一样能转发数据,但是其实拿不到表格。
// response.sendRedirect("/vs");
}
}
ViewServlet
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;
public class ViewServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
/**
* 取数据
*/
//?数据在哪里
//数据在DataServlet里,ViewServlet怎么取得?
//根据属性名从request中取出数据,
//因为拿的是同一个属性,所以名字一样。
//又因为getAttribute取出来的是对象类型,
//还得再强制转换回来。
List<Student> stus = (List<Student>) request.getAttribute("stus");
/**
* 展示成表格
*/
PrintWriter pw = response.getWriter();
/*
*写表格
*/
//格式化为表格输出到客户端
pw.println("<table border='1'>");
for (Student s : stus) {
pw.println("<tr>");
pw.println("<td>");
pw.println("<td>");
pw.println(s.getId());
pw.println("</td>");
pw.println("<td>");
pw.println(s.getName());
pw.println("</td>");
pw.println("<td>");
pw.println(s.getSex());
pw.println("</td>");
pw.println("</tr>");
}
pw.println("</table>");
}
}