Java Web学习笔记之---EL和JSTL

时间:2022-09-18 21:53:02

Java Web学习笔记之---EL和JSTL

(一)EL

(1)EL作用

Expression  Language(表达式语言),目的是代替JSP页面中复杂的代码

(2)EL表达式

${变量名}

(3)EL实现

index.jsp

  
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

    <title>Title</title>

</head>

<body>

<form action="ELServlet" method="post">

用户名:<input type="text" name="user">

密码:<input type="text" name="password">

    <input type="submit">

</form>

</body>

</html>

ELServlet.java

package servlet;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

@WebServlet("/ELServlet")

public class ELServlet extends HttpServlet {

    @Override

    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        doPost(req, resp);

    }

    @Override

    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        //获取输入值

         String user=req.getParameter("user");

         String password=req.getParameter("password");

         //存入request

         req.setAttribute("user",user);

         req.setAttribute("password",password);

         //转发至1.jsp

         req.getRequestDispatcher("1.jsp").forward(req,resp);

    }

}

1.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<%@page  isELIgnored="false" %>

<html>

<head>

    <title>Title</title>

</head>

<body>

用户名:${user}

密码:${password}

</body>

</html>
(二)JSTL

(1)JSTL介绍

JSP标准标签库

(2)与EL表达式的关系

JSTL通常与EL表达式一起实现JSP页面编码

(3)JSTL使用准备

在JSP页面添加

   <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
在pom.xml中配置
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>

(4)JSTL常用标签

1.通用标签:set,out,remove

2.条件标签:if,choose

3.迭代标签:forEach

(5)常用标签的使用

JstlServlet.java

 
  package servlet;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

@WebServlet("/JstlServlet")

public class JstlServlet extends HttpServlet {

    @Override

    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        //创建Map集合,并存入数据

        Map<String,Object> m1=new HashMap<String,Object>();

        m1.put("user","AA");

        m1.put("password","123");

        m1.put("age","11");

        Map<String,Object> m2=new HashMap<String,Object>();

        m2.put("user","BB");

        m2.put("password","123");

        m2.put("age","12");

        //将Map集合存入List集合

        List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();

        list.add(m1);

        list.add(m2);

        //将List集合存入request中

        req.setAttribute("list",list);

        //转发

        req.getRequestDispatcher("2.jsp").forward(req,resp);

    }

    @Override

    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        doPost(req, resp);

    }

}

2.jsp

  <%@ page contentType="text/html;charset=UTF-8" language="java" %>

<%@page isELIgnored="false" %>

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<html>

<head>

    <title>Title</title>

</head>

<body>

<!-- 1.set标签:将值保存到指定范围内

     2.将value值存到范围为scope的变量var中

     -->

<c:set var="user" value="AA" scope="request"></c:set>

<c:set var="age" value="12" scope="request"></c:set>

<!-- out标签:将结果输出显示 -->

<c:out value="${user}"></c:out>

<!-- remove标签:删除指定域内数据 -->

<c:remove var="user"></c:remove>

<!-- if标签: test:放判断条件,如果条件为true,则输出标签体中的内容-->

<c:if test="${age==12}">

    12岁

</c:if>

<!-- choose标签不能单独存在,内含when标签和otherwise标签,类似于if...else-->

<c:choose>

    <c:when test="${age==12}">

        是12岁

    </c:when>

    <c:otherwise>

        不是12岁

    </c:otherwise>

</c:choose>

<table>

    <!-- forEach标签:类似于for(数据类型 变量名:集合或数组)

         items中放集合或数组  var中放变量名

         用变量名调用

          -->

<c:forEach items="${list}" var="Map">

    <tr>

        <td>${Map.user}</td>

        <td>${Map.password}</td>

        <td>${Map.age}</td>

    </tr>

</c:forEach>

</table>

</body>

</html>

