前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场

JSP

作者头像
木瓜煲鸡脚
发布于 2019-08-22 08:28:04
发布于 2019-08-22 08:28:04
11.4K00
代码可运行
举报
文章被收录于专栏:Jasper小笔记Jasper小笔记
运行总次数:0
代码可运行

JSP

1.JSP简介

2.JSP标签元素

3.JSP指令

4.标签动作

5.隐式对象

JSP简介

什么是JSP

JSP全名为Java Server Pages

中文名叫java服务器页面

它是在传统的网页HTML文件(*.htm,*.html)中插人Java程序段和JSP标记

后缀名为(*.jsp)。

其根本是一个简化的Servlet设计

为什么要有JSP

直接使用Html文件是没有办法输出Java当中的信息

使用servlet来去输出一个网页非常的麻烦

于是就出现了jsp,又能写html,又能写Java代码

JSP的工作原理

创建JSP默认编码是ISO-8859-1可以去改一下

JSP的本质实际上是Servlet,它在第一次访问时就会被服务器容器翻译成servlet。

路径:apache-tomcat-9.0.22\work\Catalina\localhost\项目名\org\apache\jsp

因此它就是一个Servlet,在全局web.xml中配置了起到翻译功能的文件路径,当请求url是访问jsp时就会启动那个翻译

JSP的组成

静态数据,如HTML

JSP脚本元素和变量

SP指令,如include指令

JSP标签动作

用户自定义标签

JSP标签元素

在JSP当中写Java代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  <%java代码%>
   // 内部的java代码翻译到service方法的内部
  <%=java变量或表达式>
   // 会被翻译成service方法内部out.print()


  <%!java代码%>
   // 会被翻译成servlet的成员的内容

JSP注释

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!--注释内容-->
 // HTML注释\可见范围 jsp源码、翻译后的servlet、页面
  
 "//单行注释  /*多行注释*/"
 // Java注释\可见范围 jsp源码 翻译后的servlet,页面中看不到

<%--注释内容--%>
 // Jsp注释\可见范围 jsp源码可见// 

JSP指令

什么是指令

JSP指令用于设置整个JSP页面的相关信息

以及用于JSP页面与其它容器之间的通信

有哪些指令

page指令:用于设定整个JSP页面的属性和相关功能

contentType

属性指定JSP页面的MIME和编码格式

pageEncoding

属性用来指定JSP文件的编码格式

import

在JSP中引入Java的包和类,多个包之间以逗号隔开

session

指定当前页面是否能获得当前用户的session对象缺省是true如果指定为false,那么在该页面中无法使用session,使用的话会提示500错误

errorPage

如果当前页面发生异常网页会重定向到errorPage所指定的页面进行处理

isErrorPage

允许指定的JSP页面为错误处理页面

language

指定页面中使用的脚本语言种类目前只支持java

extends

用于指定该JSP生成的servlet继承自哪个父类,必须指定包名加类名

buffer

用来设置输出流缓冲区,缓冲区的作用就是为了提高IO性能也就是说减少write的次数

autoFlush

用来指定当输出流缓冲区满了的时候,是否自动刷新缓冲区

isThreadSafe

缺省值为true指定该JSP文件是否支持多线程访问

info

用来设置该jsp文件的介绍信息

isELIgnored

用来标示是否支持EL表达式

多个属性之间使用空格隔开

include指令:表示在JSP编译时插入一个包含文件或者代码的文件,include指令所包含的文件名不能是一个变量url,只能是静态的文件名

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<%@ include file="/name.jsp"%>
// 相对于复制其他文件的一段代码 

taglib指令:声明JSP文件使用了标签库。比如:JSP标准标签库、

第三方标签库、自定义标签库

标签动作

页面包含

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/*
 与include指令不同,它是导入的页面已经在本文件处理了 
 而不是粘贴过来再处理 
*/
<jsp:include page="被包含的页面"></jsp:include>

请求转发

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<jsp:forward page="要转发的资源"></jsp:forward>

隐式对象

jsp被翻译成servlet之后,service方法中有9个对象定义并初始化完毕

out

out的类型:JspWriterout作用就是想客户端输出内容 out.write()out缓冲区默认8kb可以设置成0 代表关闭out缓冲区内容直接写到respons缓冲区out写的内容写到out缓冲区当中最后再把out缓冲区当中的内容合并到response缓冲区当中

