jsp是什么?

JSP:Java Server Pages java服务器端页面

*可以理解为 一个特殊的页面,其中既可以直接定义html标签,又可以定义java代码
*用于简化书写
<% %>java代码片段,用于定义java (java方法内能写什么,这里就能写什么)
<%= %>java表达式,用于输出一个表达式或变量的结果 print()输出语句中能写什么,这里就能写什么
<%! %>声明,用户创建类的成员变量和方法 (java类中可以写什么,这里就可以写什么)
jsp中注释:
<%-- --%>

jsp原理: !!! 本质就是一个servlet类!!!! 内部实现了打印html标签的功能,所以可以直接写标签。在servlet里拼标签可以达到一样的效果
1、当jsp页面第一次被访问时,tomcat服务器会把jsp编译成.java文件(就是一个servlet类)
(java文件在work-catalina-localhost-项目名-org-apache-jsp-)
2、把.java文件编译成.class文件
3、创建对象
4、调用service方法,输出html
5、如果以后再次请求同一个jsp,直接调用service方法,不再重复上面4个步骤
当我们访问jsp,jsp中有html标签和java代码,tomcat会将jsp生成一个servlet文件,其实就是一个.java文件,
并生成一个.class文件tomcat会调用jspService方法,通过out对象拼成html文件返回浏览器解析。

jsp九大内置对象:
1.out(JspWrite)
2.exception(Throwable) 不是每个页面都有的,设置了errorPage才有
3.request(HttpServletRequest)
4.response(HttpServletResponse)
5.session(HttpSession)
6.config(ServletConfig)
7.application(ServletContext)
8.pageContext(PageContext) 最常用
9.page(Object)

jsp三大指令:page、include、taglib
指令的格式:<%@ 指令名 属性1="" 属性2=""...%>
1.page指令:页面
(1)属性pageEncoding,指定当前jsp页面的编码,这个编码是给服务器用的
用来使用此编码把jsp编译成.java文件
(2)属性contentType,与rspsonse.setContentType("text/html;charset=utf-8")
作用相同,一是设置字符流的编码,二是设置content-type响应头
(3)属性pageEncoding和contentType,如果只写一个时,那么另一个的值与出现的值相同
一般我们至少写一个,默认编码是iso-8859-1
(4)属性import="" 导包
(5)属性errorPage和isErrorPage
errorPage="" 出错页面 出错了就跳转到这个页面
isErrorPage=true/false
isErrorPage:指定当前页面是否为处理错误的页面
true:这个页面会设置状态码为500,并且这个页面中可以使用
9大内容对象的exception对象
出错跳转错误页面还可以在web.xml中配置
(6)session = true/false当前页面是否支持session,如果为false,那么当前页面
没有session内置对象,默认是true
(7)isTreadSaf当前页面是否支持并发访问
(8)language当前页面编译后的语言类型,默认为java
(9)autoFlush:当前页面输出流缓冲区满时,是否自动刷新,默认true
(10)buffer设置当前页面缓存区的大小
(11)info:信息

2.include指令:静态包含 <%@ include %> 例:<%@include file="dex.jsp" %>
静态包含和动态包含的区别
静态包含是在jsp编译成.java文件前完成的合并,同时生成一个.java文件
作用:对于多个jsp中共同的内容,可以独立到一个.jsp中,通过inclde指令包含即可
RequestDispatcher.include是一个方法,它只是把两个servlet的响应数据
在运行时合并并输出客户端

jsp动作标签:forward include,是由tomcat解释执行,与java代码一样,都是在服务器端执行
<jsp:forward>转发,它与RequestDispatcher的forward方法的用法一样
<jsp:include>包含,它与RequestDispatcher的include方法的用法一样

3.taglib指令:导入标签库
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
导入jstl标签库,el表达式使用例子:${fn:length("abc") }
也可以自定义函数

