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. [原创]java WEB学习笔记95:Hibernate 目录

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

  2. [原创]java WEB学习笔记75:Struts2 学习之路-- 总结 和 目录

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

  3. [原创]java WEB学习笔记66:Struts2 学习之路--Struts的CRUD操作( 查看 / 删除/ 添加) 使用 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. [原创]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. [原创]java WEB学习笔记43:jstl 介绍,core库详解:表达式操作,流程控制,迭代操作,url操作

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

随机推荐

  1. spring的基础配置

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  2. 编译的时候出现"/usr/bin/ld: cannot find -lz

    编译的时候出现"/usr/bin/ld: cannot find -lz"错误,需要安装zlib-dev这个包,在线安装命令为:apt-get install zlib1g-dev ...

  3. Mac015--在Mac下安装使用Vagrant

    网址:http://yansu.org/2014/04/10/install-vagrant-in-mac.html 一.安装Vagrant 下载地址在http://www.vagrantup.com ...

  4. [c#]Extesion method

    做一个类似Vb.net里面with的方法 public static void Use<T>(this T item, Action<T> work) { work(item) ...

  5. linux中cut命令

    cut命令 cut常用参数 cut命令用来显示行中的指定部分,删除文件中指定字段. 说明:该命令有两项功能,其一是用来显示文件的内容,它依次读取由参数file所指明的文件,将它们的内容输出到标准输出上 ...

  6. [Python3 填坑] 007 多才多艺的 len()

    目录 1. print( 坑的信息 ) 2. 开始填坑 (1) 总的来说 (2) 举例说明 (3) 后记 1. print( 坑的信息 ) 挖坑时间:2019/01/10 明细 坑的编码 内容 Py0 ...

  7. Spring-Boot 整合Dubbo 解决@Reference 注解为null情况

    首先检查一下你的spring boot版本是多少? 如果是2.X 不用看了,spring boot 2.x 必定会出现这个问题, 改为 1.5.9 或其他1.x版本,目前生产环境建议使用1.x版本. ...

  8. BZOJ 3252题解(贪心+dfs序+线段树)

    题面 传送门 分析 此题做法很多,树形DP,DFS序+线段树,树链剖分都可以做 这里给出DFS序+线段树的代码 我们用线段树维护到根节点路径上节点权值之和的最大值,以及取到最大值的节点编号x 每次从根 ...

  9. NameVirtualHost的使用

    如果某个ip:port 上只设置了一个虚拟主机,那么NameVirtualHost ip:port 可以不写,因为从这个ip:port的访问不需要做任何选择:如上例中192.168.1.197只对应于 ...

  10. 11、 机器学习系统的设计(Machine Learning System Design)

    11.1 首先要做什么 在接下来的视频中,我将谈到机器学习系统的设计.这些视频将谈及在设计复杂的机器学习系统时,你将遇到的主要问题.同时我们会试着给出一些关于如何巧妙构建一个复杂的机器学习系统的建议. ...