JSP 小结
来源:互联网 发布:西部数码域名注册 编辑:程序博客网 时间:2024/06/06 01:55
注释:
在JSP文件中,有三种注释
1.<!-- HTML注释 --> : 这个注释在客户端浏览器中通过查看源码可以查看得到,Tomcat解析转换为.java文件时包含在 out.write(....) 中
2. 在<% %> 中嵌入java注释 // 和 /* */ ,这种注释在tomcat解析jsp文件时被保留下来
3.<%-- jsp注释 --%> 此注释只在jsp文件中可以看到, Tomcat解析转换后得到的.java文件并不包含该注释
在jsp文件中嵌入java代码的三种方式:
1. <%! %> : 定义声明变量
2. <% %> : 可以写java代码片段
3. <%= expression %> 里面书写表达式
JSP 三个指令
格式:
<%@ 指令 属性 %>
1.page 指令
较常用的几个属性:
import 用于导入包
isErrorPage true 表示是用与处理异常错误的页面
errorPage 和上面这个属性一起使用,用来指示错误页面的位置
注:如果在web.xml中配置<error-page>标签和此页面设置的重叠了,则只会执行web.xm中配置处理出错的信息
PageEncoding 用于表明此页面以什么编码来保存
Session true表示此页面可以直接使用session对象,可以从解析出来的.java看出,会多出了一行声明session的语句。False 则不能直接使用
2.include指令
<%@ include file=”包含的文件名” %>
这个指令是静态包含,即在解析前将其合并为一个文件,然后统一解析为一个.java文件
注:被包含文件不需要一个完整结构的html框架
3.taglib指令
<%@ taglib uri = “待引入标签对应的Java的url” prefix=” 可以通过这个前缀来引入某个标签”%>
这个指令用与引入一些标签,这些标签对应着Java程序。如后续的自定义标签。
JSP的9个内置对象
request HttpServletRequest
response HttpServletResponse
session HttpSession
application ServletContext
config ServletConfig
out JspWriter
page Object
pageContext PageContext
exception Throwable
Page内置对象:
解析后转为.java文件中的定义:
final java.lang.Object page = this;
Page对象表示当前的jsp页面,在tomcat解析后对应着一个servlet , 但是声明为Object类型。可用于存储数据,一般通过pageContext来操作
PageContext对象
解析后转为.java文件中的定义:
final javax.servlet.jsp.PageContext pageContext;
在 _jspService方法中:
pageContext = _jspxFactory.getPageContext(this, request, response,
null, true, 8192, true);
可以通过getXXX() 方法获取其他八个内置对象,一般当需要在多个jsp, servlet传递jsp内置对象时使用
out 对象:
解析后转为.java文件中的定义:
javax.servlet.jsp.JspWriter out = null;
在 _jspService方法中:
out = pageContext.getOut();
该对象用于输出数据,(注:输出到自己的缓冲区中)
该结果输出为3 12,
<% out.write("1"); out.print("2"); response.getWriter().print("3"); %>
如果要输出123则可以在中间加一句:
<% out.write("1"); out.print("2"); out.flush(); response.getWriter().print("3"); %>
在jsp页面中有四个域对象,对应着不同的作用范围,page最小,仅为当前的页面
对象 范围(Scope)
Page PageContext,PAGE_SCOPE
Request PageContext,REQUEST_SCOPE
Session PageContext,SESSION_SCOPE
Application PageContext,APPLICATION_SCOPE
对上面的四个域对象存取数据,可以使用pageContext对象
通过指定范围来设置,获取,删除数据
pageContext.setAttribute( String name, Object value, int scope);
pageContext.getAttribute( String name, int scope);
pageContext.removeAttribute( String name, int scope);
e.g:
<% //存放数据 pageContext.setAttribute("Page", "page", PageContext.PAGE_SCOPE); pageContext.setAttribute("Request", "Request", PageContext.REQUEST_SCOPE); %> <%-- 获取数据 --%> <%=pageContext.getAttribute("Pagg", PageContext.PAGE_SCOPE)%> <%-- 没有Pagg属性,为null --%> <%=pageContext.getAttribute("Request", PageContext.REQUEST_SCOPE)%> <%-- 输出Request --%> <%-- 删除数据 --%> <% pageContext.removeAttribute("Page", PageContext.PAGE_SCOPE); %> <%=pageContext.getAttribute("Page", PageContext.PAGE_SCOPE)%> <%-- 没有Page属性,为null --%>
在page范围内设置,获取,删除数据
pageContext.setAttribute( String name, Object value);
pageContext.getAttribute( String name );
pageContext.removeAttribute( String name );
查找数据
依次从page, request, session, application 查找存储的属性,如果没有找到着返回null
pageContext.findAttribute( String name );
<% //存放数据 pageContext.setAttribute("find", "page", PageContext.PAGE_SCOPE); pageContext.setAttribute("find", "request", PageContext.REQUEST_SCOPE); %> <%-- 有两个同名的,但是find是从page开始查找的,所以返回page --%> <%=pageContext.findAttribute("find") %>
JSP的Action标签
include
<jsp:include page="被包含的文件" > 静态包含, 和 jsp的指令include类似
forward
跳转到指定的页面
<%-- 跳转到main.jsp页面 page里面写的是资源路径,但是不要加项目名称 --%> <jsp:forward page="/action/main.jsp"></jsp:forward>
其他
useBean
setProperty
getProperty
这三个动作标签涉及到JavaBean,在那边总结
- JSP小结
- jsp小结
- JSP小结
- JSP小结
- jsp小结
- JSP小结
- jsp小结
- jsp小结
- JSP 小结
- JSP小结
- jsp小结
- jsp小结
- JavaWeb之JSP--------------JSP小结
- JSP学习小结
- JSP知识点小结
- JSP分页技术小结
- jsp连接oracle小结
- jsp:include小结
- Live_2014/12/21
- Maven的安装与配置
- IO流的学习
- iOS 设置界面(纯代码创建)
- 实践:构建一个Storm分析解决方案
- JSP 小结
- 融会贯通 XCode 中的 Git 版本控制
- errno.h快速入门
- JAVA线程学习(二)
- QT 初学第二章(一)
- 深入分析Android中Dialog
- 模仿IOS里面的UIActionSheet控件,有IOS6和IOS7两种风格
- 工作半年后总结与感想
- 热趴仪仄律靥俏卤影窍缸潘尚壮淤