7.JSP技术

1.概念:

这里写图片描述

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<html>
  <head> 
    <title>jsp(输出时间)</title>
  </head>

  <body>
    当前时间值:
    <%
        Date date = new Date();
        out.write(date.toLocaleString());       
     %>
  </body>
</html>

2.JSP调用 和 运行原理:

这里写图片描述

tomcat服务器调用jsp时会先转成一个servlet(里面包含了out(JspWriter),request,response,session,application(ServletContext),config(ServletConfig),page(this)等九大隐式对象,源码在服务器work目录),并调用这个servlet的server方法,把内容out给页面,把java代码原封不动的给页面。

部分源码:

这里写图片描述

3.JSP最佳实践:

这里写图片描述

这里写图片描述

4.JSP语法:

这里写图片描述

①模板元素:控制数据的显示样式
这里写图片描述

②脚本表达式:用户向浏览器输出数据,内部翻译成了java代码
这里写图片描述

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<html>
<head>
<title>jsp(输出时间)</title>
</head>

<body>
    当前时间值:
    <%=new Date().toLocaleString()%>
</body>
</html>

③脚本片段:
这里写图片描述

这里写图片描述

这里写图片描述

④JSP声明

这里写图片描述

这里写图片描述

⑤JSP注释: <%- - - -%>
html,xml注释 : <!– –> 注释内容会回给浏览器,不显示而已

这里写图片描述

⑥JSP指令

这里写图片描述

这里写图片描述

page指令:

这里写图片描述

这里写图片描述

使用page指令解决JSP中文乱码问题:

这里写图片描述

这里写图片描述

记事本开发JSP设置:
<%@ page language="java" import="java.util.*" pageEncoding="gb2312" contentType="text/html; charset=gb2312"%>

Eclipse开发JSP设置:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" > 或者(response默认设置为UTF-8)
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>

include指令:

这里写图片描述

静态(编译时)包含:只转换成一个servlet(效率更好)

这里写图片描述

这里写图片描述

这里写图片描述

动态(运行时)包含:转换成多个Servlet,当调用主Servlet的时候再进行其他调用。

这里写图片描述

5.JSP九大隐式对象

这里写图片描述

1.request(HttpServletRequest)
2.response(HttpServletResponse )
3.session(HttpSession)
4.application(ServletContext)
5.config(ServletConfig)
6.page(this)
7.exception

JSP独有的两个:

8.out(JspWriter)
9.pageContext(PageContext)

①out隐式对象:out的数据在自己的缓冲区里,当满足条件后再将数据写给response。jsp的内容都是通过out输出的,先保存在out缓存里。

建议:用JSP通过out输出。

这里写图片描述

这里写图片描述

这里写图片描述

②pageContext对象:

这里写图片描述

(1)应用1:获取其它8大对象

这里写图片描述

意义:用在自定义标签开发技术里面,移除java代码
(一个合格的JSP不允许存在java代码的。) 

自定义标签代码后续。

这里写图片描述

(2)应用2:pageContext也是域对象(page域是request,session,servletContext四个域中最小的一个域)

page域:生命周期是整个页面范围。可以访问其他域
request域:一个请求范围
session域:一个会话范围
servletContext域:整个应用范围

这里写图片描述

可以访问其他域(其他域定义为了常量):管理所有域的一个入口

PAGE_SCOPE:默认自己,page域
REQUEST_SCOPE :request域
SESSION_SCOPE :session域
APPLICATION_SCOPE: application域

这里写图片描述

(3)重点:

findAttribute()方法,在四个域中依次查找。

EL表达式${data}  ,内部依赖的也是findAttribute()方法

(4)pageContext其他应用:引入和跳转到其他资源(第三种方式了)

这里写图片描述

这里写图片描述

6.JSP标签:

这里写图片描述

这里写图片描述

<jsp:forward page="/index.jsp">
    <jsp:param name="username" value="xxx"/>   负责带数据过去
</jsp:forward>
应用场景:在web.xml中配置首页的时候,不允许配servlet,所以可以配置一个jsp,然后在jsp中跳转到首页的servlet中去。

<jsp:include page="/1.jsp"></jsp:include> 动态包含 用的不多

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

8.映射JSP

这里写图片描述

9.JSP页面 查错:

这里写图片描述

还有一种错误情况:

正确的JSP第一次运行成功翻译成Servlet,后来又改动JSP,如果改动后JSP语法有问题,不会翻译成新的Servlet, 再次运行的时候,会报JSP语法错误。

这个时候,如果快速刷新,浏览器因为刚刚帮你翻译了一次,又发现jsp没有改动,会调用原来第一次翻译的的正确Servlet,显示正常。

如果过一小段时间再刷新的话,浏览器会重新翻译jsp,又报错。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值