java web 笔记二
来源:互联网 发布:c语言 实例 pdf 编辑:程序博客网 时间:2024/06/07 06:11
jsp全称: java server page
jsp页面要被WEB容器翻译成java类,按照servlet规范,所有jsp翻译生成的类必须实现HttpJspPage接口,而HttpJspPage是servlet的子接口。也就意味着,所有jsp翻译生成的类也会实现servlet接口。所以从这个意义上说,jsp实质是servlet。
jsp重在于页面显示,而servlet重在于逻辑处理。
jsp引擎:
jsp引擎是web容器编写的类,负责将jsp页面翻译成为java类。在web容器下的/conf/web.xml中进行注册。
jsp生命周期:
由JSP引擎将jsp页面翻译成为java代码
将java代码编程成为class字节码文件
加载到容器
由容器实例化
初始化阶段相关的方法是jspInit()
请求到达,调用服务器阶段相关的方法是_jspService()
销毁阶段相关的方法是jspDestroy()
JSP语法和语义:
1. jsp网页主要由元素(element)和模版数据(TemplateData)两个部分组成
模版数据是jsp的静态部分,web容器不处理
元素则是必须由web容器解释
元素都是以xml作为语法基础,并且大小写要一致
2. web容器支持两种不同格式的jsp语法
普通格式和xml兼容格式
普通jsp语法是设计给开发者用的
xml兼容jsp语法是设计用来容易被开发工具使用的
jsp的脚本元素:
声明:<%! %> 定义jsp类的成员变量、静态变量和方法
脚本:<% %> 丰富_jspService()方法,在脚本中定义的变量全部是_jspService()方法内的局部变量。
表达式:<%= %> 注意里面不能有分号; 丰富_jspService()方法,相当于out.print();向页面输出内容。
jsp注释:
1. jsp注释: <%-- --%> 容器不翻译,只在源代码中可见,最为安全。
2. html注释:<!-- --> html注释会通过out.print 输出到客户端。客户端和服务器均可见,最不安全。
3. java注释: // /* */ 给java代码书写的注释,只在服务器端可见。
jsp隐式对象:
jsp引擎翻译的jsp类中,在_jspService()中会定义九个变量,并将这些变量做初始化。由于脚本和表达式实在丰富_jspService()方法,所以可以直接使用这些变量。这些变量称为jsp的隐式对象。
jsp隐式对象有九个:
四个作用域:
1. pageContext:只在当前JSP页面有效
2. request:作用于请求
3. session:作用于会话
4. application:作用于全局
两个输出:
1. response:响应对象
2. out:打印输出流
page:当前对象
config:配置对象
exception:异常对象
jsp指令:
page: 页面指令,功能是设定整个jsp页面属性和相关功能
<%@page contentType="text/html;charset=utf-8" pageEncoding="utf-8"import="java.util.Date"%>
contenType:设置MIME类型和编码集
pageEncoding:设置编码集,mime类型默认为text/html
import:导入该JSP类中所用到的类,如果需要导入多个类,中间以逗号分开。
session:默认为true。表示访问该jsp页面时,会产生会话对象。
errorPage:表示当前jsp页面如果抛出了运行异常,则跳转指定出错页面
isErrorPage:表示该jsp页面为出错处理页面,定义了exception隐式对象,接收异常
include: 表示在JSP编译时插入一个包含文本或代码的文件
<%include file=””%> 叫做指令包含,也叫静态包含。将本身的jsp和包含的jsp放在一起编译,形成一个class文件,所以两个页面不能存在同名变量,指令包涵也只能包含文件
<jsp:include page=”” flush=’true’>
<jsp:paramname = ‘aaa’ value=’fff’>//可以包含参数
</jsp:include>叫做动作包涵,在请求时发生,本身jsp包涵的是另一个jsp执行的结果。形成2个class文件,所以两个页面可以存在同名变量。动作包含可以包含文件,也可以包含servlet输出结果。同时可以传递参数
将客户端所发出来的请求,从一个jsp网页转发到另一个jsp页面:
<jsp:forward page=’relativeURL’>
taglib:
标签指令
建立标签库
文件名为 name.tld 注意后缀必须是tld 但是实质类型依旧是xml
<?xml version="1.0"encoding="utf-8"?>
<taglib>
<tlib-version>1.2</tlib-version>//必须添加
<jsp-version>1.2</jsp-version>//必须添加
<uri>tagTest</uri>//表示别名,在导入的时候就不需要路径名了
<tag>
<name>forward</name>
<tag-class>com.lovo.mark.ForWardTag</tag-class>
<attribute>//为标签中添加属性,可以传参
<name>page</name>
<required>true</required>//表示使用该标签必须添加该属性,否则报错
</attribute>
</tag>
</taglib>
导入标签库:
tagTest
<%@taglib uri="/WEB-INF/myTag.tld"prefix="mm" %>
<%@taglib uri="tagTest "prefix="mm" %>
标准标记库:JSTL
过滤器:
一个中间组件,用于拦截源数据和目的数据之间的消息
过滤二者之间传递的数据
所有匹配到该URL定义的请求,都要被filter-Name中定义的过滤器过滤。
url-pattern可以替换为servlet-name 表示对该servlet的访问都要被filter-name中定义的过滤器过滤
在<filter-mapping>标签中的<url-pattern>子标签,可以加入<url-pattern>标签,也可以加入<servlet-name>标签,表示针对某个指定名称的servlet过滤。
<filter>
<filter-name>index</filter-name>
<filter-class>com.lovo.util.IndexFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>index</filter-name>
<url-pattern>/jsp/index.jsp</url-pattern>
</filter-mapping>
用注解方式@webfilter(路径名)
过滤器类型:
REQUEST:表示直接请求,按请求路径进行过滤。默认方式
FORWARD:表示通过内部转发到达目标资源之前进行过滤。
INCLUDE:表示包含指定资源时,进行过滤
ERROR:表示发生异常时,进行过滤
在<filter-mapping>标签中加入子标签<dispatcher></ dispatcher >来选择过滤类型
配置过滤器链:
当一个请求到达目标资源时,可能会经过多个过滤器。这酒形成了过滤器链。过滤器链执行的顺序是:先经过 <url-pattern> 在经过<servlet-name>标签。如果一个请求经过多个<url-pattern >标签,按部署顺序执行。
EL表达式:
${parameterName}
取值优先从小范围开始,如果要取出发范围的需要如 ${sessionScope.Name}
${键名} 先从小作用域中查找,如果小作用域中有改建对应的值,则取出,并忽略其他作用域。如果小作用域中没有该键,那么再去大作用域中查找。
所以,可以通过作用域,指定需要查找绑定对象。
${requestScope.keyName}
${sessionScope.keyName}:表示在session会话范围中查找对象,如果没有找到。也不会去其他作用域查找
也能做运算
${3+2} 输出5
${3>5} 输出false
<% UserBeanbean = new UserBean("张三",Date.valueOf("1988-01-01"));
request.setAttribute("us",bean);
%>
${us}<br>
${us.userName}
${bean.dog.name} //bean里面有其他的实体bean
取出实体bean的属性实际上也是调用 get方法所以实体bean需要规范,因为是调用get方法,所以属性首字母是大写的话,用el调用需要把大写改为小写。
通过el表达式,从作用域对象中,取出属性时,是调用get方法完成的。所以就算该实体类没有属性,但是提供了get方法,同样可以通过EL表达式取出属性值。另外,实体类的属性,必须规范,一般来说,属性名前两个字母都不能是大写字母。
<welcome-file-list>
表示欢迎页面集合,表示如果在访问web应用程序时。不输入任何路径,默认所访问的页面列表
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
- java web 笔记二
- Java Web学习笔记(二)
- Java Web笔记(二)
- Java Web开发学习笔记之二
- java web学习笔记(二)---程序调试
- Java Web 学习笔记(二)servlet
- 《java web 学习笔记二》:html
- Java for Web学习笔记(二):Web Containers
- JAVA WEB学习笔记(二)-JavaBean学习专题
- Tomcat 与java web 开发技术详解笔记(二)----Servlet
- 深入分析java web 技术内幕_笔记_二
- Java web 开发 笔记 第4章 JavaBean基础二
- Java web 开发笔记 第五章 Servlet编程二
- java web 学习笔记二,注册和登录功能
- Java web学习笔记之二——编写Servlet
- Java笔记--Web前端知识汇总之二 CSS
- Java笔记--Web前端知识汇总之二 DHTML
- Java Web 学习笔记(二) 使用 Maven 创建 WebApp
- js事件触发
- Spring (三)配置文件详解
- Linux学习笔记之命令总结
- Hibernate的关联映射(5)-双向1-N关联
- C语言数据类型转换
- java web 笔记二
- 显式通讯录的联系人信息
- Linux程序运行时找不到动态链接库的原因
- 最小点覆盖 hdu--1054
- 笛卡尔积()
- 对称博弈 POJ 2484
- Android学习之ScrollView中的坑
- mkfs -磁盘格式化-fdisk-磁盘查看
- python面向对象编程学习[1]