jstl表达式--------【七】
2015-08-09 17:43
701 查看
JSP java server page动态网页
jsp: Servlet升级产品
动态网页(Servlet添加html)
jsp: html标签中添加java代码
1.命名 *.jsp
2.jsp中通过特定格式添加java代码
3.开发部署后,不要在web.xml配置
4.部署位置:应用下除了WEB-INF以外的任意位置(同HTML位置)
**WEB-INF 用户通过浏览器为无法直接访问
访问:同HTML
**jsp修改后不须要重新部署
脚本元素:(脚本:可执行的代码片段)
表达式脚本 <%=java表达式%>将其中的内容输出给浏览器
声明脚本 <%!方法,变量%>声明方法和成员变量
普通脚本 <% 普通java代码%>service方法中的 流程控制代码
作业:
输出一个9*9乘法表(不调错) 奇数行红色, 偶数行为蓝色
-------------------------------------------------------------
request.getRemoteAddr(); //客户端ip
request.getRemoteHost(); //主机名
---------------------------------------------------------------
JSP运行原理: (jsp的本质是一个Servlet程序)
1.浏览器通过url访问到tomcat中的jsp文件
2.tomcat将jsp文件翻译成servlet程序 .java文件
3.tomcat 翻译后的.java编译成.class文件
4.将.class创建对应的Servlet实例对象,执行service方法
脚本元素的翻译规则:
表达式脚本-----翻译成 out.println(表达式内容);
声明脚本------翻译成Servlet程序中的成员方法,成员变量
普通脚本-----翻译成servlet中service方法中的java代码
**普通html标签-----out.println(标签内容);
指令元素
页面指令:描述当前jsp文件(程序)的特征
<%@page 属性=“值” 属性=“值” %>
pageEncoding="UTF-8"规定jsp翻译servlet程序是,tomcat根据什么编码读取jsp文件
contentType="text/html;charset=UTF-8"最终的页面由浏览器解析时使用的编码格式
import="java.util.*,java.io.*"导入当前页面所使用的java api的包结构
session="true"|false
**servlet中只有第一次访问时执行request.getSession(); 才会创建session对象(懒汉式)
true: 访问时直接创建session(饿汉式)
false:
不会自动创建session
isErrorPage="true"|false
决定当前页面是否是错误页面
**当值为true当前页面会有隐含对象 exception
errorPage="错误页面的url-pattern"
**当当前页面有异常时,会跳转至,errorPage所指定的页面
包含指令
<%@include file='被包含的url-pattern'%>
**包含的是jsp文件源代码
应用:项目中需要引入大量的外部css样式,js文件。.需要使用时,包含已经引入css/js 内容的jsp文件即可
includeA.jsp(包含B)↘
all.jsp----all_jsp.java----all_jsp.class--执行
includeB.jsp
↗
标签库指令:
<%@taglib uri='外部标签库的地址' prefix='前缀'%>
动作元素:
标签是成对出现
<jsp:include page="">
<jsp:param value="chengcheng" name="username"/>
</jsp:include>
//相当于servlet request.getRequestDispatcher().include(req,resp);
是在响应输出时,将数据包含 并响应给浏览器
includeA.jsp(包含B)---- aaa.java ----aaa.class---响应数据↘
--->浏览器
includeB.jsp
---- bbb.java ----bbb.class---响应数据↗
【了解】
<jsp:forward page=''>
<jsp:param name='' value=''/>
</jsp:forward>
//相当于servlet request.getRequestDispatcher().forward(req,resp);
**ServletA forward ---ServletB:可以通过request作用域传值
**param传值:相当于URL?name=value
=================================================================
jsp 9大内置对象(隐含对象)
**内置对象是jsp翻译后的servlet程序中service方法中的局部变量
**内置对象不能放在<%!声明脚本中%>
内置对象 类型
request
HttpServletRequest
--------------------------
通过URL?key=value 中文
username = URLEncoder.encode(中文值, "UTF-8");
--------------------------
response
HttpServletResponse
session
HttpSession
application
ServletContext
(应用级作用域:生命周期最长. web.xml在内存中的表现)
config
ServletConfig (当前jsp所对应的servlet程序的信息)
page this
out JspWriter
exception
Throwable
****只有当jsp中有 isErrorPage="true"
【pageContext】
PageContext
1.作用域:生命周期最短(只有当前页面能够使用)
pageContext.setAttribute("name",Object);//存
pageContext.getAttribute("name");//取
2.管理所有的作用域:
pageContext.getAttribute("name", int 作用域);
int:
pageContext.REQUEST_SCOPE
pageContext.SESSION_SCOPE
pageContext.APPLICATION_SCOPE
3.查找所有作用域中的值
pageContext.findAttribute("name");
**在所有的作用域中查找名字为name的值.
**查找顺序从pageCOntext--->application
**返回找到的第一个名字匹配的值
4.pageContext可以获得其他8个隐含对象
pageContext.getRequest();--request
pageContext.getSession();--session
pageContext.getServletContext();--application
.getServletConfig()--config
.getResponse()--response
.getPage()
--page
.getOut()
--out
.getException()--exception
=========================================================================
Servlet+JSP开发模式
----查询所有联系人:
1.用户:
点击(查询所有联系人)-------所有联系人(页面)
2.程序:
①完成用户看到的内容
②数据内容从哪里来
LoginSuccessView.jsp----showAllPersonAction
--showAllPersonView.jsp
<a href=''>查询所有..</a>查询persons信息
展示所有的Person信息
调用service
跳转forward
//JSP页面只作展示
//查询数据,处理数据,业务功能..(Action)
//所有jsp页面的数据全部有某个Servlet程序传递给jsp(xxxxAction)
//所有href和action 值 URI(包含项目名,动态获取)
3.实现:
Servlet
收集数据
调用service
//传递数据
负责跳转
JSP
展示数据
问题:
1.尽量不要jsp--->jsp
2.JSP只展示,ServletAction做业务处理
3.href='URI'; action="URI"
--------------
用户:
首页 -----显示页面
查询所有商品
显示所有商品信息
程序:
1.productIndex.jsp--------------QueryAllProductAction---------------showAllProductView.jsp
<a href=''></a>调用service查询所有商品
products
forward跳转
2.写业务对象ProductService
public List<Product> queryAllProducts();
3.写数据访问对象ProductDAO
public List<Product> selectAllProducts();
4.JDBCUtil复制;
Entity:Product
5.创建Product表
6.ojdbc5.jar导入环境
--------------------------------------------
EL 表达式: expression Language表达式语言
作用:将表达式的内容输出类浏览器
**替换jsp中所有的表达式脚本
书写格式:${表达式 expression}
1.
运算表达式
数学运算 +-
* /
%
逻辑运算 ==!=
< <=
> >=
&& || !
判断是否为null
${empty 变量}
**EL中数据弱类型
${10/4}
----2.5
${1=="1"}-----true
2.访问请求参数中的数据
请求参数:表单|URL?key=value
${param.请求参数的名字}===
<%=request.getParameter("请求参数名字")%>
3.获得作用域中的值
${pageScope.命名属性名}--------<%=pageContext.getAttribute("命名属性名")%>
${requestScope.命名属性名}------<%=request.getAttribute("命名属性")%>
${sessionScope.命名属性名}
${applicationScope.命名属性名}
4.访问cookie
<%
Cookie[] cs = request.getCookies();
for(Cookie c:cs){
if(c.getName().equals("JSESSIONID")){
out.println(c.getValue());
}
}
%>
${cookie.JESSIONID.value}
5.访问对象:数组:ListMap
访问对象属性
${对象.属性名}
数组:${array[下标]}
list集合:${list[下标]}
map:${map.key}--获得map的值
***map的key是String
***map的key(首字母不能为数字)
6.
EL内置对象
param pageScoperequestScope
sessionScopeapplicationScope
cookie
pageContext
${pageContext.request.contextPath}------/应用名
====================================================================
作业:
将通讯录中所有jsp表达式脚本修改为EL表达式
商品管理系统:添加商品功能
jsp: Servlet升级产品
动态网页(Servlet添加html)
jsp: html标签中添加java代码
1.命名 *.jsp
2.jsp中通过特定格式添加java代码
3.开发部署后,不要在web.xml配置
4.部署位置:应用下除了WEB-INF以外的任意位置(同HTML位置)
**WEB-INF 用户通过浏览器为无法直接访问
访问:同HTML
**jsp修改后不须要重新部署
脚本元素:(脚本:可执行的代码片段)
表达式脚本 <%=java表达式%>将其中的内容输出给浏览器
声明脚本 <%!方法,变量%>声明方法和成员变量
普通脚本 <% 普通java代码%>service方法中的 流程控制代码
作业:
输出一个9*9乘法表(不调错) 奇数行红色, 偶数行为蓝色
-------------------------------------------------------------
request.getRemoteAddr(); //客户端ip
request.getRemoteHost(); //主机名
---------------------------------------------------------------
JSP运行原理: (jsp的本质是一个Servlet程序)
1.浏览器通过url访问到tomcat中的jsp文件
2.tomcat将jsp文件翻译成servlet程序 .java文件
3.tomcat 翻译后的.java编译成.class文件
4.将.class创建对应的Servlet实例对象,执行service方法
脚本元素的翻译规则:
表达式脚本-----翻译成 out.println(表达式内容);
声明脚本------翻译成Servlet程序中的成员方法,成员变量
普通脚本-----翻译成servlet中service方法中的java代码
**普通html标签-----out.println(标签内容);
指令元素
页面指令:描述当前jsp文件(程序)的特征
<%@page 属性=“值” 属性=“值” %>
pageEncoding="UTF-8"规定jsp翻译servlet程序是,tomcat根据什么编码读取jsp文件
contentType="text/html;charset=UTF-8"最终的页面由浏览器解析时使用的编码格式
import="java.util.*,java.io.*"导入当前页面所使用的java api的包结构
session="true"|false
**servlet中只有第一次访问时执行request.getSession(); 才会创建session对象(懒汉式)
true: 访问时直接创建session(饿汉式)
false:
不会自动创建session
isErrorPage="true"|false
决定当前页面是否是错误页面
**当值为true当前页面会有隐含对象 exception
errorPage="错误页面的url-pattern"
**当当前页面有异常时,会跳转至,errorPage所指定的页面
包含指令
<%@include file='被包含的url-pattern'%>
**包含的是jsp文件源代码
应用:项目中需要引入大量的外部css样式,js文件。.需要使用时,包含已经引入css/js 内容的jsp文件即可
includeA.jsp(包含B)↘
all.jsp----all_jsp.java----all_jsp.class--执行
includeB.jsp
↗
标签库指令:
<%@taglib uri='外部标签库的地址' prefix='前缀'%>
动作元素:
标签是成对出现
<jsp:include page="">
<jsp:param value="chengcheng" name="username"/>
</jsp:include>
//相当于servlet request.getRequestDispatcher().include(req,resp);
是在响应输出时,将数据包含 并响应给浏览器
includeA.jsp(包含B)---- aaa.java ----aaa.class---响应数据↘
--->浏览器
includeB.jsp
---- bbb.java ----bbb.class---响应数据↗
【了解】
<jsp:forward page=''>
<jsp:param name='' value=''/>
</jsp:forward>
//相当于servlet request.getRequestDispatcher().forward(req,resp);
**ServletA forward ---ServletB:可以通过request作用域传值
**param传值:相当于URL?name=value
=================================================================
jsp 9大内置对象(隐含对象)
**内置对象是jsp翻译后的servlet程序中service方法中的局部变量
**内置对象不能放在<%!声明脚本中%>
内置对象 类型
request
HttpServletRequest
--------------------------
通过URL?key=value 中文
username = URLEncoder.encode(中文值, "UTF-8");
--------------------------
response
HttpServletResponse
session
HttpSession
application
ServletContext
(应用级作用域:生命周期最长. web.xml在内存中的表现)
config
ServletConfig (当前jsp所对应的servlet程序的信息)
page this
out JspWriter
exception
Throwable
****只有当jsp中有 isErrorPage="true"
【pageContext】
PageContext
1.作用域:生命周期最短(只有当前页面能够使用)
pageContext.setAttribute("name",Object);//存
pageContext.getAttribute("name");//取
2.管理所有的作用域:
pageContext.getAttribute("name", int 作用域);
int:
pageContext.REQUEST_SCOPE
pageContext.SESSION_SCOPE
pageContext.APPLICATION_SCOPE
3.查找所有作用域中的值
pageContext.findAttribute("name");
**在所有的作用域中查找名字为name的值.
**查找顺序从pageCOntext--->application
**返回找到的第一个名字匹配的值
4.pageContext可以获得其他8个隐含对象
pageContext.getRequest();--request
pageContext.getSession();--session
pageContext.getServletContext();--application
.getServletConfig()--config
.getResponse()--response
.getPage()
--page
.getOut()
--out
.getException()--exception
=========================================================================
Servlet+JSP开发模式
----查询所有联系人:
1.用户:
点击(查询所有联系人)-------所有联系人(页面)
2.程序:
①完成用户看到的内容
②数据内容从哪里来
LoginSuccessView.jsp----showAllPersonAction
--showAllPersonView.jsp
<a href=''>查询所有..</a>查询persons信息
展示所有的Person信息
调用service
跳转forward
//JSP页面只作展示
//查询数据,处理数据,业务功能..(Action)
//所有jsp页面的数据全部有某个Servlet程序传递给jsp(xxxxAction)
//所有href和action 值 URI(包含项目名,动态获取)
3.实现:
Servlet
收集数据
调用service
//传递数据
负责跳转
JSP
展示数据
问题:
1.尽量不要jsp--->jsp
2.JSP只展示,ServletAction做业务处理
3.href='URI'; action="URI"
--------------
用户:
首页 -----显示页面
查询所有商品
显示所有商品信息
程序:
1.productIndex.jsp--------------QueryAllProductAction---------------showAllProductView.jsp
<a href=''></a>调用service查询所有商品
products
forward跳转
2.写业务对象ProductService
public List<Product> queryAllProducts();
3.写数据访问对象ProductDAO
public List<Product> selectAllProducts();
4.JDBCUtil复制;
Entity:Product
5.创建Product表
6.ojdbc5.jar导入环境
--------------------------------------------
EL 表达式: expression Language表达式语言
作用:将表达式的内容输出类浏览器
**替换jsp中所有的表达式脚本
书写格式:${表达式 expression}
1.
运算表达式
数学运算 +-
* /
%
逻辑运算 ==!=
< <=
> >=
&& || !
判断是否为null
${empty 变量}
**EL中数据弱类型
${10/4}
----2.5
${1=="1"}-----true
2.访问请求参数中的数据
请求参数:表单|URL?key=value
${param.请求参数的名字}===
<%=request.getParameter("请求参数名字")%>
3.获得作用域中的值
${pageScope.命名属性名}--------<%=pageContext.getAttribute("命名属性名")%>
${requestScope.命名属性名}------<%=request.getAttribute("命名属性")%>
${sessionScope.命名属性名}
${applicationScope.命名属性名}
4.访问cookie
<%
Cookie[] cs = request.getCookies();
for(Cookie c:cs){
if(c.getName().equals("JSESSIONID")){
out.println(c.getValue());
}
}
%>
${cookie.JESSIONID.value}
5.访问对象:数组:ListMap
访问对象属性
${对象.属性名}
数组:${array[下标]}
list集合:${list[下标]}
map:${map.key}--获得map的值
***map的key是String
***map的key(首字母不能为数字)
6.
EL内置对象
param pageScoperequestScope
sessionScopeapplicationScope
cookie
pageContext
${pageContext.request.contextPath}------/应用名
====================================================================
作业:
将通讯录中所有jsp表达式脚本修改为EL表达式
商品管理系统:添加商品功能
相关文章推荐
- javascript onclick跳转链接网页
- jsp-----【六】
- js实现table新增,删除行
- 02_03 JSP内置对象之page
- js高程3笔记
- 02_02 JSP内置对象之四种属性范围
- js
- jsp实现简单的登录与注销功能
- JavaScript我学之七数组
- Jsp中复选框的全选与反选
- JavaScript学习笔记——DOM_对document对象的内容、属性、样式的操作
- JSCover+WebDriver/Selenium获得JS 代码覆盖
- javascript 解析ajax返回的xml和json格式的数据
- JavaScript面向对象精要
- JavaScript作用域与声明提升【翻译】
- 懒加载中 把JSON文件转模型,复制给控制器的模型属性
- 基于SSH实现全选删除功能
- 重温blame!——用html+js写个漫画浏览器
- js获取时间及倒计时
- 各个JSON技术的比较