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. delphi编写提取exe文件的ICO图标

    http://www.duote.com/tech/4/11797.html delphi编写提取exe文件的ICO图标 7.0分 出处:天下网吧 时间:2011-08-05 人气:2390 核心提示 ...

  2. failed to create process ,pip报错问题

  3. JVM可视化监控工具jconsole以及jvisualvm的配置

    使用jdk自带的jconsole.jvisualvm插件,监控远程linux服务器中tomcat的jvm情况 (jconsole.jvisualvm插件可查看堆内存变化情况,线程状态,CPU使用情况, ...

  4. Lucene 4.6.1 java.lang.IllegalStateException: TokenStream contract violation

    这是旧代码在新版本Lucene中出现的异常,异常如下: Exception in thread "main" java.lang.IllegalStateException: To ...

  5. WOJ#3882 旅行问题(POI2004)

    描述 John打算驾驶一辆汽车周游一个环形公路.公路上总共有n车站,每站都有若干升汽油(有的站可能油量为零),每升油可以让汽车行驶一千米.John必须从某个车站出发,一直按顺时针(或逆时针)方向走遍所 ...

  6. Version Controlling with Git in Visual Studio Code and Azure DevOps

    Overview Azure DevOps supports two types of version control, Git and Team Foundation Version Control ...

  7. OGG replicat复制进程的拆分

    参考资料: 1.https://blog.csdn.net/datingting1/article/details/79583690

  8. centos 搭建svn服务器

    1 安装svnserve yum install subversion -y 2 创建仓库 mkdir /svn/rep1 -p mkdir /svn/rep2 -p svnadmin create ...

  9. 创建entityManager

    1 需要persistence.xml 完全通过属性配置没成功 <persistence xmlns="http://java.sun.com/xml/ns/persistence&q ...

  10. springboot集成hibernate

    package com.jxd.Boot.hibernate.dao.impl; import java.util.List; import javax.persistence.EntityManag ...