1 概述

EL(全称Expression Language )表达式语言,用于简化 JSP 页面内的 Java 代码。
EL 表达式的主要作用是 ==获取数据==。其实就是从域对象中获取数据,然后将数据展示在页面上。
而 EL 表达式的语法也比较简单,==${expression}== 。例如:${brands} 就是获取域中存储的 key 为 brands 的数据。

2 代码演示

  1. 定义servlet,在 servlet 中封装一些数据并存储到 request 域对象中并转发到 el-demo.jsp 页面。

    1. @WebServlet("/demo1")
    2. public class ServletDemo1 extends HttpServlet {
    3. @Override
    4. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    5. //1. 准备数据
    6. List<Brand> brands = new ArrayList<Brand>();
    7. brands.add(new Brand(1,"三只松鼠","三只松鼠",100,"三只松鼠,好吃不上火",1));
    8. brands.add(new Brand(2,"优衣库","优衣库",200,"优衣库,服适人生",0));
    9. brands.add(new Brand(3,"小米","小米科技有限公司",1000,"为发烧而生",1));
    10. //2. 存储到request域中
    11. request.setAttribute("brands",brands);
    12. //3. 转发到 el-demo.jsp
    13. request.getRequestDispatcher("/el-demo.jsp").forward(request,response);
    14. }
    15. @Override
    16. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    17. this.doGet(request, response);
    18. }
    19. }

    ==注意:== 此处需要用转发,因为转发才可以使用 request 对象作为域对象进行数据共享

  2. 在 el-demo.jsp 中通过 EL表达式 获取数据image.png

  3. 在浏览器的地址栏输入 http://localhost:8080/jsp-demo/demo1 ,页面效果如下:image-20210818152536484.png