JSP相关学习
动态页面技术(JSP/EL/JSTL)
<!-- jsp的三种脚本方式 -->
<%
int i = 5;
//这是单行注释
/*这是多行注释*/
%>
<%=i%>
<%!String str = "Hello JSP!";%>
<%=str%>
<!-- jsp的三种注释 -->
<%-- 这是JSP注释 --%>
JSP脚本和注释
JSP本质
三大指令
- page指令:重要的import指令
- include指令:提取公共头和尾
- taglib指令:引入第三方标签库的
JSP九大内置/隐式对象--笔试
页面输出内容的四种方式
<!-- 方式一:直接输出 -->
aaaaaaaaaaaaaa
<!-- 方式二:jsp脚本 -->
<%
out.write("bbbbbbbbbbbb");
response.getWriter().write("cccccccccc");
%>
<%="dddddddddddd" %>
out对象
- out对象的类型:JspWriter
- out对象的作用就是向页面输出内容
- out缓冲区默认8kb,可以设置为0,代表关闭out缓冲区,内容直接写到response缓冲区
pageContext对象(域对象)
pageContext可以向其他的域对象中存取数据
<%
request.setAttribute("name", "wangwu");
pageContext.setAttribute("name", "Jerry");
// 使用pageContext对象向其他域中存取数据
pageContext.setAttribute("name", "lisi", PageContext.REQUEST_SCOPE);
pageContext.setAttribute("name", "zhangsan", PageContext.SESSION_SCOPE);
pageContext.setAttribute("name", "Tom", PageContext.APPLICATION_SCOPE);
%>
<!-- findAttribute方法会从小到大搜索范围中的name -->
<!-- 域的作用范围大小比较,其中pageContext域习惯叫做page域,application域就是servletContext域 -->
<!-- pageContext域 < request域 < session域 < application域 -->
<%=pageContext.getAttribute("name", PageContext.REQUEST_SCOPE)%>
<%=pageContext.findAttribute("name")%>
pageContext对象可获得其他八大对象
四大域的总结
- page域(pageContext):当前jsp页面
- request域:一次请求
- session域:一次会话
- application域:整个web应用
JSP动作(常用)
- 页面包含(动作包含):<jsp:include page="被包含的页面"/>
- 请求转发:<jsp:forward page="要转发的资源"/>
EL(Express Language)表达式
EL的主要作用就是为了简化jsp脚本的,主要方向是简化从域中取出数据
- 最重要的作用就是从域中取出数据。其语法格式为
${requestScope.compony} - 最重要的通过EL的内置对象pageContext获得request对象,再通过request对象获得web应用的名称。
${pageContext.request.contextPath}
jsp的本质就是servlet
EL执行表达式
- ${1+1}
- ${empty obj}--判断一个对象是否为空,是返回true,否则返回false
- ${obj==null?true:false}
JSTL(JSP Standard Tag Library)----JSP标准标签库
要使用jstl库,需要导入两个jar包:jstl.jar和standard.jar
<%
// 1.模拟List<String>
List<String> strList = new ArrayList<String>();
strList.add("Tom");
strList.add("Jerry");
strList.add("Mikey");
request.setAttribute("strList", strList);
// 2.模拟List<User>
List<User> userList = new ArrayList<User>();
userList.add(new User("1001", "张三", "156235"));
userList.add(new User("1002", "张四", "fdt785"));
userList.add(new User("1003", "Li Li", "gdhjkt"));
pageContext.setAttribute("userList", userList);
// 3.模拟Map<String,String>
Map<String, String> strMap = new HashMap<>();
strMap.put("one", "1");
strMap.put("two", "2");
strMap.put("three", "3");
session.setAttribute("strMap", strMap);
// 4.模拟Map<String,User>
Map<String, User> userMap = new HashMap<>();
userMap.put("user1",new User("1001", "张三", "156235"));
userMap.put("user2",new User("1002", "张四", "的方式根深蒂固"));
userMap.put("user3",new User("1003", "张五", "fsdffgd"));
application.setAttribute("userMap", userMap);
%>
<h1>取出strList中的数据</h1>
<c:forEach items="${strList }" var="str">
${str }<br>
</c:forEach>
<h1>取出userList中的数据</h1>
<c:forEach items="${userList }" var="user">
user的id:${user.id }---user的username:${user.username }---user的password:${user.password }<br>
</c:forEach>
<h1>取出strMap中的数据</h1>
<c:forEach items="${strMap }" var="entry">
${entry.key }键对应的值=${entry.value }<br>
</c:forEach>
<h1>取出userMap中的数据</h1>
<c:forEach items="${userMap }" var="entry">
${entry.key }对应的User对象为:${entry.value }<br>
</c:forEach>
JSP相关学习的更多相关文章
- JSP&Servlet学习手册
JSP&Servlet学习手册 沙琪玛 书 目录 JSP 指令... 3 书写方式... 3 指令列表... 3 JSP 内置对象... 3 内置对象特点... 3 常用内置对象... 3 o ...
- JSP的学习(5)——语法知识三之include指令
本篇继续来对JSP语法中的JSP指令进行学习,在<JSP的学习(3)——语法知识二之page指令>中,已经介绍了JSP指令的书写格式和page指令的详细信息,所以在这一篇中我们会对JSP指 ...
- JSP的学习(6)——九大隐式对象及其out对象
本篇将介绍JSP中的九大隐式对象,并重点介绍其中的out对象. 我们在之前的博客<JSP的学习(1)——基础知识与底层原理>一文中已经知道,JSP最终要被翻译和转换成Servlet,在转换 ...
- JSP的学习(4)——中文乱码的解决
本篇将以JSP页面中可能存在的中文乱码问题进行分析和解决. 中文乱码的问题一直是国人在编程过程中的一大头疼问题,这点上在JSP.Servlet或Tomcat上随处可见.比如我们在写一个Servlet时 ...
- JSP的学习(3)——语法知识二之page指令
本篇接上一篇<JSP的学习(2)——语法知识一>,继续来学习JSP的语法.本文主要从JSP指令中的page指令,对其各个属性进行详细的学习: JSP指令: JSP指令是为JSP引擎而设计的 ...
- JSP的学习(2)——语法知识一
上一篇<JSP的学习>讲述了JSP的一些基础知识和底层原理,本篇将来学习JSP所需掌握的语法知识等. JSP的语法主要包括以下几个部分的内容: 1) JSP模板元素 2) ...
- JSP的学习
JSP的学习 1. (1).服务器的名字:Tomcat (2).服务器浏览器访问的地址为: http://localhost:8080 http://127.0.0.1:8080 2.简单的知识 (1 ...
- maven管理的jsp应用如何添加servlet、jsp相关依赖(org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp)
背景: 老大让做权限控制,研究了一下shiro,下了个demo下来,死活跑不起来,报 org.apache.jasper.JasperException: java.lang.ClassNotFoun ...
- 数论算法 剩余系相关 学习笔记 (基础回顾,(ex)CRT,(ex)lucas,(ex)BSGS,原根与指标入门,高次剩余,Miller_Rabin+Pollard_Rho)
注:转载本文须标明出处. 原文链接https://www.cnblogs.com/zhouzhendong/p/Number-theory.html 数论算法 剩余系相关 学习笔记 (基础回顾,(ex ...
随机推荐
- 深圳市利汇电子商务科技有限公司2019年java面试笔试题
垃圾公司,建议不要去,写的地址去了发现是两个公司公用一个办公场地,还没有公司的招牌,去了交简历给前台然后就是 填一份求职申请,一份笔试题如下,然后就等待,先是人事的一个小妹妹面试,问一些个人问题,为什 ...
- postgresql主从同步配置
前言 不久前,公司的一台物理机器硬件坏了,导致运行在其上的虚拟机都挂了.很不凑巧的是,我负责的那台虚拟机的系统盘坏了(ps:感觉老天在玩我),导致里面的数据永远的离我而去(ps:当时我的内心是崩溃的) ...
- JavaScript fetch接口
JavaScript fetch接口 如果看网上的fetch教程,会首先对比XMLHttpRequest和fetch的优劣,然后引出一堆看了很快会忘记的内容(本人记性不好).因此,我写一篇关于fetc ...
- centos 无界面安装selenium+chrome+chromedirver的设置
配了一中午的,好不容易正好记录下. 1.我的centos的位数 输入rpm -q centos-release 结果:centos-release-7-4.1708.el7.centos.x86_64 ...
- pom里引入lib下的包后编译报 package com.sun.crypto.provider does not exist问题解决
最近正在迭代开发的一个项目编译安装时出现报“package com.sun.crypto.provider does not exist”的错误,由于本人能力水平有限,也是第一次遇到该问题,来来回回折 ...
- php面试专题---mysql数据库分库分表
php面试专题---mysql数据库分库分表 一.总结 一句话总结: 通过数据切分技术将一个大的MySQLServer切分成多个小的MySQLServer,既攻克了写入性能瓶颈问题,同一时候也再一次提 ...
- 专人写接口+模型,专人写业务逻辑---interface_model -- business logical
专人写接口+模型,专人写业务逻辑---interface_model -- business logical 0-控制台脚本重构为“面向接口编程”:1-仓库类通过__constru方法,来实现一处实例 ...
- Mac自带服务器的应用
Mac OS下自带了apache,方便部署一些静态数据(html,css,js,xml,图片等数据) 一.系统默认路径 系统默认是隐藏apache安装目录的,但我们可以通过“命令行”或者“文件夹前往” ...
- leetcode 215. 数组中的第K个最大元素(python)
在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素. 示例 1: 输入: [3,2,1,5,6,4] 和 k = 2输出: 5示 ...
- sqlalchemy.exc.IntegrityError: (mysql.connector.errors.IntegrityError) 1062 (23000): Duplicate entry '1' for key 'PRIMARY'
排错: 看到 Duplicate entry '1' for key 'PRIMARY'是主键错误 看一看自己添加的数据id是1 再查询一下数据库中的表,发现id=1的记录已经存在了 所以在代码中让i ...