发表于: 2017-02-14 02:05:20
1 1751
今天完成的事情:学习JSP Servlet运行过程,学习page指令,完成雇员列表删除查询添加.
明天的计划:完成雇员列表的修改部分.
遇到的问题:有些流程我懂了,但是无法用代码实现.我这样真的学习效率低吗?明天我试着早睡早起一会看一看会不会有效果.
收获:
page指令
指令元素语法
<%@ %> 百分号与@之间不能有任何空格.
属性值用的双引号可以替换成单引号.引号标记不能完全省略.
page指令:用于设置JSP的页面属性,这些属性将用于和JSP容器通信,控制所生成的Servlet结构.
page指令作用于整个JSP页面,可以将page指令放在文档的任何地方.
page指令语法:
<%@ page attr=“value1” attr=“value2”…..%>
page指令的属性:
1.import属性:page指令中唯一容许在同一文档出现多次的属性,属性值可以用逗号隔开.
指定JSP页面转换Servlet应该输入的包,对于没有明确指定包的类,将根据JSP页面所在的包(生成servlet的目录)决定类的包的位置. 这意味着,将在JSP页面所在的包类寻找该类.
一定要将使用工具类和bean包放在指定的包中,不要依赖于自动导入.
2.contentType和pageEncodeing属性:
contentType属性设置发送到客户端文档的响应报头的MIME类型和字符编码.多个使用;号分开.
pageEncodeing属性只用于更改字符编码.
servlet默认MIME是text/plain ,jsp默认MIME是text/html.
每个MIME类型由两个部分组成,前面是数据的大类型,后面是具体地种类.
MIME:是描述内容信息的因特网标准.
MIME消息可以包含文本,图像,音频,视频,以及其他应用程序专用的数据.
jsp中嵌入Java代码:
表达式标签
1.<%= %>显示功能的标签
作用:计算表达式的值,例如<%=1+1%>;在页面显示表达式的值.
<%= %>中不能有分号
2.声明式标签
<%! %>
作用:声明变量和函数,可以由Java代码调用.例如<%! String a = “hello”%>
<1><%! %>中可以出现分号;
<2>声明脚本可以放到页面的上方或者下方.
<3>不建议在声明脚本中声明变量,这样会导致线程不安全.
3.普通脚本
<% %>
作用:除了不能声明函数外,其他Java代码都可以放在脚本中,多用于声明变量和控制流程代码.
以上三种脚本不能互相嵌套,与HTML标签也不能相互嵌套.
jsp隐含对象
jsp隐含对象是JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明.JSP隐含对象也被成为预定义变量.
JSP所支持九大隐含对象
1.对象:request 描述:HttpServletRequest类的实例.
2.对象:response 描述:HttpServletResponse类的实例.
3.对象:out 描述:PrintWriter类的实例,用于把结果输出到网页上.
4.对象:session 描述:HttpSession类的实例
5.对象:application 描述:ServletContext类的实例,与应用上下文有关.
6.对象:config 描述:ServletConfig类的实例.
7:对象pageContext 描述:PageContext类的实例,提供对JSP页面所有对象以及命名空间的访问.
8.对象:page 描述:类似于Java中this关键字.
9.对象:Exception 描述:Exception对象,代表发生错误的JSP页面中对应的异常对象.
request对象:
request对象是javax.servlet.http.HttpServletRequest类的实例.每当客户请求一个JSP页面时,JSP引擎就会制造一个新的request对象来代表这个请求.
request提供一些列方法来获取HTTP头信息,cookies,HTTP方法等.
response对象:
response对象是javax.servlet.http.HttpServletResponse类的实例,当服务器创建request对象时会同时创建用于响应这个客户端的response对象.
response对象也定义了处理HTTP头模块的接口,通过这个对象,开发者可以添加新的cookies,时间戳,HTTP状态码等等.
out对象:
out对象是javax.servlet.jsp.JspWriter类的实例,用来在response对象中写入内容.
最初的JspWriter类对象根据页面是否有缓存来进行不同的实例化操作.可以在page指令中使用buffered=‘false’属性来关闭缓存.
JspWriter类包含了大部分Java.io.PrintWriter类中的方法,不过JspWriter中增加了一些专门处理缓存而设计的方法,还有就是JspWriter类会跑出IOExceptions异常,二PrintWriter不会.
out.print(data type dt)输出Type类型的值.
out.println(data type dt)输出Type类型的值然后换行.
out.flush()刷新输出流.
session对象
session对象是javax.servlet.http.HttpSession类的实例,和Java Servlet中的session对象有一样的行为.
session对象用来跟踪在各个客户端请求间的会话.
application对象
application对象直接包装了servlet的ServletContext类的对象,是javax.servlet.ServletContext类的实例.
这个对象在JSP页面的整个声明周期中都代表这个JSP页面.这个对象的JSP页面初始化时被创建,随着jspDestory()方法的调用而被移除.
通过向application中添加属性,则所有组成web应用的JSP文件都能访问到这个属性.
confg对象:
config对象是javax.servlet.ServletConfig类的实例,直接包装了servlet的ServletConfig类的对象.
这个对象允许开发者访问Servlet或JSP引擎的初始化参数,比如文件路径等.
pageContext对象:
pageContext对象时javax.servlet.jsp.ServletPageContext类的实例,用来代表整个JSP页面.
这个对象主要用来访问页面信息,同时过滤掉大部分实现细节.
这个对象储存了request对象和response对象的引用.application对象,config对象,session对象,out对象可以通过访问这个对象的属性来导出.
pageContext对象也包含了传给JSP页面的指令信息,包括缓存信息,ErrorPage URL,页面scope等.
page对象
这个对象就是页面实例的引用,它可以被看做真个JSP页面的代表.
page对象就是this对象的同义词.
exception对象
exception包装了从先前页面中抛出的异常信息,它通常被用来产生对出错条件的适当响应.
评论