您的位置:首页 > Web前端 > JavaScript

JSP学习笔记

2015-09-06 21:37 531 查看
JSP是什么

Java Server Page

响应客户端请求,根据需求生成相应的HTML/XML等web网页标准。

为服务器端的Java库单元提供了一个接口来服务于 HTTP的应用。

JAVA环境变量的作用

JAVA_HOME

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

方便,有了这样一个变量以后再进行引用的时候不必输入完整的安装路径,仅需要%JAVA_HOME%即可,并且在更换了JDK的时候,只需要更改JAVA_HOME的值即可,不需要再更改引用的地方。

这是诸多第三方软件(如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():获取来自客户端的二进制数据流。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: