2、通过servlet转发到jsp
- servlet作为web应用中的控制器组件来使用,而把JSP技术作为数据显示模板来使用servlet作为web应用中的控制器组件来使用,而把JSP技术作为数据显示模板来使用
- 让jsp既用java代码产生动态数据,又做美化会导致页面难以维护。
- 让servlet既产生数据,又在里面嵌套html代码美化数据,同样也会导致程序可读性差,难以维护。
- 因此最好的办法就是根据这两门技术的特点,让它们各自负责各的,servlet只负责响应请求产生数据,并把数据通过转发技术带给jsp,数据的显示jsp来做
java代码
TableBean
import java.util.ArrayList;import java.util.List;public class TableBean { ???public List<String> getList() { ???????List<String> stringList = new ArrayList<String>(); ???????stringList.add("杰克"); ???????stringList.add("马利"); ???????stringList.add("西西"); ???????stringList.add("瘦瘦"); ???????return stringList; ???}}
import java.io.IOException;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import cn.itcast.web.domain.TableBean;public class TableServlet extends HttpServlet { ???public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException { ???????//调用模型对象 ???????TableBean tableBean = new TableBean(); ???????List<String> stringList = tableBean.getList(); ???????//绑定到域对象 ???????request.setAttribute("stringList",stringList); ???????//转发到jsp页面 ???????request.getRequestDispatcher("/WEB-INF/table.jsp").forward(request,response); ???}}
jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> ?<body> ???<% ?????????//取得域对象中的内容 ???????List<String> stringList = (List<String>)request.getAttribute("stringList"); ???%> ????<table border="1" align="center"> ???????<caption>学员信息</caption> ???????<tr> ???????????<th>姓名</th> ???????????<td>操作</td> ???????</tr> ???????<% ???????????for(String username : stringList){ ???????%> ?????????????????????<tr> ???????????????<th><%=username%></th> ???????????????<td><a href="#">查看</a></td> ???????????</tr> ???????<% ???????????} ??????????????%> ????</table> ?</body></html>
使用jsp显示表格信息
原文地址:http://blog.51cto.com/357712148/2105063