JAVA-WEB-JSP

JSP

1 JSP概述

  • JSP看起来像一个HTML,但和HTML不同的是,JSP中可以书写Java代码,可以通过Java代码展示动态的数据
  • JSP的出现即解决了Servlet不适合输出页面的问题,也解决了HTML无法展示动态数据的问题

2 JSP执行过程

  • 当浏览器请求服务器中的某一个JSP文件(例如:localhost:8080/day11-jsp/test.jsp),服务器会根据请求资源的路径去寻找该文件:
  • 如果找到了,JSP翻译引擎会将JSP翻译成一个Servlet程序(JSP----> xxx.java----> xxx.class),然后Servlet程序再执行,执行的结果是向浏览器输出一个HTML网页!
  • 如果没有找到,服务器将会响应一个404页面,通知浏览器请求的资源不存在

3 JSP隐含对象

隐含对象可以在jsp中直接拿来使用,不必再去声明

  • request
  • response
  • pageContext
  • session
  • application:ServletContext的对象,代表当前Web应用
  • config:当前JSP对应的Servlet的ServletConfig对象
  • out:JspWriter的对象,常调用out.println()可以把字符串打印到浏览器上
  • page:指向当前JSP对应的Servlet对象的应用,但是是Object类型,只能调用Object类的方法
  • exception:用于报错JSP页面

4 JavaWeb四大域对象

Servlet中只有ServletContext、ServletRequest、HttpSession三个域对象,JSP中多了一个pageContext对象。

4.1 application

  • 生命周期
    当web应用被加进容器时,创建代表整个web应用的ServletContext对象,当服务器关闭,或web应用被移除时,ServletContext对象跟着被销毁
  • 作用范围
    整个web应用
  • 应用
    多个Servlet通过ServletContext对象实现数据共享

4.2 request

  • 生命周期
    在service方法调用前由服务器创建,传入service()方法,整个请求结束,ServletRequest生命周期结束。
  • 作用范围
    整个请求链
  • 应用
    在整个请求链中共享数据

4.3 session

1.生命周期
第一次调用request.getSession()方法时,会创建一个session对象。

  • 超时销毁:默认情况下,当超过30分钟没有访问session,session就会超时销毁。(30分钟是默认时间,可以修改,但不推荐修改)
  • 自杀:调用session的invalidate方法时,会立即销毁session。
  • 意外身亡:当服务器非正常关闭时(硬件损坏,断电,内存溢出等导致服务器非正常关闭),session会随着服务器的关闭而销毁;
  • 作用范围
    在一次会话
  • 应用
    因此session中适合存储对安全性要求较高,但不需要长时间保存的数据,保存登录状态、保存验证码

4.4 pageContext

  • 生命周期
    当对JSP的请求开始时创建,当响应结束时销毁
  • 作用范围
    整个JSP页面,是四大域中最小的一个
  • 应用
    封装了8大隐式对象,通过它可以获得其它的8个对象

5 JSP和Servlet是什么关系?

  • Servlet是一个特殊的Java程序,它运行于服务器的JVM中,能够依靠服务器的支持向浏览器提供显示内容
  • JSP本质上是Servlet的一种简易形式,JSP翻译引擎会将JSP翻译成一个Servlet程序,可以简化页面内容的生成。
  • Servlet和JSP最主要的不同点
    Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML分离开来。
    而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。
    有人说,Servlet就是在Java中写HTML,而JSP就是在HTML中写Java代码,当然这个说法是很片面且不够准确的。JSP侧重于视图,Servlet更侧重于控制逻辑。

6 动态include和静态include的区别

  1. 静态include:语法:<%@ include file=“文件名” %>,相当于复制,编辑时将对应的文件包含进来,当内容变化时,不会再一次对其编译,不易维护。
  2. 动态include:语法:<jsp:include page=“文件名”>,能够自动检查被包含文件,当客户端对JSP文件进行请求时,会重新将对应的文件包含进来,进行实时的更新
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值