request

得到用户请求信息对象

response

服务器向客户端的响应对象

config

服务器配置,可以取得初始化参数

session

用来保存用户会话的信息

application

所有用户的共享信息,就是servletContext工程上下文

page

指当前页面转换后的Servlet类的实例

pageContext

jsp页面的上下文对象,包含在这个jsp范围内的信息

exception

表示JSP页面所发生的异常,在错误页中才起作用,只有是错误页面的时候,才会有该对象

对于pageContext它和session,request,servletContext一样也是域对象

所以它也有这三个方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
setAttribute(String name,Object obj)
getAttribute(String name)
removeAttrbute(String name)

除此之外它比较特殊的是它还能到其他域存取数据,也就是说只需要这一个对象就可以就可以传递各个参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 /*
 setAttribute(String name,Object obj,int scope)
 removeAttrbute(String name,int scope)
 findAttribute(String name)
*/
// 比如用pageContext给resquet设信息
pageContext.setAttribute("name","zhangsan",REQUEST_scope) ;

// 它是去所有域中去找参数,找到了就停止
// 查找顺序依次从pageContext域,request域,session域,application域中获取属性
findAttribute(String name)

还可以获得其他8大隐式对象

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 比如
HttpServletRequest request = pageContext.getRequest()
HttpSession session = pageContext.getSession()
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT那个小笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
❤️【python入门项目】使用 Tkinter 的 日历 GUI 应用程序❤️
本文章为系列文章,共三个 python 入门项目。初学者可以尝试实现这些项目,并在 Python 编译环境中动手操作。
海拥
2021/08/24
2.9K0
Python-master,实用Python脚本合集!
Python这门语言很适合用来写些实用的小脚本,跑个自动化、爬虫、算法什么的,非常方便。
派大星的数据屋
2022/07/06
4640
Python-master,实用Python脚本合集!
软件测试|超好用超简单的Python GUI库——tkinter(五)
在之前,我们介绍了tkinter的button控件,label控件,今天我们介绍一下entry控件,entry控件我们可以理解为界面的内容输入框,实现GUI界面与用户的信息交互,最典型的场景就是我们在登录时需要输入的账号密码。
霍格沃兹测试开发Muller老师
2023/04/10
9530
​Python | GUI编程之tkinter (一)
本文内容为使用Python3的tkinter模块,开发GUI。在阅读本文前,请确保你已经或可能满足以下条件:
LogicPanda
2019/07/30
6.1K0
打造个性化日历:Python编程实现,选择适合你的方式!
在本文中,我们将使用Python编写一个简单的日历程序。虽然市面上已经存在现成的日历功能,并且有第三方库可以直接调用实现,但我们仍然希望通过自己编写日历程序来引出我认为好用的日历实现。希望这篇文章能够对你有所帮助。
努力的小雨
2024/02/05
7900
七个Python必备的GUI库,这次一定要学会!
GUI(图形用户界面),顾名思义就是用图形的方式,来显示计算机操作的界面,更加方便且直观。
小F
2021/04/28
4.7K0
七个Python必备的GUI库,这次一定要学会!
Python3 初学实践案例(7)tkinter 入门 GUI 的密码生成程序
本文讲述了一位初学者编写的一个基于Python的密码生成器程序。程序使用tkinter库创建了一个简单的图形用户界面,用户可以输入密码的长度并选择密码的强度。程序根据输入生成一个随机的强密码,并将其输出到剪贴板。同时,程序还提供了一个简单的方法,用于将生成的密码复制到剪贴板。该程序是一个简单的密码生成器,适合用于网络安全领域和教育目的。
FungLeo
2018/01/08
1.6K0
Python3 初学实践案例(7)tkinter 入门 GUI 的密码生成程序
python tkinter 简单实例
# 1920*1080    表示在屏幕在宽度上上有1920个点, 高度上有1080个点
用户7886150
2020/12/28
2.6K0
TKinter 项目 - 计算器
Tkinter - 计算器 模拟系统的计算器功能 实现一个简单的具有加减法等操作的计算器 使用tkinter 操作步骤 画GUI 给每个控件配置相应的事件 写逻辑代码 # 第一步: 画出图形界面上部 from tkinter import * root = Tk() # 定义面板的大小 root.geometry('250x380') root.title("北京图灵学院") # 定义面板 # bg代表背景颜色(background), #dddddd是十六进制表示颜色的一个串 frame_sho
ruochen
2021/07/22
7100
TKinter 项目 - 计算器
Python GUI编程:Tkinter
Python里的图形化界面(GUI)模块主要有Tkinter(python自带)、PyQt、wxPython,我们这节主要讲解Tkinter组件:
小雨coding
2020/08/03
7.4K0
Python|Tkinter实现一个简单的GUI界面
Tkinter是python自带的一个可以编程的GUI,能将python代码封装成一个GUI;当然,Tkinter可以更好的为使用者带来视觉上的效果,可以将单调的代码变成一个有趣的GUI界面。
算法与编程之美
2020/05/29
2.3K0
Python|Tkinter实现一个简单的GUI界面
Tkinter 入门之旅
Tkinter 作为 Python 的标准库,是非常流行的 Python GUI 工具,同时也是非常容易学习的,今天我们就来开启 Tkinter 的入门之旅
周萝卜
2021/11/08
6.6K0
教你用Python写界面
作为Pyhon开发者,你迟早都会碰到图形用户界面(GUI)应用开发任务,这时候我们就需要一些界面库来帮助我们快速搭建界面,python的界面库很多,我认识的并不多,这里只列出几种我认识的
py3study
2020/01/07
4.6K0
教你用Python写界面
python tkinter 设计指南
pack() 是一种较为简单的布局方法,在不使用任何参数的情况下,它会将控件以添加时的先后顺序,自上而下,一行一行的进行排列,并且默认居中显示。pack() 方法的常用参数如下所示:
独元殇
2023/03/21
7.1K0
Python GUI编程 | 10分钟轻松学会Tkinter
图形用户界面(GUI)是为用户交互提供灵活性的界面,很多小伙伴都希望把自己的Python小程序都加上一个可视化界面。即美观,又有交互性。常见的Python必备的GUI库有:Tkinter、PyQt5、Kivy、wxPython、PySimpleGUI等等。后续这些有用有趣的模块在快学Python都会陆续介绍的。
快学Python
2021/08/09
10.9K1
Tkinter教程(每天半小时,3天彻底掌握Tkinter)day2
grid() 方法相比 pack() 方法来说要更加灵活,以网格的方式对组件进行布局管理,让整个布局显得非常简洁、优雅。
红目香薰
2022/11/30
4.1K0
Tkinter教程(每天半小时,3天彻底掌握Tkinter)day2
python3 GUI
参考一:https://www.cnblogs.com/monsteryang/p/6558904.html 参考二:https://blog.csdn.net/yingshukun/article/details/53983812 参考三:https://blog.csdn.net/C_Creator/article/details/52383334
py3study
2020/01/06
1.2K0
python3 GUI
Python Tkinter GUI
Tkinter是一个python模块,是一个调用Tcl/Tk的接口,它是一个跨平台的脚本图形界面接口。Tkinter不是唯一的python图形编程接口,但是是其中比较流行的一个。最大的特点是跨平台,缺点是性能不太好,执行速度慢。
py3study
2020/01/13
1.9K0
如何用python做一个简单的输入输出交互界面?
其中比较出名的有「PyQT」、**wxPython、tkinter,**前两个是第三方库,tkinter是Python内置的标准GUI模块,特点是简单快捷,Python自带的IDLE就是它开发的。
派大星的数据屋
2022/04/03
1.6K0
如何用python做一个简单的输入输出交互界面?
Python 之 tkinter 学习笔记
最近有个小需求需要实现,最后要给出一个 GUI 界面,想了想还是不用 c++ 写 MFC 了,因为还涉及到网络编程,感觉还是简单事情简单做,然后转手写 python,刚开始想尝试 pyqt,但感觉好像还是有点麻烦,本来就只是做个插件,最后就大概看了一下内置的 tkinter,一边写一边学也马上就上手了,总的来说感觉还是简单的。
EmoryHuang
2022/10/31
7.2K0
Python 之 tkinter 学习笔记
相关推荐
❤️【python入门项目】使用 Tkinter 的 日历 GUI 应用程序❤️
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验