1、jsp保护起来
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>