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. 数据结构与算法---查找算法(Search Algorithm)

    查找算法介绍 在java中,我们常用的查找有四种: 顺序(线性)查找 二分查找/折半查找 插值查找 斐波那契查找 1)线性查找算法 示例: 有一个数列: {1,8, 10, 89, 1000, 123 ...

  2. LSI 9211-8I阵列卡IR模式Update为IT模式操作步骤!

    以下是DOS系统环境下操作(也可以在windows.linux环境下,只要找到对应的tool就可以)相对应的tool官网可以下载 链接:https://www.broadcom.com/support ...

  3. 使用java的MultipartFile实现layui官网文件上传实现全部示例,java文件上传

    layui(谐音:类UI) 是一款采用自身模块规范编写的前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与组织形式,门槛极低,拿来即用. layui文件上传示例地址:https://www. ...

  4. python无网安装psycopg2

    1. 问题描述 ​ python项目要获取greenplum数据库数据,gp底层是postgresql,需要使用python的第三方工具包psycopg2操作数据库,但是问题是服务器上没有网络,无法在 ...

  5. 在阿里云上搭建Spring Initializr服务器。

    参考的博客有: https://blog.csdn.net/chszs/article/details/51713174 https://segmentfault.com/a/119000001137 ...

  6. JavaScript作用域及预编译

    几乎所有的编程语言都可以存储,访问,修改变量,那在JavaScript中这些变量放在那里?程序如何找到他们? js被归类于解释执行语言,但事实上他也是一门编译语言,因为他也要编译,但于传统的编译语言不 ...

  7. NOIP2018普及T4暨洛谷P5018 对称二叉树题解

    题目链接:https://www.luogu.org/problemnew/show/P5018 花絮:这道题真的比历年的t4都简单的多呀,而且本蒟蒻做得出t4做不出t3呜呜呜... 这道题可以是一只 ...

  8. 洛谷P1690 贪婪的Copy 题解

    题目:https://www.luogu.org/problemnew/show/P1690 分析: 这道题就是一道最短路的题目,因为看到数据范围: n≤100n\leq100n≤100 所以考虑使用 ...

  9. 一文带你实现RPC框架

    想要获取更多文章可以访问我的博客 - 代码无止境. 现在大部分的互联网公司都会采用微服务架构,但具体实现微服务架构的方式有所不同,主流上分为两种,一种是基于Http协议的远程调用,另外一种是基于RPC ...

  10. 通信模型socket

    I/O的概念 操作系统的分为socket的I/O还有用户界面的输入输出,一般一个输入操作分为两个不同的阶段,1)等待数据准备好:2)从内核向进程复制数据 从理论上来讲,阻塞I/O.非阻塞I/O.复用I ...