JSP学习笔记

  • JSP是什么
    Java Server Page

    • 响应客户端请求,根据需求生成相应的HTML/XML等web网页标准。
    • 为服务器端的Java库单元提供了一个接口来服务于 HTTP的应用。
  • JAVA环境变量的作用

    • JAVA_HOME
      顾名思义,就是JAVA所在的地方也就是我们把它安装在了什么地方,之所以设置这样一个变量的目的主要有两个:

      1. 方便,有了这样一个变量以后再进行引用的时候不必输入完整的安装路径,仅需要%JAVA_HOME%即可,并且在更换了JDK的时候,只需要更改JAVA_HOME的值即可,不需要再更改引用的地方。
      2. 这是诸多第三方软件(如eclipse、tomcat、weblogic)引用JAVA的时候默认使用的变量名称。
    • CLASSPATH
      这个变量标明的是JAVA字节码(.class)文件的路径,例如,在import其他类库中的类时,编译器就是通过这个变量的值来寻找类的,一般JDK的.class文件放在JDK/bin下,也就是.:%JAVA_HOME%/lib

    • PATH
      PATH是系统用来寻找相关命令(如cmd,javac)程序的变量值,在JAVA中经常用到的JAVAC一般位于JDK/bin下,也就是.:%JAVA_HOME%/bin
  • JSP文件处理流程

    Servlet,运行在服务器端的小程序。

    • 用户发送HTTP请求给服务器
    • web服务器识别出这是一个对JSP页面的请求,将其传递给JSP引擎(web应用中一个处理JSP的容器)
    • JSP引擎首先根据请求载入相应的JSP文件,然后将他们转化为Servlet,这种转化只是简单地将所有模板改println()语句,并将JSP元素转化为JAVA代码。
    • JSP引擎将Servlet编译成可执行类,并将原始请求传递给Servlet引擎.
    • Web服务器会调用Servlet引擎,然后载入并执行Servlet类。在执行过程中,servlet产生HTML格式的输出并将其置于Response中交给Web服务器。
    • Web服务器将HTML的形式Reponse回给用户。
    • 浏览器解释显示HTML文件。
  • JSP语法

    • <% 代码片段 %>
    • JSP声明:<%! int i = 0; %>
    • JSP表达式:<%= 表达式 %>
    • JSP注释:<%– JSP注释 –>
语法描述
<%– 注释 –>JSP注释,不会被发送到浏览器甚至不会被编译
《!– 注释 –>HTML注释,在浏览器的源码中可以看到
<\%代表静态<%常量
\’在属性中使用单引号
\”在属性中使用双引号
  • JSP指令(用来设置页面信息)
指令描述
<%@ page… %>定义页面的依赖属性,比如脚本语言,error页面,缓存需求等
<%@ include… %>包含其他文件
<%@ taglib… %>引入标签库的定义,可以是自定义的
  • JSP行为

    JSP行为标签使用XML语法结构来控制servlet引擎.它能够动态插入一个文件,重用JavaBean组件,引导用户去另外一个页面,为Java插件产生相关HTML等。

语法描述
jsp:include用于在当前页面包含静态或动态资源
jsp:useBean寻找和初始化一个javaBean组件
jsp:setProperty设置Javabean组件的值
jsp:getProperty将JavaBean的值插入output中
jsp:forward从一个JSP文件传递一个包含用户请求的request对象
jsp:plagin用于在生成的HTML页面中包含Applet和JavaBean对象
jsp:element动态创建一个XML元素
jsp:attribute定义动态创建的XML元素的属性
jsp:body动态创建XML元素的主体
jsp:text用于封装模板数据
  • JSP隐含对象

JSP支持九个自动定义的变量,称为隐含对象。

