《一头扎进Jsp&servlet》学习笔记
第一章 问候JSP&SERVLET他大爷
第一节 Jsp概述
百度百科Jsp
一种动态网页技术,区别于静态HTML网页
第二节 B/S和C/S
C/S 胖客户端
B/S 瘦客户端
第三节 B/S运行原理
第四节 Tomcat服务器简介及安装
第五节 实例:问候他大爷
JSP实例
问候大爷,导出war包部署到tomcat服务器上。
第二章 JSP基本语法
第一节:page 指令介绍
Language : 用来定义要使用的脚本语言;
contentType:定义 JSP 字符的编码和页面响应的 MIME 类型;
pageEncoding:Jsp 页面的字符编码
第二节 scripltlet 标签
通过 scriptlet 标签我们可以在 Jsp 里嵌入 Java 代码;
第一种:<%! %> 我们可以在里面定义全局变量、方法、类;
第二种:<% %> 我们可以在里面定义局部变量、编写语句;
第三种:<%= %> 我们可以在里面输出一个变量或一个具体内容;
第三节 JSP注释
<!-- --> Html 注释 客户端可见
<%-- --%> Jsp 注释 客户端不可见
// java 单行注释
/* */ java 多行
第四节 JSP包含指令
<%@ include file=”要包含的文件”%>
静态包含:先包含,把要引入的文件的代码全部引入进相应位置,后编译处理;
<jsp:include page=”要包含的文件”>
动态包含 先编译处理引入文件的代码,后包含子文件的结果;
以后开发用动态包含;
第五节 JSP跳转指令
<jsp:forward>
<jsp:param value=”” name=””>
</jsp:forward>
服务器内部跳转,可带参数。
第三章 JSP 九大内置对象及四个作用域
第一节:JSP 九大内置对象及四大作用域概述
在 Jsp 开发中,Jsp 提供了 9 个内置对象,这些内置对象将由容器为用户进行实例化,用户直接使用即可。这9 个内置对象分别是:pageContext,request,response,session,application,config,out,page,exception;
常用的是前面 5个,需要熟练掌握;
在 Jsp 开发中,可以保存数据,Jsp 提供了四种数据保存范围;分别是 page,request,session,application
第二节:Jsp四大作用域
Page 范围:只在一个页面中保存数据; javax.servlet.jsp.PageContext(抽象类)
Request 范围:只在一个请求中保存数据; javax.servlet.http.HttpServletRequest(接口)
Session 范围:在一次会话范围(浏览器不关闭)中保存数据,仅供单个用户使用;jlet.http.HttpSession(接口)
Application 范围:在整个服务器上保存数据,所有用户共享;javax.servlet.ServletContext(接口)
Ps:Request可以获取请求的头信息 代码如下:
// 获取头信息
<%
Enumeration enu=request.getHeaderNames();
while(enu.hasMoreElements()){
String headerName=(String)enu.nextElement();
String headerValue=request.getHeader(headerName);
%>
<h4><%=headerName %> <%=headerValue %></h4>
<%
}
%>
第三节:response 对象
Response 内置对象和 request 内置对象是相对应的,response 内置对象用于响应客户请求,向客户端输出信息;
javax.servlet.HttpServletResponse
1,自动刷新应用
2,页面重定向应用 客户端跳转
3,操作 cookie 应用
post get方法比较: post 放数据包里 get放Url后面。get数据量小,不安全。
4,cookie 和 session 的比较 cookie 信息是存客户端的,session 信息是存服务器的。
第四节 out对象
out 内置对象主要用来向客户端输出各种类型的数据,同时还可以管理应用服务器上的输出缓冲区。所以 out 内置对象的方法是向客户端输出数据和管理缓冲区;
out对象底层为 javax.servlet.jsp.JspWriter 抽象类
第五节:config 对象
Config 内置对象是 JSP 页面通过 JSP 容器进行初始化时被传递的对象。javax.servlet.ServletConfig 。在 Servlet初始化的时候,JPS 引擎通过 config 向它传递信息。这种信息可以是属性名和属性值匹配的参数,也可以是通过ServletContext 对象传递的服务器的有关信息;
第六节:exception 对象
Exception 内置对象用来处理 JSP 文件在执行时发生的所有异常,它是 java.lang.Throwable 类的一个对象。
第七节:pageContext 对象
pageContext 内置对象是一个比较特殊的对象。它相当于页面中所有对象功能的集合,即用它可以访问到本页面中所有对象。pageContext 内置对象由 Jsp 容器创建并初始化,pageContext 对象提供了对 JSP 页面所有对象及控件的访问。
第四章 JavaBean 组件
第一节:Javabean 组件引入
JavaBean 是使用 Java 语言开发的一个可重用的组件,在 JSP 开发中可以使用 JavaBean 减少重复代码,使整个JSP 代码的开发更简洁。
第二节:jsp:useBean 创建 javabean
<jsp:useBean id="实例化对象名称" scope="保存范围" class="类完整名称"/>
Scope,一共有 page,request,session 和 application 4 个属性范围,默认是 page;
第三节:jsp:setProperty 设置 javabean 属性
<jsp:setProperty property="属性名称" name="实例化对象的名称" value="属性值" param="参数名称"/>
Property=”*” 自动匹配
第四节:jsp:getProperty 获取 javabean 属性值
<jsp:getProperty property="属性名称" name="实例化对象的名称"/>
第五节:javabean 的保存范围
Javabean 的保存范围有 page,request,session.application,默认是 page.
第六节:javabean删除
Page 范围:pageContext.removeAttribute(“javaBean Name”);
request 范围:request.removeAttribute(“javaBean Name”);
session 范围:session.removeAttribute(“javaBean Name”);
application 范围:application.removeAttribute(“javaBean Name”);
第五章 Servlet开发
第一节:servlet 引入
百度百科:servlet
1.运行在服务器端的程序
2.处理用户的请求
第二节:问候 servlet 他大爷
第三节:servlet 生命周期
Servlet 的生命周期,简单的概括这就分为四步:servlet 类加载--->实例化--->服务--->销毁
Servlet是单实例的,servlet的init方法只执行一次。
第四节:客户端跳转 VS 服务器端跳转
- 在 Servlet 中获取 session,application
- 客户端跳转 response.sendRedirect("目标地址");
- 服务器跳转:RequestDispatcher rd=request.getRequestDispatcher("目标地址"); rd.forward(request, response);
第五节:Jsp&Servlet 用户登录功能实现
思路:建个jsp表单post请求到LoginServlet,LoginServlet接到表单请求的参数用DAO到数据库里面根据参数来查,如果能查到则请求转发或重定向到成功页面,否则则返回登录页面,
提示错误。用到EL表达式。
第六节:Servlet 过滤器
过滤用户请求
第七节:Servlet 监听器
监听 web 事件;如 application,session,request
第六章 EL 表达式
第一节:EL 表达式简介
表达式语言(Expression Language,EL)
百度百科:el 表达式
EL的目的就是为了使JSP写起来更加简单,它提供了在JSP中简化表达式的方法。
EL表达式由$符号来引
第二节:EL 表达式内置对象
第三节:EL 表达式访问 4 种范围属性
寻找值的顺序:page->request->session->application
第四节:EL 表达式接收请求参数
Param:单个参数
paramValues:一组参数
第五节:EL 表达式对象操作
第六节:EL 表达式集合操作
第七节:EL 表达式运算符操作
算数运算符,关系运算符,逻辑运算符;
三目运算符;
Empty 关键字;
第七章 Jsp 自定义标签
第一节:Jsp 自定义标签简介
Jsp自定义标签在功能上逻辑上与javaBean 类似,都封装Java 代码。自定义标签是可重用的组件代码,并且允许开发人员为复杂的操作提供逻辑名称。
第二节:问候自定义标签他大爷
1.新建HelloTag类,继承TagSupport类.
2.配置tld描述文件.
3.新建HelloWorldTag.jsp文件,引入自定义标签
第三节:自定义有属性的标签
1.类里面加属性
2.tld里面加描述属性
3.新建HelloWorldTag2.jsp文件,引入自定义标签.
第四节:自定义有标签体的标签
例子:创建遍历标签
第五节:简单标签
由于传统标签过于繁琐,不利于标签技术的推广。 SUN公司为降低标签技术的学习难度,在JSP 2.0中定义了简单标签,需继承SimpleTagSupport类。
this.getJspBody().invoke(null);可以不断地调用页面,使代码变的简单
第八章 Jsp标准标签库
第一节 JSTL引入
JSTL(JSP Standard Tag Library , JSP 标准标签)
JSTL(JavaServer Pages Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,是由apache的jakarta小组来维护的。JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。在JSP 2.0中也是作为标准支持的。
第二节 问候 JSTL 他大爷
1.先引入jstl.jar和standard.jar两个jar包。
2.在jsp文件加入这句话,引入核心标签库
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
3.使用核心标签编写jsp文件
第三节 JSTL核心标签库
c:out 内容输出标签;
c:set 用来设置 4 种属性范围值的标签;
c:remove 用来删除指定范围中的属性;
c:catch 用来处理程序中产生的异常;
c:if 用来条件判断;
c:choose、c:when、c:otherwise 用来多条件判断;
c:forEach 用来遍历数组或者集合;
c:fortokens 分隔输出;
c:import 导入页面;
c:url 生成一个 url 地址;
c:redirect 客户端跳转
第四节:JSTL 国际化标签库
fmt:setLocale 设定用户所在的区域;
fmt:formatDate 对日期进行格式化;
fmt:requestEncoding 设置所有的请求编码;
fmt:bundle fmt:message 读取国际化资源;
fmt:formatNumber 格式化数字;
fmt:timeZone 设置临时时区;
第五节:JSTL SQL 标签
Sql:setDataDource 设置 JDBC 连接;
sql:query 数据库查询操作;
Sql:update 数据库添加,修改,删除操作;
Sql:transaction 数据库事务;
第六节:JSTL XML 标签
x:parse 解析 xml;
x:out 输出 xml 文件的内容;
x:set 把 xml 读取的内容保存到指定的属性范围;
x:if 判断指定路径的内容是否符合判断的条件;
x:choose x:when x:otherwise 多条件判断;
x:forEach 遍历