javaweb入门-----jsp概念的更多相关文章

  1. JavaWeb入门——背景知识

    JavaWeb入门——背景知识 摘要:本文主要介绍了Web服务器的相关知识. 概念 什么是JavaWeb JavaWeb,是用Java技术来解决相关Web互联网领域的技术的总称.Web包括:Web服务 ...

  2. JavaWeb(一)JavaWeb应用的概念

    JavaWeb应用的概念 在Sun的Java Servlet规范中,对Java Web应用作了这样定义:"Java Web应用由一组Servlet.HTML页.类.以及其它可以被绑定的资源构 ...

  3. JavaWeb入门——在Linux环境下安装Tomcat服务器

    JavaWeb入门——在Linux环境下安装Tomcat服务器 摘要:本文主要学习了如何在Linux环境下安装Tomcat服务器. 准备工作 检查Java环境变量 检查系统是否配置了Java的环境变量 ...

  4. JavaWeb入门——在Windows环境下安装Tomcat服务器

    JavaWeb入门——在Windows环境下安装Tomcat服务器 摘要:本文主要学习如何在Windows环境中下载并安装Tomcat服务器. 下载 获取安装包 推荐去官网上下载Tomcat: htt ...

  5. javaweb 与jsp页面的交互流程 (初次接触时写)

    javaweb 与jsp页面的交互流程 javaweb项目目录 1. javaweb项目的一般目录: 2. jsp 页面一般情况下放在 top(前台页面) back(后台页面) 3. 后台代码 放在s ...

  6. MongoDB入门必读(概念与实战并重)

    MongoDB入门必读(概念与实战并重) 一.概述 MongoDB是一个基于分布式文件存储的数据库开源项目.由C++语言编写.旨在为WEB应用提供可护展的高性能数据存储解决方案. MongoDB是一个 ...

  7. JavaWeb入门——Tomcat的目录结构

    JavaWeb入门——Tomcat的目录结构 摘要:本文主要了解了Tomcat的目录结构. 目录结构 打开Tomcat的目录,可以看到如下文件和文件夹: bin目录 该目录下存放的是二进制可执行文件. ...

  8. 【转帖】H5 手机 App 开发入门:概念篇

    H5 手机 App 开发入门:概念篇 http://www.ruanyifeng.com/blog/2019/12/hybrid-app-concepts.html 作者: 阮一峰 日期: 2019年 ...

  9. Git 入门:概念、原理、使用

    出处: git入门:概念.原理.使用 git和Github 概念 Git --- 版本控制工具(命令). git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.git ...

随机推荐

  1. 有用的java学习网站

    1.在线编译运行Java代码的网站 https://www.compilejava.net/ 2. 综合学习网站: http://www.tutorialspoint.com/,可以在线执行多种编程语 ...

  2. 阿里巴巴 -- MySQL DBA 面试题

    1.MySQL的复制原理以及流程 (1).先问基本原理流程,3个线程以及之间的关联: (2).再问一致性延时性,数据恢复: (3).再问各种工作遇到的复制bug的解决方法. 2.MySQL中myisa ...

  3. HDU 5775:Bubble Sort(树状数组)

    http://acm.hdu.edu.cn/showproblem.php?pid=5775 Bubble Sort Problem Description   P is a permutation ...

  4. Altium Designer设计PCB--如何设置铺铜与导线或过孔的间距

    笑话: 到银行汇款,车临时停路边上. 为了怕交警罚就把朋友留下看车,跟他说有查车的过来了告诉我一声. 进去几分钟果然有交警来了. 那个朋友风风火火地闯进银行大声吼道:“大哥,警察来了,快走啊!” 偌大 ...

  5. 使用OpenAPI构建更智能的API

    像OpenAPI这样的API描述规范是一个关键工具,您应该尽可能地将其好好掌握,记录和执行API的工作由计算机和开发人员完成:OpenAPI 3.0现在允许额外的表现力,可以让机器为我们做更多有用的工 ...

  6. c#零碎知识随笔

    1. 字符串转换日期: DateTime.ParseExact(item.Attribute("event-timestamp").Value,"dd.MM.yyyy H ...

  7. DRF + react 实现TodoList

    在web项目构建中有很多框架可供选择,开发人员对项目的使用选择,有很多的影响因素,其中之一就是框架在定义该项目的单独任务时的复杂性. 简介 本文有如下几个部分: 准备 配置后端 配置APIs 配置前端 ...

  8. CDQZ集训DAY0 日记

    貌似没发生什么事…… 按照教练员的交代,写一下流水账…… 早上5:30到了机场,然后就默默地坐着飞机到了成都.然后就按预定好的被GXY的父亲的朋友接机(貌似因为觉得GXY和他爸的同学挺像被批判一番). ...

  9. Java编程思想:File类其他方法

    import java.io.File; public class Test { public static void main(String[] args) { MakeDirectories.te ...

  10. cozmo 入坑日记及开发环境搭建

    前几日,朋友在群里发了一个机器人的小视频,视频里机器人可以对话,可以推箱子,开心以后会哈哈大笑,非常有趣. 详细了解里一下,这是个叫 cozmo 的智能机器人,可以配合 SDK 用 python 编程 ...