对象描述
requestHttpServletRequest类的实例
reponseHttpServletReponse类的实例
outPrintWriter类的实例,用于把结果输出到网页上
sessionHttpSession类的实例
applicationServletContext类的实例,与应用上下文有关
configServletConfig类的实例
pageContextPageContext类的实例,提供对jsp页面所有对象和命名空间的访问
page类似于Java中的this关键字
ExceptionException类的对象,代表发生错误的jsp页面对应的异常对象
  • 1.request对象
    request对象是javax.servlet.http.HttpServletRequest类的实例。每当客户端请求一个JSP页面时,JSP引擎就会制造一个新的request对象来代表这个请求,request对象提供了一系列方法来获取HTTP头信息,cookie,HTTP方法等。
  • 2.resoponse对象
    是javax.serclet.http.HttpServletReponse类的实例,当服务器创建request对象时会同时创建用于响应这个客户端的response对象。reponse对象也定义了处理HTTP头模块的接口,通过这个对象,开发者可以添加新的cookies,时间戳,HTTP状态码等等。
  • 3.out对象
    是javax.servlet.jsp.JspWriter类的实例,用来在response对象中写入内容。
    最初的JspWriter对象根据页面是否有缓存来进行不同的实例化操作。可以再page指令中使用buffered=”false”来关闭缓存。JspWriter类包含了大部分java.io.PrintWriter类中的方法。不过,JspWriter新增了一些专为处理缓存而设计的方法,还有就是JspWriter会抛出IOException异常而PrintWriter不会。
方法描述
out.print(dataType, dt)输出Type类型的数据
out.println(dataType, dt)输出Type类型的数据,然后换行
out.flush()刷新输出流
  • session对象
    session对象时javax.servlet.http.HttpSession类的实例。和Java Servlet中的session对象有一样的行为
    session对象用来跟踪在每个客户端请求间的对话。

  • application对象
    application对象直接包装了servlet的ServletContext类的对象。
    这个对象在JSP页面的整个生命周期都代表这个JSP页面,这个对象在JSP初始化时被创建,随着jspDestroy()方法的调用而被移除。
    通过向application中添加属性,则所有组成您web应用的JSP文件都能访问到这些属性。

  • config对象
    config对象是javax.servlet.ServletConfig类的实例。
    这个对象允许开发者访问Servlet或者JSP引擎的初始化参数,比如文件路径等。

config.getServletName();
  • pageContext对象
    用来代表整个JSP页面。
    这个对象主要用来访问页面信息。同是过滤掉大部分实现细节。
    这个对象存储了request对象和response对象的引用。application对象,config对象,session对象,out对象可以通过访问这个对象的属性来导出。

pageContext对象也包含了传给JSP页面的指令信息,包括缓存信息,ErrorPage URL,页面scope等。

PageContext类定义了一些字段,包括PAGE_SCOPE,REQUEST_SCOPE,SESSION_SCOPE, APPLICATION_SCOPE。它也提供了40余种方法,有一半继承自javax.servlet.jsp.JspContext 类。

其中一个重要的方法就是removeArribute(),它可接受一个或两个参数。比如,pageContext.removeArribute(“attrName”)移除四个scope中相关属性,但是下面这种方法只移除特定scope中的相关属性

  • page对象
    这个对象就是页面实例的引用,它可以被看做是整个JSP页面的代表。
    page对象就是this对象的同义词。

  • exception对象
    Exception对象包装了从先前页面抛出的异常信息,它通常被用来产生对出错条件的适当相应。

  • JSP客户端请求
    当浏览器请求一个网页时,它会向网络服务器发送一系列不能被直接读取的信息,因为这些信息是作为HTTP信息头的一部分来传送的。

  • JSP服务器响应
    Response响应对象主要将JSP容器处理后的结果传回客户端。可以通过response变量设置HTTP的状态和向客户端发送数据

  • HTTP状态码

  • JSP表单处理

    • GET方法
    • POST方法
    • JSP读取表单数据
      • getparameter():使用request.getParameter()来获取表单参数的值。
      • getParameterValues():获得如checkbox类(名字相同,但值有多个)的数据。
      • getParameterNames():该方法可以取得所有变量的名称。该方法返回一个Emumeration.
      • getInputStream():获取来自客户端的二进制数据流。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值