程序员

EL表达式的熟练使用

2019-11-19  本文已影响0人  ERROR505

一、实验内容

1、EL表达式的熟练使用

创建一个Java Web项目,使用EL表达式获取访问此项目的绝对地址。
相对地址与绝对地址的区别:
相对地址是指相对于当前网页的地址。
绝对地址可以细分为两种:一种是网络地址,一种是本地地址。网络地址以http://、ftp://或https://等网络协议名开头,本地地址是在本地计算机外存储器(硬盘、软件、U盘等)上的地址,绝对路径是能够直接访问的,一般是固定不变的。
EL表达式提供的隐含对象:
pageContext:对应于JSP页面中的pageContext对象,用于获取ServletContext、request、response和 session等其他JSP内置对象。

代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>地址获取</title>
</head>
<body>

<p>获取此项目的绝对地址:${pageContext.request.requestURL}</p>
 
</body>
</html>
image.png

2、EL表达式的熟练使用

(1)在一个Servlet中创建一个对象集合,例如:List<Student>,将此对象集合类存入request对象属性中,请求转发到listIterator.jsp;

(2)在listIterator.jsp中遍历并使用EL表达式输出Student对象的属性值。
思路:
可以建立一个对象的Javabean,再建立一个对象集合Servlet,将对象实例化并存入request范围内,最后转发到页面listIterator.jsp用EL表达式输出。
这里为了简便,用数组模拟了对象集合,将数组放入list中,属性只有名字,用数组的值模拟对象属性,最后转发页面输出,只有一个Servlet页面。
代码如下:
Student.java

package com.qst.chapter02.servlet;

import java.io.IOException;
import java.util.ArrayList;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/Student")

public class Student extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public Student() {
        super();
        // TODO Auto-generated constructor stub
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        int name =0;
        ArrayList Listlist = new ArrayList<>();
        //对象集合需要再写一个对象Javabean,所以这里用数组模拟对象集合并赋值
            for(int i=0;i<5;i++){
            name=name+1;
            Listlist.add(name);
            }
          //将学生列表设置到requet范围中  
            request.setAttribute("list", Listlist);
            //转发页面
            request.getRequestDispatcher("/listIterator.jsp").forward(request,response);
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }
    
}

listIterator.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<p>获取得到的学生序号:</p>
<p>
   Student序号:
   <!-- EL输出,如果是真实的对象放在list中只需要输出list[i].属性就行 -->
   ${requestScope.list[0]}
   ${requestScope.list[1]}
   ${requestScope.list[2]}
   ${requestScope.list[3]}
   ${requestScope.list[4]}
</p>
</body>
</html>

运行效果如图

image.png

总结

此实验只是简单的EL表达式的基本操作,相比于JSP的脚本语言,EL操作更简洁,在输出页面中本实验用了多次EL输出,其实用JSTL标签库将对象循环输出会更好,JSTL标签库的操作可自行百度。

上一篇 下一篇

猜你喜欢

热点阅读