WEB的概念
WWW(World Wide Web)
URL(Uniform Resource Locator)
HTTP(Hypertext Transport Protocol)
HTML(Hyper Markup language)
C/S(Client/Server)
B/S(Browser/Server)
HTTP协议:
HTTP的URL格式: http://host[":"port][path]
HTTP协议请求: 请求行、请求报头、请求体
请求行: Method Request-URL HTTP-Version CRLF
请求报头: Accept、 User-Agent
请求体: 提交的参数内容
HTTP协议响应: 状态行、响应报头、响应正文
状态行: HTTP-Version、Status-Code、Reason-phrase CRLF
响应报头: Allow、Content-Encoding、Content-Length、、、、
响应正文: 返回资源的内容
WEB开发环境配置:JDK、Eclipse、Tomcat、MySQL
JSP: Java Server Pages
JSP基本语法:HTML页面内容、JSP注释、JSP指令、JSP脚本元素、JSP动作元素
JSP注释:
HTML注释: <!-- 注释内容,HTML的注释 -->
JSP注释: <%-- 注释内容,JSP的注释 --%>
在JSP脚本元素中还可以使用JAVA注释 <%! JSP脚本内容 //java注释 %>
JSP指令: page、include、taglib
page指令: <%@ page 属性1="属性值1" 属性2="属性值2" ...... %>
共有13个属性: language、extends、import、session、buffer、autoFlush、isThreadSafe、info、ErrorPage、isErrorPage、contentType、pageEncoding、isELIgnored
include指令: <%@ include file="被包含的文件的地址" %>
可以包含文本文件、HTML文件、JSP文件
taglib指令: <%@ taglib url="tagLibraryURl" prefix="tagPrefix" %>
<%@ tarlib url=http://java.sun.com/jsp/jstl/core prefix="c" %>
JSP脚本元素: JSP声明、JSP表达式、JSP Scriptlet
JSP声明: <%! 变量或方法定义 %>
JSP表达式: <%= 表达式 %>
JSP Scriptlet: <% Java代码 %>
JSP动作元素
<jsp:include page="relative URL" flush="true|false></jsp:include>
<jsp:forward page="转向页面的URL地址" ></jsp:forward>
<jsp:param name="参数名" value="参数对应的值" /> 与jsp:include、 jsp:forward、 jsp:plugin结合使用
<jsp:plugin> 将服务器端的JavaBean或Applet下载到客户端使用
<jsp:useBean id="beanInstanceName" class="classname" scope="page|request|session|application" />
<jsp:setProperty name="beanInstanceName" property="propertyName" value="value" />
<jsp:getProperty name="beanInstanceName" property="propertyName" />
JSP内置对象
request ==> javax.servlet.ServletRequest ==> request
response ==> javax.servlet.ServletResponse ==> page
pageContext ==> javax.servlet.jsp.pageContext ==> session
session ==> javax.servlet.http.HttpSession ==> page
application ==> javax.servlet.ServletContext ==> application
out ==> javax.servlet.jsp.JspWriter ==> page
config ==> javax.servlet.ServletConfig ==> page
page ==> java.lang.Object ==> page
exception ==> java.lang.Throwable ==> page
Servlet的生命周期:
1>加载和实例化 -- 容器通过反射加载实例
2>初始化 -- init()
3>执行 -- service()
4>清理 -- destroy()
Servlet常用接口
public interface Servlet
这个接口是所有Servlet必须直接或间接实现的接口。它定义了以下方法:
init(ServletConfig config) 用于初始化Servlet
destory() 销毁Servlet
getServletInfo() 获得Servlet的信息
getServletConfig() 获得Servlet配置相关信息
service(ServletRequest req,ServletResponse res) 运行应用程序逻辑的入口点。
public abstract class GenericServlet implements Servlet,ServletConfig,java.io.Serializable
GenericServlet提供了对Servlet接口的基本实现。它是一个抽象类,它的service()方法是一个抽象的方法,
GenericServlet的派生类必须直接或间接实现这个方法。
public abstract class HttpServlet extends GenericServlet implements java.io.Serializable
HttpServlet类是针对使用HTTP协议的WEB服务器的Servlet类。HttpServlet类通过执行Servlet接口,能够提供HTTP协议的功能。
HttpServlet的子类必须实现以下方法中的一个。
doGet 如果Servlet支持HTTP GET请求,用于HTTP GET请求。
doPost 如果Servlet支持HTTP POST请求,用于HTTP POST请求。
doPut 如果Servlet支持HTTP PUT请求,用于 HTTP PUT请求。
doDelete 如果Servlet支持HTTP DELETE请求,用于HTTP DELETE请求。
init和destory 管理Servlet占用的资源。如果需要管理Servlet生命周期内所持有资源,可以重载这二个方法
getServletInfo 获得Servlet自身的信息。
javax.servlet.ServletConfig
该接口代表了Servlet的配置。主要有以下方法
getInitParameter(String name) 返回特定名字的初始化参数。
getInitParameterNames() 返回所有的初始化参数的名字。
getServletContext() 返回Servlet的上下文对象的引用。
Servlet异常相关
public class ServletException extends Exception
它包含几个构造方法和一个获得异常原因的方法,这个方法如下:
getRootCause() 返回造成这个ServletException的原因
public class UnavailableException extends ServletException
当Servlet或者 Filter暂时或者永远不能使用时,就会招聘这个异常。
请求和响应相关
HttpServletRequest
public interface HttpServletRequest
这个接口 中最常用的方法就是获得请求中的参数 。
该内建对象是HttpServletRequest的一个实例。
getCookies() 获得客户端发送的Cookie。返回一个数组,该数组包含这个请求中当前的所有 Cookie。如果这个请求中没有 Cookie,返回 一个空数组。
getSession() 返回和客户端关联的Session。如果没有,则为空。
getSession(boolean create) 和上一个方法类似,不过,如果没有给客户端分配Session,则会创建一个新的Session并返回。
getParameter(String name) 获得请求中指定参数的值,如果没有,则返回空
getParameterValues(String name) 返回请求中名为name的参数值,这个值往往是checkbox或者select控件提交的,获得的值是一个String数组!
HttpServletResponse
public interface HttpServletResponse extends ServletResponse
它代表了对客户端的HTTP响应,主要有以下方法
addCookie(Cookie cookie) 在响应中添加一个Cookie
encodeURL(String url) 使用 URL和一个SessionId重写这个URL。
sendRedirect(String lication) 把响应送到另一个页面 或Servlet进行处理
setContentType(String type) 设置响应的MIME类型
setCharacterEncoding(String charset) 设置响应的字符编码
会话跟踪
HttpSession
public interface HttpSeesion
常用以下方法
getCreateTime() 返回session的创建时间,最小单位这千分之一秒
getId() 返回唯一的标识,每个session的ID是不同的
getLastAccessedTime()返回和当前session对象相关的客户端最后发送的请求时间
getMaxInactiveInterval() 返回决时间,负值表示session永远不会过期。它的值为session的生存时间
getValue(String name) 返回指定的Session上的对象。如果不存在返回空
getValueNames() 以一个数组返回绑定到Session上的所有数据的名称 。
invalidate();public void invalidate() 这个方法 会终止这个Session。所有绑定到这个Session上的数据都会被清除。
putValue(String name ,Object value) 以给定名字绑定给定的对象到Session中,如果已经存在会覆盖。这时会调用HttpSessionBindingListener接口的valueBound方法。
removeValue(String name) 取消绑定
setMaxInactiveInterval(Int interval) 设置一个秒数,这个秒数表示客户端在不发送请求时,Session被 Servlet引擎维持的最长时间。
Servlet上下文
ServletContext
public interface ServletContext
在服务器上使用 session对象维持与单个客户相关的状态,而当为多个用户的WEB应用维持一个状态时,则就使用 Servlet环境(Context)。以下是常用方法
getAttribute(String name) 获得ServletContext中名称为name的属性
getContext(String uripath) 返回给定的URIPATH的应用的Servlet上下文,
removeAttribute(String name) 删除名字为name的属性
setAttribute(String name,Object obj) 在ServletContext中设置一个属性
Servlet协作
Servlet协作是RequestDispatcher接口,它可以把一个请求转发到另一个Servlet。
public interface RequestDispatcher
主要有二方法
forward(ServletRequest,ServletResponse response) 把请求转发到服务器上的另一个资源
include(ServletRequest,ServletResponse response) 把服务器上的另一个资源包含到响应中
过滤
Filter
public interface Filter
它是Filter必须 实现的接口,包含以下方法。
init(FilterConfig filterConfig) 初始化Filter
doFilter(ServletRequest,ServletResponse response,FilterChain chain) Filter的业务方法就在这里实现 。
destory() 释放Filter占用的资源 。
FilterChain
public interface FilterChain
它是代码的过滤链,通过这个接口把过滤的任务在不同的Filter之间转移
方法:
doFilter(ServletRequest,ServletResponse response)
通过这个方法来调用下一个Filter。如果没有下一个,则调用 目标资源
FilterConfig
public interfacr FilterConfig
它代表了Filter的配置。和Servlet一样,Filter也有一些配置信息。方法:
getFilterName()返回Filter的名字 。
getInitParameter(String name) 获得名称为name的初始化对数
getServletContext() 返回这个Filter所在的Servlet上下文对象。
getInitParameterNames() 获得Filter配置中的所有初始化参数的名字。
WWW(World Wide Web)
URL(Uniform Resource Locator)
HTTP(Hypertext Transport Protocol)
HTML(Hyper Markup language)
C/S(Client/Server)
B/S(Browser/Server)
HTTP协议:
HTTP的URL格式: http://host[":"port][path]
HTTP协议请求: 请求行、请求报头、请求体
请求行: Method Request-URL HTTP-Version CRLF
请求报头: Accept、 User-Agent
请求体: 提交的参数内容
HTTP协议响应: 状态行、响应报头、响应正文
状态行: HTTP-Version、Status-Code、Reason-phrase CRLF
响应报头: Allow、Content-Encoding、Content-Length、、、、
响应正文: 返回资源的内容
WEB开发环境配置:JDK、Eclipse、Tomcat、MySQL
JSP: Java Server Pages
JSP基本语法:HTML页面内容、JSP注释、JSP指令、JSP脚本元素、JSP动作元素
JSP注释:
HTML注释: <!-- 注释内容,HTML的注释 -->
JSP注释: <%-- 注释内容,JSP的注释 --%>
在JSP脚本元素中还可以使用JAVA注释 <%! JSP脚本内容 //java注释 %>
JSP指令: page、include、taglib
page指令: <%@ page 属性1="属性值1" 属性2="属性值2" ...... %>
共有13个属性: language、extends、import、session、buffer、autoFlush、isThreadSafe、info、ErrorPage、isErrorPage、contentType、pageEncoding、isELIgnored
include指令: <%@ include file="被包含的文件的地址" %>
可以包含文本文件、HTML文件、JSP文件
taglib指令: <%@ taglib url="tagLibraryURl" prefix="tagPrefix" %>
<%@ tarlib url=http://java.sun.com/jsp/jstl/core prefix="c" %>
JSP脚本元素: JSP声明、JSP表达式、JSP Scriptlet
JSP声明: <%! 变量或方法定义 %>
JSP表达式: <%= 表达式 %>
JSP Scriptlet: <% Java代码 %>
JSP动作元素
<jsp:include page="relative URL" flush="true|false></jsp:include>
<jsp:forward page="转向页面的URL地址" ></jsp:forward>
<jsp:param name="参数名" value="参数对应的值" /> 与jsp:include、 jsp:forward、 jsp:plugin结合使用
<jsp:plugin> 将服务器端的JavaBean或Applet下载到客户端使用
<jsp:useBean id="beanInstanceName" class="classname" scope="page|request|session|application" />
<jsp:setProperty name="beanInstanceName" property="propertyName" value="value" />
<jsp:getProperty name="beanInstanceName" property="propertyName" />
JSP内置对象
request ==> javax.servlet.ServletRequest ==> request
response ==> javax.servlet.ServletResponse ==> page
pageContext ==> javax.servlet.jsp.pageContext ==> session
session ==> javax.servlet.http.HttpSession ==> page
application ==> javax.servlet.ServletContext ==> application
out ==> javax.servlet.jsp.JspWriter ==> page
config ==> javax.servlet.ServletConfig ==> page
page ==> java.lang.Object ==> page
exception ==> java.lang.Throwable ==> page
Servlet的生命周期:
1>加载和实例化 -- 容器通过反射加载实例
2>初始化 -- init()
3>执行 -- service()
4>清理 -- destroy()
Servlet常用接口
public interface Servlet
这个接口是所有Servlet必须直接或间接实现的接口。它定义了以下方法:
init(ServletConfig config) 用于初始化Servlet
destory() 销毁Servlet
getServletInfo() 获得Servlet的信息
getServletConfig() 获得Servlet配置相关信息
service(ServletRequest req,ServletResponse res) 运行应用程序逻辑的入口点。
public abstract class GenericServlet implements Servlet,ServletConfig,java.io.Serializable
GenericServlet提供了对Servlet接口的基本实现。它是一个抽象类,它的service()方法是一个抽象的方法,
GenericServlet的派生类必须直接或间接实现这个方法。
public abstract class HttpServlet extends GenericServlet implements java.io.Serializable
HttpServlet类是针对使用HTTP协议的WEB服务器的Servlet类。HttpServlet类通过执行Servlet接口,能够提供HTTP协议的功能。
HttpServlet的子类必须实现以下方法中的一个。
doGet 如果Servlet支持HTTP GET请求,用于HTTP GET请求。
doPost 如果Servlet支持HTTP POST请求,用于HTTP POST请求。
doPut 如果Servlet支持HTTP PUT请求,用于 HTTP PUT请求。
doDelete 如果Servlet支持HTTP DELETE请求,用于HTTP DELETE请求。
init和destory 管理Servlet占用的资源。如果需要管理Servlet生命周期内所持有资源,可以重载这二个方法
getServletInfo 获得Servlet自身的信息。
javax.servlet.ServletConfig
该接口代表了Servlet的配置。主要有以下方法
getInitParameter(String name) 返回特定名字的初始化参数。
getInitParameterNames() 返回所有的初始化参数的名字。
getServletContext() 返回Servlet的上下文对象的引用。
Servlet异常相关
public class ServletException extends Exception
它包含几个构造方法和一个获得异常原因的方法,这个方法如下:
getRootCause() 返回造成这个ServletException的原因
public class UnavailableException extends ServletException
当Servlet或者 Filter暂时或者永远不能使用时,就会招聘这个异常。
请求和响应相关
HttpServletRequest
public interface HttpServletRequest
这个接口 中最常用的方法就是获得请求中的参数 。
该内建对象是HttpServletRequest的一个实例。
getCookies() 获得客户端发送的Cookie。返回一个数组,该数组包含这个请求中当前的所有 Cookie。如果这个请求中没有 Cookie,返回 一个空数组。
getSession() 返回和客户端关联的Session。如果没有,则为空。
getSession(boolean create) 和上一个方法类似,不过,如果没有给客户端分配Session,则会创建一个新的Session并返回。
getParameter(String name) 获得请求中指定参数的值,如果没有,则返回空
getParameterValues(String name) 返回请求中名为name的参数值,这个值往往是checkbox或者select控件提交的,获得的值是一个String数组!
HttpServletResponse
public interface HttpServletResponse extends ServletResponse
它代表了对客户端的HTTP响应,主要有以下方法
addCookie(Cookie cookie) 在响应中添加一个Cookie
encodeURL(String url) 使用 URL和一个SessionId重写这个URL。
sendRedirect(String lication) 把响应送到另一个页面 或Servlet进行处理
setContentType(String type) 设置响应的MIME类型
setCharacterEncoding(String charset) 设置响应的字符编码
会话跟踪
HttpSession
public interface HttpSeesion
常用以下方法
getCreateTime() 返回session的创建时间,最小单位这千分之一秒
getId() 返回唯一的标识,每个session的ID是不同的
getLastAccessedTime()返回和当前session对象相关的客户端最后发送的请求时间
getMaxInactiveInterval() 返回决时间,负值表示session永远不会过期。它的值为session的生存时间
getValue(String name) 返回指定的Session上的对象。如果不存在返回空
getValueNames() 以一个数组返回绑定到Session上的所有数据的名称 。
invalidate();public void invalidate() 这个方法 会终止这个Session。所有绑定到这个Session上的数据都会被清除。
putValue(String name ,Object value) 以给定名字绑定给定的对象到Session中,如果已经存在会覆盖。这时会调用HttpSessionBindingListener接口的valueBound方法。
removeValue(String name) 取消绑定
setMaxInactiveInterval(Int interval) 设置一个秒数,这个秒数表示客户端在不发送请求时,Session被 Servlet引擎维持的最长时间。
Servlet上下文
ServletContext
public interface ServletContext
在服务器上使用 session对象维持与单个客户相关的状态,而当为多个用户的WEB应用维持一个状态时,则就使用 Servlet环境(Context)。以下是常用方法
getAttribute(String name) 获得ServletContext中名称为name的属性
getContext(String uripath) 返回给定的URIPATH的应用的Servlet上下文,
removeAttribute(String name) 删除名字为name的属性
setAttribute(String name,Object obj) 在ServletContext中设置一个属性
Servlet协作
Servlet协作是RequestDispatcher接口,它可以把一个请求转发到另一个Servlet。
public interface RequestDispatcher
主要有二方法
forward(ServletRequest,ServletResponse response) 把请求转发到服务器上的另一个资源
include(ServletRequest,ServletResponse response) 把服务器上的另一个资源包含到响应中
过滤
Filter
public interface Filter
它是Filter必须 实现的接口,包含以下方法。
init(FilterConfig filterConfig) 初始化Filter
doFilter(ServletRequest,ServletResponse response,FilterChain chain) Filter的业务方法就在这里实现 。
destory() 释放Filter占用的资源 。
FilterChain
public interface FilterChain
它是代码的过滤链,通过这个接口把过滤的任务在不同的Filter之间转移
方法:
doFilter(ServletRequest,ServletResponse response)
通过这个方法来调用下一个Filter。如果没有下一个,则调用 目标资源
FilterConfig
public interfacr FilterConfig
它代表了Filter的配置。和Servlet一样,Filter也有一些配置信息。方法:
getFilterName()返回Filter的名字 。
getInitParameter(String name) 获得名称为name的初始化对数
getServletContext() 返回这个Filter所在的Servlet上下文对象。
getInitParameterNames() 获得Filter配置中的所有初始化参数的名字。