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 ...
随机推荐
- CKeditor粘贴图片在IE下自动上传的研究
我司需要做一个需求,就是使用富文本编辑器时,不要以上传附件的形式上传图片,而是以复制粘贴的形式上传图片. 在网上找了一下,有一个插件支持这个功能. WordPaster 安装方式如下: 直接使用Wor ...
- 2017ICPC沈阳网络赛 HDU 6205 -- card card card(最大子段和)
card card card Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- pl/sql中return和exit区别
经测试: 1.exit只能用于循环中,并且退出循环往下执行: 2.return可用于循环或非循环,并且退出整个程序模块不往下执行. declare i number :=1; j number :=1 ...
- svn 中的add 和commit命令有何区别
add 功能:向文件拷贝所在的文件夹中添加新的文件,并作出标识,是新添加的,下一步提交时将一并提交到Subversion版本库中去.简单的说就是将一新文件加入svn,你添加再提交后该文件就进入subv ...
- leetcode 155. 最小栈(c++)
设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈. push(x) -- 将元素 x 推入栈中.pop() -- 删除栈顶的元素.top() -- 获取栈顶元素.get ...
- python字符串常见操作
字符串常见操作 如有字符串mystr = 'hello world itcast and itcastcpp',以下是常见的操作 <1>find 检测 str 是否包含在 mystr中,如 ...
- 理解jquery的$.extend()、$.fn.extend()【jQuery插件机制】
/** * 操作数据 | DOM 操作 * @description jQuery类添加类方法,可以理解为添加静态方法,将一个或多个对象的内容合并到目标对象 * @use $.fn.zhang() | ...
- 《JAVA设计模式》之组合模式(Composite)
在阎宏博士的<JAVA与模式>一书中开头是这样描述合成(Composite)模式的: 合成模式属于对象的结构模式,有时又叫做“部分——整体”模式.合成模式将对象组织到树结构中,可以用来描述 ...
- MYSQL学习笔记/2019
以下内容均为转载,只是方便今后学习:如有不妥,请联系删除:特此感谢原博主精心制作!(文章底部贴有原文链接) /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ m ...
- UML类图及类之间关系
1.UML基本介绍 UML:统一建模语言,是一种用于软件系统分析和设计的语言工具 2.UML图 UML图分类: 用例图 静态结构图:类图,对象图,包图,组件图,部署图 动态行为图:交互图,状态图,活动 ...