Java Web学习笔记之---EL和JSTL的更多相关文章

  1. &lbrack;原创&rsqb;java WEB学习笔记95:Hibernate 目录

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  2. &lbrack;原创&rsqb;java WEB学习笔记75:Struts2 学习之路-- 总结 和 目录

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  3. &lbrack;原创&rsqb;java WEB学习笔记66:Struts2 学习之路--Struts的CRUD操作&lpar; 查看 &sol; 删除&sol; 添加&rpar; 使用 paramsPrepareParamsStack 重构代码 ,PrepareInterceptor拦截器,paramsPrepareParamsStack 拦截器栈

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  4. java web 学习笔记 编码问题总结

       java web 学习笔记 编码问题总结 1.非form表单中提交的中文参数---------------------------传递给Servlet服务器时,默认以iso-8859-1解码 ...

  5. Java Web 学习笔记 1

    Java Web 学习笔记 1 一.Web开发基础 1-1 Java Web 应用开发概述 1.1.1 C/S C/S(Client/Server)服务器通常采用高性能的PC机或工作站,并采用大型数据 ...

  6. &lbrack;原创&rsqb;java WEB学习笔记11:HttpServlet(HttpServletRequest HttpServletRsponse) 以及关于 Servlet 小结

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  7. Java Web学习笔记之---JSP

    Java Web学习笔记之---JSP (一)JSP常用语法 (1)HTML注释 <!--所要注释的内容 --> 在客户端显示一个注释. (2)隐藏注释 <%--所要注释的内容--% ...

  8. JAVA Web学习笔记

    JAVA Web学习笔记 1.JSP (java服务器页面) 锁定 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . JSP全名为Java Server Pages,中文名叫java服务器 ...

  9. &lbrack;原创&rsqb;java WEB学习笔记43:jstl 介绍,core库详解:表达式操作,流程控制,迭代操作,url操作

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

随机推荐

  1. word-wrap &comma;word-break 和white-space 的联系

    在工作中我遇到一个问题,其实功能也不复杂,就是上面有个textarea标签 ,里面输入内容,下面有个显示效果 ,有个条件就是 上面输入的什么格式(比如换行等等),下面显示的也是 什么格式.如下图: 这 ...

  2. bootstrap 布局(收藏&sol;摘抄)

    bootstrap 12栅格 布局

  3. GNU&sol;Linux下LVM配置管理以及快照卷、物理卷、卷组、逻辑卷的创建和删除

    LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上.文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性.最大的优点是在不损伤数据的前提下调整存储空间的大小. 本篇主要讲述L ...

  4. eclipse根据&period;wsdl文件自动生成webservice的调用客户端

    1.工具:eclipse3.3或者是带有webservice插件的eclipse 2. 首先用浏览器访问webservice的站点,接着保存打开的页面,后缀为.wsdl. 3.把保存好的文件拷入ecl ...

  5. hive数据导入方法

    可以通过多种方式将数据导入hive表 1.通过外部表导入 用户在hive上建external表,建表的同时指定hdfs路径,在数据拷贝到指定hdfs路径的同时,也同时完成数据插入external表. ...

  6. &lbrack;Sparrow OS 设计文档连载(一)&rsqb; Introduction

  7. python类的继承

    继承一个类 如果已经定义了Person类,需要定义新的Student和Teacher类时,可以直接从Person类继承: class Person(object): def __init__(self ...

  8. Java设计模式——装饰模式

    转载自:http://blog.csdn.net/xu__cg/article/details/53024490 抽象构件 public interface CarInterface { void m ...

  9. Nginx和php是怎么通信的?

    先来看一下搭建好PHP运行环境的Nginx配置文件. 非常重要的就是 fastcgi_pass 指令了,这个指令用于指定 fpm 进程监听的地址,Nginx 会把所有的 php 请求翻译成 fastc ...

  10. hive时间日期函数及典型场景应用

    1.hive取得当前日期时间: 1.1) 取得当前日期: select current_date(); 1.2) 取得当前日期时间: select current_timestamp(); 1.3) ...