jsp 九个隐式对象
ServletConfig config
ServletContext application
HttpServletResponse response
HttpServletRequest request
HttpSession session
JspWriter out
this(Servlet对象) page
Throwable exception
PageContext pageContext 获得其他8个
1. out 对象
jsp中输出数据尽量使用 out 不要使用response直接获得流输出
jsp 页面输出时会自动调用 response.getWriter()
所以在jsp中不要调用 getOutputStream() 也最好不要做下载
重点:
1) 默写9个对象, (具体描述9个对象怎么用)
2) 理解pageContext对象的意义 (获得其他8个对象)
jsp 细节
1. jsp 出错
1) 被翻译的Servlet不能编译,语法错,这时会报告是因为jsp中的哪行导致不能编译
2) 翻译的Servlet 在运行期间出现异常, 报告是jsp的哪行导致的异常
此时会进一步报告导致异常的原因,在Servlet中的哪行出现异常
2. jsp 映射 也是通过servlet 元素
内省
1. javabean
固定写法的java类
1)必须有无参构造函数
2)属性必须私有,我们称为字段
3)提供标准的getter和setter
例: name 字段 的getter: String getName() settter: void setName(String name)
2. 通过反射的方式访问javabean
BeanUtils
getProperty(bean, name, value)
可以支持String到8中基本数据类型转换
其他引用数据类型都需要注册转换器 ConvertUtils.register(Converter, Class)
3. WebUtils 工具类
实现任何request提交的表单封装到对应的javabean
jsp标签
为了移除jsp页面的java代码,sun公司提供了一些内置的标签
我们称为jsp标签,或jsp动作元素
1. <jsp:include> 相当于 RequestDispatcher 对象的页面引入
动态引入方式,在程序运行期间引入,jsp被翻译成两个
include指令也能实现页面的引入,静态引入,将两个jsp翻译成一个Servlet
2. <jsp:forward> 实现请求转发
结合 <jsp:param> 标签传参,自动进行url编码,编码的方式参照request编码
3. <jsp:useBean id class scope> 内省
反射创建javabean,以id作为key存入指定的域
其实在创建之前,会先去域中找,找到了则不创建
4. <jsp:setProperty> 设置属性值
<jsp:setProperty name=”user” property=”username” value=”zs” />
<jsp:setProperty name=”user” property=”username” param=”username” />
<jsp:setProperty name=”user” property=”*” /> 批量
5. <jsp:getProperty> 获得属性值