JSP(页面)(javaservlet pages)(第一天)

1>以.JSP为扩展名的文件就是JSP页面; XXX.jsp

2>是动态资源:可以被浏览器请求访问的;

1,JSP的作用:

1.servlet:

优点:动态资源,可以接收客户端请求并处理请求,并可以给客户端发送响应。

缺点:客户端浏览器只识别HTML响应体,所以不适合发送HTML响应体,因为需要

通过大量的reponse.getWriter()方法打印( “<html>的</ HTML>”);来向客户端浏览器响应的HTML。

(数据量大不灵活)

如果能够是Servlet的给浏览器响应的大量的htrml内容自动识别完成。

Servlet的需要HTML的功能。

2,HTML

优点:超文本标记语言,就由HTML标签组成,浏览器可直接识别。

缺点:HTML是静态页面,不能包含动态信息(不能定义变量)。

HTML需要的Servlet的功能

Servlet的HTML和是互相需要的功能但是又缺少的关系

3,JSP:

动态资源,再原有的HTML的基础上添加的java脚本构成(这样Html也可以定义变量了),

这样就可以添加动态信息了。而浏览器只识别HTML,所以服务器会将JSP页面自动转成HTML

再响应给客户端浏览器(所以当浏览器直接向服务器请求一个jsp的页面时),再浏览器的

当前页面中鼠标右键查看源代码其实是一个已经转换了的HTML界面)。

解释:(可以理解为)jsp = java + html

1>有了HTML,就无需再自己使用response.getWriter()方法向浏览器去写入大量的HTML的字符串

文本来实现向浏览器响应正文了,就可以直接正常像编写HTML一样了;

2>有了java脚本就能实现页面的动态化了:接收请求参数,处理请求,定义变量等等;

可以说JSP是基于servlet的HTML和于一身,因为JSP本质就是servlet的,其实服务器将

jsp页面转成html页面,底层就是靠servlet的Writer对象out.write("<html></html>")方法或者

out.print("<html></html>")来实现的。

解析:(jsp的执行流程)

jsp本质是Servlet,一般是在第一次访问某个jsp页面的时候,服务器会给jsp页面生成一个对应的Servlet,

jsp页面的java脚本会原封不动的放入到jsp生成的Servlet中,在jsp页面编写html内容,会自动由

服务器转成out.writer("<html></html>");

还是将jsp页面中的html内容以out对象大量的write()写给浏览器的;(只不过这块工作不再由

我们完成,而是由服务器自动完成,我们只需要正常的在jsp页面编写html内容就行)

JSP网页底层的Servlet执行流程

再去创建jsp对应的Servlet对象;

再去调用jsp对应的Servlet对象的init()方法,最初执行且执行一次;

再去调用jsp对应的Servlet的service()方法处理请求,后期jsp页面被访问多少次,jsp对应的Servlet

的service()方法被执行多少次;

最后再服务器关闭的时候销毁jsp对应的servlet对象之前调用destory()方法,最后执行

且只被执行一次;

index.jsp --->  index_jsp.java 的Servlet

1>jsp包含了html和java代码,那么就可以直接编写html标签,以及定义变量,

就可以有动态信息。

2>jsp是动态资源,浏览器不直接识别,所以需要服务器将jsp转换为html,再

响应给浏览器

3>服务器是如何将jsp转换为html的:

jsp其本质还是Servlet,那就是说当再请求一个jsp时,再就jsp对应的Servlet

中服务器会自动使用大量的reponse.getWriter().write()或.print()将jsp页面中的html

响应给浏览器,但是这一部分的工作是由服务器自动完成的。

2、jsp的组成(更准确地说)

 html + java脚本 + jsp动作标签 + jsp指令 + jsp的九大内置对象 + EL表达式 + 第三方的 
 jstl标签;

2>九个在jsp页面中无需创建即可直接使用的对象(因为jsp对应的Servlet已经创建了):

request、response、out、session

exception、application(ServletContext)、

config、pageContext、page(this)

out用来在reponse中写入内容的对象

3>3种java脚本:
也就是三种写法

第一种:<%......%>局部java脚本相当于方法体

也就是在jsp对应的servlet中的service()方法中该脚本会原封不动的放入其中。

也就是说即一个方法中能放入什么代码,那么该脚本就能放入什么代码

放java代码片段,用于执行多条java语句。方法体中能写什么,

它就能写什么(常用)

第二种:<%=.......%>在jsp对应的servlet中的service()方法中该脚本会转化了为

out.write()方法然后参数能放什么该脚本就能放什么;所以该脚本的作用就是向

客户端浏览器显示其内容。

放java表达式,用于往页面输出一条表达式或变量的结果

response.getWriter().print(....)中能放什么,他就能放什么(常用)

而且该脚本标签中的内容,会转换为response.getWriter().print(.....);

且被放在service()中的.

第三种:<%!.....%>成员java脚本

该脚本内容会原封不动放入jsp对应的servlet类的成员位置,一个类中能定义什么成员

该脚本就能放什么。

声明,用来定义类的成员变量和成员方法。类体中能放什么

它就能放什么(成员变量,成员方法,构造器,构造代码块,静态代码块,内部类等)

该脚本标签中的内容都是给JSP对应的Servlet的的从成员定义的,包括成员变量,成员方法,

构造器,构造代码块,静态代码块,内部类等)

3.JSP和servlet的的分工:

 JSP :(视图层)

        1>用作请求发起页面,如,显示表单,超链接

             录入数据并向服务器发起请求

         2>用作请求结束响应页面,如,显示响应数据显示服务器的响应信息

servlet:(控制器)

用于具体处理请求数据的环节。

案例:输入两个整数,计算和。

4.jsp的原理:JSP其实就是一个特殊的小服务程序。

1>当JSP页面第一次被访问时,服务器会把JSP编译成java的文件,这个java的文件其实就是一个小服务程序类

xxx.jsp ------ xxx_jsp.java

2>然后再把java的文件编译成的.class文件

3>然后在创建该小服务程序对象

4>最后调用该servlet的对象的服务()方法

5.>第二次之后请求同一JSP时,直接调用它的服务()方法

5.jsp注释

<! - HTML的注释 - >

<% - 被注释内容 - %>

当服务器把JSP编译成的.java文件时会忽略JSP的注释部分。

而JSP中HTML的注释<! - 被注释内容 - >会在JSP被编译成的的.java文件中以

out.write( “<! - HTML的注释 - >”)方法写入到HTML页面中,并响应到客户端浏览器,只是浏览器对

HTML的注释内容不解析。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值