JAVAWEB系列2-1
Jsp基本使用
El表达式
JSTL
Listener
Filter
Ajax
JDBC
Junit

JSP基本的使用:

JSP:java server pages
定义:是一种***页技术,将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容
JSP的指令:用来设置整个JSP页面相关的属性,如网页的编码方式和脚本语言。
Page指令:定义网页依赖属性,比如脚本语言、error页面、缓存需求等等
基本的指令:
    Session:指定jsp页面是否使用session
    Language:定义jsp页面所用的脚本语言
    Contentype:指定jsp页面的MIME类型和字节编码
    PageEncoding:把jsp翻译为utf编码代码的java代码的时候的编码
    Import:导入要使用的java类
    Errorpage:当jsp页面出现错误的时候转向的错误页面
    IdErrorage:指定当前页面是否可以作为另一个jsp页面的错误处理页面
taglib指令:用来声明此JSP文件使用了自定义标签,同时引用所指定的标签库并设置标签库的前缀。
    使用:<%@ taglib uri="URIToTagLibrary" prefix="tagprefix"%>
        uri属性用来指定标签库的存放位置
    prefix属性用来指定该标签库使用的前缀。
Include指令:包含其他文件    
    使用:<%@ include file="文件相对 url 地址" %>

动作指标:在进行请求处理阶段起作用

基本的语法:<jsp:action_name attribute="value" />
    Jsp:include:在页面被请求的时候,引入第一个文件
    Jsp:forward:把请求转换到另外一个页面
    Jsp:useBean:寻找或者实例化一个javabean
    Jsp:setProperty:设置javabean的属性
    Jsp:getProperty:获取某个javaBean的属性
    Jsp:param:用于传递参数
使用方法:<jsp:param name="name" value="value"/>
    name必须是字符串,不接受字符串

内置对象

在JSP页面系统中已经默认内置的Java对象,这些对象不需要开发人员显式声明即可使用
对象分类:
    输出输入对象:request对象、response对象、out对象

Requests常用方法:

    request.getRequestURL(): 浏览器发出请求时的完整URL,包括协议 主机名 端口(如果有)"
request.getRequestURI(): 浏览器发出请求的资源名部分,去掉了协议和主机名"
request.getQueryString(): 请求行中的参数部分,只能显示以get方式发出的参数,post方式的看不到
request.getRemoteAddr(): 浏览器所处于的客户机的IP地址
request.getRemoteHost(): 浏览器所处于的客户机的主机名
request.getRemotePort(): 浏览器所处于的客户机使用的网络端口
request.getLocalAddr(): 服务器的IP地址
request.getLocalName(): 服务器的主机名
request.getMethod(): 得到客户机请求方式一般是GET或者POST

通信控制对象

pageContext对象、session对象、application对象

Servlet对象

page对象、config对象

错误处理对象

exception对象

四大作用域:

定义:在web应用中 , JSP创建的对象有一定的生存周期 , 可以被其它组件或其它对象访问 , 对象的生存周期及可访问性称为作用域
分类:<作用域由大至小>
Application(应用域):所有用户共享 
    整个应用是指从应用启动,到应用结束
Session(会话域):一次请求访问的多个请求间 
    从用户打开浏览器开始,到用户关闭浏览器这中间的过程。
Request(请求域):一次请求访问多个资源 
    request里的变量可以跨越forward前后的两页。但是只要刷新页面,它们就重新计算了
Pagecontext(页面域):
    仅限于用户请求的当前页面               

request和page的生命周期都是短暂的,它们之间的区别:一个request可以包含多个page页(include,forward及filter)

Jsp的跳转

客户端跳转:地址栏发生了变化    
    客户端发出请求,得到要跳转的资源,于是再发出一次请求得到最终的资源,客户端进行了两次请求
    <% response.sendRedirect("index.jsp"); 
服务器端跳转:地址栏发生不改变
    当客户端请的资源没有回应以后,发现请求的文件要进行跳转,于是服务器自己进行跳转,返回跳转以后的资源,客户端只进行了一次请求
    <jsp :foreward  page=”index.jsp”/>
    request.getRequestDispatcher("index.jsp").forward(request, response);

Context的使用

Pagecontext:
    设定:<% pageContext.setAttribute("name","hct");%>
    获取:<%=pageContext.getAttribute("name")%>
    在一个页面的时候,可以直接获取。不是一个界面的时候,需要使用include,才能获取。
RequestContext:
    设定:<% request.setAttribute("name","hct");%>
    获取: <%=request.getAttribute("name") %>
    结合跳转,实现内容的传递
服务端跳转:因为是同一次请求,所以可以获取到内容    
客户端跳转:因为进行了多次请求,故不可以获取到内容
SessionContext:
    设定:<% session.setAttribute("name","hct");%>
    获取:<%=session.getAttribute("name") %>
    只有再同一个用用户之间进行数据的传递
ApplicationContext:
    设定:<% application.setAttribute("name","hct");%>
    获取:<% application.setAttribute("name","hct");%>
    全局设定,所有用户均可以使用