JSP总结

今天和大家來聊聊jsp的一些知識,算是自己的一個總結吧。

jsp的英文全稱是(java server page)是由sun公司主導,多個公司聯合一起開發的一個服務器的網頁技術。jsp具有簡介的特點更加的容易的使用

jsp的語法介紹:

jsp的語法都是以<%开始%结尾>来进行设计和表示的。首先我们来看看jsp的编译过程,jsp最终会被编译成为一个servelt实例,然后去调用对应的方法。jsp是运行在我们的web服务器上面的,最基本的,最常见的web服务器就是我们的tomcat服务器,是开源免费的。是Apache旗下的,最后被sun公司收购。

下面我们来看看jsp的运行机制

1.首先我们的浏览器发送一个http请求。

2.web服务器识别一个jsp请求,并且将该请求传递给jsp引擎。和我们的web容器协同工作.

3.jsp引擎载入我们的jsp文件,并且将我们的jsp文件转化为一个servelt类

4.将上面的servelt类进行编译,并且生成一个servelt实例。该实例调用httpservelt的相对应的方法 ,生成相对应的html文件。并且

将其嵌入到我们的HTTP response中交给我们的web服务器

5.web服务器最终以静态的html文件输出到我们的浏览器。就是我们最终看到的。

 

前面的博客我们提到了Servelt。Servelt本质上就是我们的 一段可以在jsp页面执行的一段java代码。jsp和我们的javabean和很相似。javabean编写的java组件可以实现重用。然而我们的servelt是更加的 容易编写,大大的简化了我们的java代码的开发。

今天我们主要学习下我们的jsp。关于servert的知识,可以去看看我之前写的博客。这里我就多说了。

 

下面来说说我们的 jsp的生命周期和我们的servelt的生命周期是非常的相似的,下面我们来看看jsp的 生命周期分为以下几个阶段

1.编译阶段。

将我们的jsp文件编译成为servert文件的。Servelt容器容器编译servelt文件生成我们的servelt类

2.初始化阶段

加载和jsp相关的文件,生成想对应的servelt实例。

3.运行阶段

调用与jsp相对应的Servelt的相关的方法

4.销毁阶段

调用和jsp相对应的Servelt的相关的 销毁方法,由jvm释放该内存资源。最后将我们的结果潜入到我们的http Response里面,并且以静态的html的格式返回给我们的浏览器。

大家可以看到这个过程还是非常的复杂的,我们要编写一大堆java代码,也就是我们的servelt相关的业务逻辑的处理代码。

后面我们将介绍JSTL标签库,让我们的开发变得更加的简单。还有我们后面介绍的el表达式都是为了简化Servelt开发儿设计的

但是我们今天主要是讲述我们的jsp的相关东西,jsp页面可以嵌入我们的el表达式,以及我们的jstl标签。后者才是i更加的强大的。直接使用标签就可以实现很多复杂的操作。

jsp里面的脚本程序必须写在<%%>之间,任何文本。html代码必须写在它的外面。

<%

java代码片段。

%>

jsp 2.0里面包含了很多的指令,具体的有多少个,我也记不住了。最主要的就是以下几个指令

page指令;用来指定页面的属性。比如脚本语言的属性,指定整个wen域的属性。

include指令:包含其他的文件,

taglib指令没在后面引入我们的JSTL标签库的时候,必须使用到它。是引入我们的标签库的时候必须使用的。

 

jsp的动作标签:

jsp:include在页面被请求的时候载入另外的一个文件。这里可以是静态的文件或者是动态的文件。这里要注意的就是和前面介绍的include指令有点不同,前者是在将我我们的jsp编译成为servelt类的时候加载的。

jsp:forward将我们的请求跳转另外的一个页面。

这几个使用的比较常见,其他的大家了解,遇到问题的时候知道怎么使用就可以了。

 

下面我们来看看jsp里面隐藏的对象,一共是以下几个,可以直接的使用。

1.  request对象:它是HttpServerRequest的实例对象,封装了和用户请求相关的信息,它的作用于是整个web域名。

2.response对象:它是HttpServerResponse的实例对象。

3.out对象;它是jspWriter的实例对象,主要是将一些东西输出到网页上面。

4.session:它是httpSession的实例。主要是浏览器的缓冲。

5.application:ServeltContext上下文相关的东西。

6.page:类似java的this指针。

 

表单处理:

我们在浏览网页的时候,经常会向服务器提交表单的信息,在表单的提交过程里面,我们经常使用get和post两种方式。但是

也还有其他的请求方法,比如delete push等等

下面我们就这两种方式来总结下他们的区别。

1.get方式请求的数据的参数一般是跟在请求的地址的后面。一般是?的后面,数据直接暴露出来,这个是非常的不安全的。

2.post方式更好的保护了请求的数据,是一种安全的请求方式。jsp通过getParterm来获取参数。一些敏感的数据我们使用post

来进行传递。

通过通过request,response的一些方法来获取。

 

cookie的设置。

(1)创建一个Cookie对象: 调用Cookie的构造函数,使用一个cookie名称和值做参数,它们都是字符串。

Cookie cookie = new Cookie("key","value");

通过request的方法来获取cookie数值。包含三个步骤

1.(1)创建一个Cookie对象: 调用Cookie的构造函数,使用一个cookie名称和值做参数,它们都是字符串。

2.设置有效期:调用setMaxAge()函数表明cookie在多长时间(以秒为单位)内有效。下面的操作将有效期设为了24小时

3.将cookie发送至HTTP响应头中:调用response.addCookie()函数来向HTTP响应头中添加cookie。

想要读取cookie,您就需要调用request.getCookies()方法来获得一个javax.servlet.http.Cookie对象的数组,然后遍历这个数组,使用getName()方法和getValue()方法来获取每一个cookie的名称和值。

 

文件的上传

jsp页面还可以支持文件的上传。在文件的上传过程里面,我们必须要导入外部的包的支持。这里就不多说了。很简单。

后续补充一i个例子,大家就知道了。

 

页面重定向:

当需要将文档移动到一个新的位置时,就需要使用JSP重定向了。

最简单的重定向方式就是使用response对象的sendRedirect()方法。这个方法的签名如下:

代码如下;

// 重定向到新地址
   String site = new String("http://www.runoob.com");
   response.setStatus(response.SC_MOVED_TEMPORARILY);
   response.setHeader("Location", site); 

 

jsp有很多的东西,如果要一个一个完全的掌握。需要大量的实践,这里就不再多说了。当正真的项目有这个需求的时候,

直接看看就可以了。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(java,web)