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 ...
随机推荐
- BZOJ 4407: 于神之怒加强版 莫比乌斯反演 + 线筛积性函数
Description 给下N,M,K.求 Input 输入有多组数据,输入数据的第一行两个正整数T,K,代表有T组数据,K的意义如上所示,下面第二行到第T+1行,每行为两个正整数N,M,其意 ...
- github配置和使用
通过手册指导生产ssh key或取已有的ssh key root@iZwz93telmwbh624e5zetqZ:~# ls -al ~/.ssh total drwx------ root root ...
- [CSP-S模拟测试94]题解
A.凉宫春日的忧郁 高精硬上似乎跑不过,其实可以都取个$log$.那么只需要比较$y\times log ^x$和$\sum \limits _{i=1}^y log^i$就好了. #include& ...
- 如何查看MySQL数据库的版本
如何查看MySQL数据库的版本 一.总结 一句话总结: SQL语句:select version(); 命令行:mysql -V 或 mysql --version 二.三种方法查看MySQL数据库的 ...
- python爬虫学习之路-遇错笔记-1
当在运行爬虫时同时开启了Fidder解析工具时(此爬虫并不是用于爬取手机端那内容,而是爬去电脑访问的网页时),访问目标站点会遇到以下错误: File "C:\Users\litao\AppD ...
- Git - 暂存区及撤销修改
1. 暂存区 每个 Git 仓库中,都有一个隐藏目录 .git 用于存放 Git 仓库的相关信息,包括暂存区(称为 stage).自动创建的 master 分支以及指向 master 分支的 HEAD ...
- Amber
训练做的题里有板子单独拉出来. 欧拉筛 ],prim[N+]; int cnt; void Eular() { vis[]=vis[]=; ;i<N;i++) if(!vis[i]) { pri ...
- vuex基本使用
1.组件之间共享数据的方式 父向子传值:v-bind 属性绑定 子向父传值:v-on 事件绑定 兄弟组件之间共享数据:EventBus $on 接收数据的那个组件 $emit 发送数据的那个组件 2. ...
- opencv部署服务器报错
报错内容: ImportError: libSM.so.6: cannot open shared object file: No such file or directory 解决办法: sudo ...
- python常用模块(3)
hashlib模块 hashlib提供了常见的摘要算法,如md5和sha1等等. 那么什么是摘要算法呢?摘要算法又称为哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通 ...