ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javaee之jsp、EL表达式、JSTL标签库

2022-03-19 21:32:45  阅读:197  来源: 互联网

标签:EL list javaee JSTL jsp user 一下 new


jsp:一个可以存放java与html混写的文件

从某种层面来说,它实际就是一个servlet

因此servlet里面能定义获取的,他也可以用,只不过方式不一样。

java在我们访问一个jsp的时候,会自动把jsp文件编译一个带有service方法的java文件。这个文件存放在IDE给我们配置项目的缓存目录里面,在work目录下面。work就是在我们的工作的过程中产生的文件

顺便看一个文件看看

很明显可以看到,内部也是给我们转化了servelt文件,然后给我们编译了一个service方法,然后把我们需要的东西放进去了。

下面说一下JSP定义代码的方式:

话不多说,直接上代码:

demo1.jsp

<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2022/3/18
  Time: 12:37
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <%
        int i = 3;//这里就是定义到service里面的变量
    %>
    <%!
        int i =10;//这个就是转换后java文件的成员位置上面
    %>
    <%=
        i//这里就会把上面定义的i变量直接输出到浏览器,这里会打印3,就近原则,其实这里
    //这是在service方法里面执行
    %>
</body>
</html>

上面运行一下

这里会打印3,直接看一下转换后的源文件

上面可以看到i=10这个变量,被定义成了一个类的成员属性

上面i=3就把它定义到service方法里面,并且在service方法里面打印了数据。

我们还可以调用内部的内置对象

下面来说九个jsp内置对象

下面简单来说一下mvc开发模式:一种开发软件的方法

下面来说一下EL表达式,这玩意就是用在jsp页面,用来简化java代码页面编写,他不用放到<% %>这个里面

下面简单说一下EL表达式中的隐式对象:

EL有十几个隐式对象,就像上面四种,我们这里重点说一下pageContext隐式域,他可以获取JSP其他八个内置对象

${pageContext.request.contextPath}:动态获取虚拟目录

这里面request对象,里面有一个getContextPath()方法,所以可以通过.contextPath来获取虚拟目录

那么我们换句话说,我们获取虚拟目录可以这样${requestScope.contextPath},这样是不可以的啊

说一下这两者的区别,先看一下打印信息

一个打印的是这个域对象的地址,一个只是获取到这个域设置的值,这个只是给我们返回一个相应对象数据的map集合,里面存放了我们的数据而已。

下面来说一下JSTL标签

再来具体说一下foreach标签:

话不多说,上个代码

<%@ page import="domain.User" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page import="java.util.Date" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    List<User> list = new ArrayList<User>();
    list.add(new User("tom",25,new Date()));
    list.add(new User("tonny",28,new Date()));
    list.add(new User("jack",35,new Date()));

    //在request域中
    request.setAttribute("list",list);
%>
<table border = "1" width = "500" align = "center">
    <tr>
        <th>编号</th>
        <th>姓名</th>
        <th>性别</th>
        <th>生日</th>
    </tr>
    <c:forEach items="${list}" var="user" varStatus="s">
        <c:if test="${s.count % 2 == 0}">
            <tr bgcolor="red">
                <td>${s.count}</td>
                <td>${user.age}</td>
                <td>${user.name}</td>
                <td>${user.birday}</td>
            </tr>
        </c:if>

        <c:if test = "${s.count % 2 != 0}">
            <tr bgcolor="green">
                <td>${s.count}</td>
                <td>${user.age}</td>
                <td>${user.name}</td>
                <td>${user.birday}</td>
            </tr>
        </c:if>
    </c:forEach>
</table>
</body>
</html>

标签:EL,list,javaee,JSTL,jsp,user,一下,new
来源: https://blog.csdn.net/m0_67402823/article/details/123603158

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有