JSP学习

1.JavaWeb三大组件:SERVLET(JSP) FILTER LISTENER(JavaWeb服务器下可以存放动态资源,静态资源.)
2.Jsp ——helloworld.
a1:修改Jsp默认编码格式
window===>preferences===>
在这里插入图片描述a2.在WebContent下建立一个index.jsp.

			大家好,这是我的第一个JSP页面.
		<%
			out.println(new Date().toLocaleString());
		%>

a3.浏览器访问 http://localhost:8080/项目名/index.jsp 效果如下. 每刷新一下页面,我们发现页面中内容会发生改变.JSP中有JAVA程序,有JAVA程序,就应该有对应的.java文件和.class文件.

3.jsp原理/执行过程
在这里插入图片描述 a1.1_用户发起请求
用户通过浏览器输入 http://localhost:8080/项目名/index.jsp浏览器将HTTP协议的请求 部分发送到服务端

  GET  /day38/index.jsp  HTTP/1.1
  请求头
  请求头
  空行

2.服务端获取到HTTP协议的请求部分,分析本次请求的是什么资源? Index.jsp
发现本次请求的文件后缀为.jsp, jsp引擎按照内部约定规则,将JSP转换为一个SERVLET .JAVA文件index_jsp.java , 转换后的index_jsp.java文件中有init方法,有service, destroy方 法, 在service方法中,将HTML标签原封不动输出到客户端浏览器, 碰到JAVA代码,复制在 SERVICE方法中即可.
3_tomcat将转换后的.java文件编译为.class
4_tomcat按照SERVLET的字节码识别.class文件,调用.class字节码中无参构造函数
创建对象,调用对象上的init方法,调用对象上的service(request,reponse)…
结论:
1 JSP中有init,service,destroy方法,本质上是一个Servlet
2_JSP引擎的转换规则
如何将一个JSP转换为Servlet的?在转换后的Servlet中,碰到JSP页面中的HTML标签,通过输出流out将HTML部分输出到浏览器中,如果碰到JAVA代码段,将这些JAVA代码段复制Service内部.
3_JSP的运行比servlet的运行多了2个环节: 转换__>编译.
4_在执行JSP转换后的Servlet下的service方法时,request/response还是tomcat传递进去的, 其内部还提前创建好了其它的对象 pageContext,session,application,config,out.page等

3.Jsp脚本段
*_存放定义型的语句 <%! %>
*_普通的JAVA语句 <% %>
*_可以计算出结果的JAVA表达式 <%= %>
4.Jsp指令(3个)
1_指令格式
<%@ 指令名称 属性名1=”属性值1” 属性名2=”属性值2” 属性名3=”属性值3” %>
多个属性之间空格隔开
2_指令的作用
指令3种:
page:page指令的作用:告诉JSP引擎(tomcat)如何将当前JSP转换为SERVLET
include:包含其它文件
taglibe:引入其它的标签库

4.Jsp内置对象(9个)

1_为什么有内置对象?
在JSP这项技术出现之后,由于在JSP中会频繁使用request,response,session,out等对象,JSP中就将这些对象提前创建好,在JSP中需要使用这些对象时,拿来即用.
2_这些内置对象是在什么时候创建好的?
在Tomcat中在JSP转换后的SERVLET下的SERVICE方法的头部,声明并创建了这些内置对象,方便JSP使用.
3_9个内置对象简介
application:
如何测试在servlet中获取到的getSerlvetContext();JSP中的application是同一个对象?
作用4
config:
JSP相当于Servlet,可以为Servlet配置参数,也可以为JSP配置参数 (知道)
out:
2个out不是同一个对象,response对应的out优先级别高
JSP中默认使用内置的out对象
requst/response: 同Servlet
Session:同Servlet
exception: 需要将当前页面的page指令下设置 iserrorpage=”true” 才能看到
作用:开发阶段,通过在JSP中获取exception中的信息判断JSP出错异常信息
pageConext:
1_获取其他8个内置对象
2_可以将pageContext当做域对象使用(在自定义标签中使用)
3_操作其他域对象
4_ pageContext.findAttribute(name);
从4个域对象寻找name指定的数据,寻找的顺序是
pageContext___>request___>session___>application
page:代表this(当前正在被访问的servlet)
5.Jsp域对象(4个)
1.JAVASE程序,作用域:程序运行过程中,产生变量/对象在运行期间作用范围.
2.由于WEB项目特殊性:1_开始启动不会停止2_基于请求响应 .在WEB运行过程中产生了一些数据,希望将这些数据保存到不同的范围. 有了域对象概念.

6.Jsp动作
为什么有JSP动作?本身JSP实质上是Servlet,擅长做数据响应的, 有了JSP内置对象,脚本段可以实现servlet中能够实现的大部分功能,但是Servlet还有部分功能JSP没有看到,例如转发,重定向.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值