jsp九大隐式对象和jsp内置标签和jsp的usebean标签
来源:互联网 发布:科学大众网络比赛 编辑:程序博客网 时间:2024/06/08 04:15
1 PageContext对象和Page对象
1)request
2)response
3)session
4)application
5)config
取得jsp映射在web.xml文件中的信息
6)out
7)exception
8)page:表示当前jsp页面,只能在jsp标签只出错,表示当前域对象,在代码中,表示当前域对象只能用PageContext
9)pageContext
a)PageContext域对象仅限于当前jsp页面中,出了该jsp页面,原PageContext域对象销毁,如果取不到值,返回null
b)PageContext域对象可以将对应的值保存在指定的四个域对象之一
pageContext.setAttribute("name","丝丝",PageContext.REQUEST_SCOPE);
c)PageContext域对象可以将对应的值从指定的四个域对象之一取出
<%=pageContext.getAttribute("name",PageContext.APPLICATION_SCOPE) %>
d)PageContext.findAttribute("name")
它会以name为key,依次去四个域对象中查询对应的值,找到即止,如果找不到,返回null
2 JSP内置标签(美化+业务逻辑)
1)为了取代<%%>脚本形式,使用JSP标签/JSP动作,目的:与JSP页面的美化,即JSP面页都是由标签组成,不再有其它的内容
2)JSP内置标签
a)<jsp:include page/>(动,执行)和 <%@ include file/>(静,翻译)
N张jsp生成N个servlet
总的jsp生成的结构良好
类似于函数调用
true先将当前jsp页面的输出输到浏览器后,再加入包含的页面/false(将原新内容同时输到浏览器)(默认)
动态包含,在需要包含时,才去调用执行
b)<jsp:forward page/>
转发到page所指向的jsp页面
<jsp:forward page="/to.jsp">
<jsp:param name="name" value='<%=URLEncoder.encode("杰克jack","UTF-8")%>'/>
<jsp:param name="pass" value="123"/>
</jsp:forward>
在转到另一个页面的时候带上参数
映射jsp
<servlet>
<servlet-name>qq</servlet-name>
<jsp-file>/index.jsp</jsp-file>
<init-param>
<param-name>email</param-name>
<param-value>jack0723@163.com</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>qq</servlet-name>
<url-pattern>/aaa/bbb/qq.html</url-pattern>
</servlet-mapping>
邮箱为:<%=config.getInitParameter("email")%>
3 JSP出错演示
1)语法错误
<%=exception.getMessage();%>
2)语法无错,但翻译成Servlet后出错
jsp以经帮我们创建了request对象,如果我们再定义一个同名的request对象,必然出错
3)逻辑错误
取得某个属性值,但是实际上并不存在,取其长度,会出现空指针错误
4 JSP中JavaBean标签
a)<jsp:useBean id/class/scope/>表示创建或查找对应的JavaBean对象
如果在域对象中有对应的JavaBean对应,那么该只会负责查询JavaBean对应,而不会创建
<jsp:useBean id="s" class="cn.itcast.web.jsp.Student" scope="page">
JavaBean对象
</jsp:useBean>
id代表变量引用,且是存放到域对象中的key值
如果scope不写默认为scope="page"
b)<jsp:setProperty name/property/value/>
该标签可以将String到8种基本类型的转换
<jsp:setProperty name="s" property="name" value="jack"/>
<jsp:setProperty name="s" property="age" value="30"/>
<jsp:setProperty name="s" property="salary" value="5000"/>
而在javabean中salary是double类型,依然可以赋值,表明该标签可以将String到8中基本类型的转换
http://localhost:8080/day10/javabean.jsp?name=tingting&age=14&salary=999
如果使用传参形式传递参数和参数值
<jsp:setProperty name="s" property="name" param="name"/>
<jsp:setProperty name="s" property="age" param="age"/>
<jsp:setProperty name="s" property="salary" param="salary"/>
可以简写,如果参数和param值一样
<jsp:setProperty name="s" property="*"/>
c)<jsp:getProperty name/property/>
*5 JSP开发模式
(1)JSP(V)+JSP(C)+JavaBean(M)
(2)JSP(V)+Servlet(C)+JavaBean(M)
*6 EL和JSTL快速入门
EL=Expression Language
a)快速输出JavaBean的值或普通变量的值
<%@ page isELIgnored="false" %>是否让EL表达式忽略,false表示不忽略
<%
Address address = new Address();
address.setLocation("广州");
address.setZipcode("020123");
Student s = new Student();
s.setName("小华");
s.setAge(20);
s.setSalary(3500);
s.setAddress(address);
session.setAttribute("S",s);
%>
用户名:${S.name}<br/>
年龄:${S.age}<br/>
薪水:${S.salary}<br/>
地址:${S.address.location}<br/>
邮编:${S.address.zipcode}<br/>
<hr/>
10>5->${10>5}
10==5->${10==5}
10<5->${10<5}
用户名:小华
年龄:20
薪水:3500.0
地址:广州
邮编:020123
10>5->true 10==5->false 10<5->false
b)JSTL=JavaStandardTaglibLanguage
快速输出动态内容,以替代JSP页面中的脚本<%%>代码
c)注意
是否已将集合或变量绑定到域对象中,并确保该域对象没有销毁,因为EL只有从域对象中检索对应的值
JSTL都会和EL绑定在一起用
<%
List<String> stringList = new ArrayList<String>();
stringList.add("java增强");
stringList.add("xml");
stringList.add("servlet");
stringList.add("jsp");
request.setAttribute("STRINGLIST",stringList);
%>
<%
Map<Integer,String> map = new LinkedHashMap<Integer,String>();
map.put(1,"java");
map.put(2,"xml");
map.put(3,"servlet");
map.put(4,"jsp");
pageContext.setAttribute("MAP",map);
%>
<table border="1" align="center">
<c:forEach var="list" items="${STRINGLIST}">
<tr>
<td>${list}</td>
</tr>
</c:forEach>
</table>
<table border="1" align="center">
<tr>
<th>编号</th>
<th>书名</th>
<th>操作</th>
</tr>
<c:forEach var="entry" items="${MAP}">
<tr>
<td>${entry.key}</td>
<td>${entry.value}</td>
<td>购买</td>
</tr>
</c:forEach>
</table>
*7 案例:
a)购物车V2版
分析购物车V2功能列表:
a)显示所有图书
b)购买图书
c)显示购物车中的图书清单
d)删除某项图书
e)清空购物车
f)继续购物
g)批量购物图书
... ...
课后作业:
a)完成购物车V2版
b)个人购买图书限制在[1-100]本
c)图书数量必须是1开始的正整数,每一位都必须是[0-9]之整的数字
- jsp九大隐式对象和jsp内置标签和jsp的usebean标签
- <jsp:useBean>标签和<jsp:setProperty>标签 笔记
- JSP标签的<jsp:useBean>和<jsp:setProperty><jsp:getProperty>的使用
- JSP动作标签useBean--<jsp:useBean> 创建一个对象
- jsp的7大标签和9大内置对象
- jsp标签jsp:useBean用法
- jsp标签 jsp:useBean用法
- jsp:useBean标签
- JSP的内置标签
- pageContext对象、JSP的标签和映射
- JavaBean中的<jsp:useBean>标签
- 6. jsp中的useBean标签
- jsp标签jsp:useBean用法(转载)
- jsp标签jsp:useBean用法(转…
- JSP---JavaBean的使用-jsp:useBean标签相关
- JSP---JavaBean的使用-jsp:useBean标签相关
- JSP的常用标签和JSP映射
- JSP指令元素,JSP内置对象及JSP标签
- CSS 清浮动详解
- RedHat下安装Python3
- HDU-4714 Tree2cycle(树型dp)
- 莫比乌斯反演与莫比乌斯函数
- 执行环境及作用域
- jsp九大隐式对象和jsp内置标签和jsp的usebean标签
- Unity3D基础(1)_AssetBundle
- 在CentOS 7系统上安装RabbitMQ
- 2017 暑假艾教集训 day9(整体二分 + cdq分治 cdq真是我女神!!!)
- 22大街
- 【SpringCloud】(九):Feign的自定义配置
- 从零开始的ubuntu下的caffe配置
- 10020---Java sleep和wait区别
- git生成公钥