java web 知识 jsp

1. jsp:   Java Server Page

    jsp 文件 必须 由 应用服务器 部署(启动项目) ,部署后 用浏览器才能访问

2. jsp 运行原理:

idea 编译 部署项目的 位置:
C:\Users\74163\AppData\Local\JetBrains\IntelliJIdea2021.1\tomcat\c5b2c807-b7a6-4948-a9ca-71919e55968b
  这个 目录 下的 \work\Catalina\localhost\ROOT\org\apache\jsp
      index_jsp.java
      index_jsp.class

运行原理: jsp文件在第一次被访问时, jsp引擎先将它编译成一个Servlet源程序 即(.java文件)
         再把这个Servlet源程序 编译成 字节码文件 即(.class 文件)
         然后 由Web容器来装载和解释这个字节码文件

3. 欢迎页面:  (web.xml 中 配置)------- 但 一般 欢迎界面 就是 index.jsp
     index.html
     index.jsp


     <welcome-file-list>
             <welcome-file>index.html</welcome-file>
              <welcome-file>index.htm</welcome-file>
               <welcome-file>index.jsp</welcome-file>
     </welcome-file-list>


4. jsp 语法:

<%    代码片段       %>


注释:  在浏览器页面,中 注释均不显示
   <!--  注释内容 -->  html 注释, 这种注释在查看页面 源文件时 可以看见注释内容


   <%--  注释内容 --%> jsp 注释,  这种注释在查看页面 源文件时  注释内容不可见

表达式:
   <%=   %>   表达式 , 表达式的值 会转为String, 不能使用 分号; 结尾

声明: (很少使用)
  <%!  声明变量,常量,声明函数 %>

指令:
  <%@    %>
  <%@ page contentType="text/html;charset=UTF-8" language="java" %> 设置页面属性
  <%@ include file="" %>         包含哪些页面
  <%@ taglib uri=""  %>    引入标签库 (后期 jstl 会使用)


 form 是 表单:
       action  提交到的地址
       method  提交方式  post| get ,  post 方式比get 要安全

   表单元素:    表单元素 必须 添加  name 属性
      文本框   type="text"
      密码框   type="password"
      单选按钮  type="radio"
      多选按钮  type="checkbox"
      下拉框    select | option
      多行文本框   textarea
      文件域    type="file"

    按钮:  按钮 一般 不需要增加 name 属性
       type="submit"  提交按钮
       type="button"  普通按钮
       type="reset"   重置按钮

 5. jsp 内置对象  (9个内置对象)

 out:  jsp输出对象,

 request: 请求对象, 利用该对象的request.getParameter() 可以获得用户的请求参数

 response: 响应对象, 利用该对象的 sendRedirect() 可以实现 重定向

 session : 会话对象

 [page: 指向当前jsp的页面

 pageContext: jsp的上下文对象

 config:  ServletConfig对象

 application: ServletContext上下文对象

 exception:  异常对象

 ]

6. 转发 与 重定向
   重定向:   A->B->C

     A 向B 发出请求(第一次) 然后B 通过重定向的方式跳转到C
     但B不会直接向C 发出请求, 而是 先返回到A,通过A向C 发送请求(第二次请求)

   转发:   A->B->C
       A向B 发出请求(第一次),然后B通过转发的方式 跳转到C, B 直接发出请求到C

   转发与重定向都可以实现 页面的跳转,但 略有不同

  a. 请求次数不同:
        重定向比请求转发 多请求一次

  b. 地址栏不同
      重定向: 两次请求, 因此 地址栏 会发生改变  显示 的是 C.jsp
      转发: 仅是服务器内部的跳转, 因此 地址栏 不变 (显示的依然是B.jsp,但是 此时的内容为C.jsp)

  c.是否保留第一次请求时的数据:
        重定向 因为发送两次请求, 因此 不会保留第一次的请求数据
        转发 只发送一次请求,因此 会保留第一次的请求数据


7. jsp 四大作用域对象

  范围 由小变大 :  pageContext<request<session<application

pageContext   当前jsp 页面范围内有效
request       一次请求当中有效
session      一次会话中有效(关闭浏览器时 代表 会话结束)
application  整个web工程范围内有效(只要不重启tomcat,数据一直存在)  ------ 统计访问次数

   scope.jsp   scope2.jsp


 四大 作用域对象 通过 setAttribute(键,值) 设置 键值信息
                通过 getAttribute(键) 获得 值的信息  (注意要进行 强制类型转换)
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/734444.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

线程和进程

参考链接&#xff1a; 1.基本概念 进程&#xff1a;Windows系统中&#xff0c;一个运行的xx.exe就是一个进程。例如打开浏览器就是一个进程 线程&#xff1a;进程中的一个执行任务&#xff08;控制单元&#xff09;&#xff0c;负责当前进程中程序的执行。一个进程至少有一个…

【Web】关于Java反序列化那些实现机制的朴素通识

目录 原生⚔ 自定义 基于 Java 原生序列化机制&#xff1a; 基于自定义序列化机制&#xff1a; 基于Bean⚔基于Field 基于 Bean 的反序列化&#xff1a; 基于 Field 的反序列化&#xff1a; 常见序列化协议归类 原生⚔ 自定义 基于 Java 原生序列化机制&#xff1a; 特…

Android14 Handle机制

Handle是进程内部, 线程之间的通信机制. handle主要接受子线程发送的数据, 并用此数据配合主线程更新UI handle可以分发Message对象和Runnable对象到主线程中, 每个handle实例, 都会绑定到创建他的线程中, 它有两个作用,: (1) 安排消息在某个主线程中某个地方执行 (2) 安排…

Python学习之基础语法

一、HelloWorld 二、Python基础语法 2.1 字面量 定义&#xff1a;在代码中&#xff0c;被写下来的固定的值&#xff0c;称之为字面量。 常用的6种值的类型 字符串 Python中&#xff0c;字符串需要用双引号包围&#xff1b; 被双引号包围的都是字符串 666 13.14 "黑马…

深度学习预备知识(线性代数)

介绍&#xff1a; 深度学习是一种机器学习的方法&#xff0c;涉及到大量的线性代数运算。线性代数是研究向量空间和线性映射的数学学科。在深度学习中&#xff0c;线性代数常用于表示和处理输入数据和模型参数。下面是一些深度学习中常见的线性代数概念和运算&#xff1a; 1. …

数据结构之单链表及其实现!

目录 ​编辑 1. 顺序表的问题及思考 2.链表的概念结构和分类 2.1 概念及结构 2.2 分类 3. 单链表的实现 3.1 新节点的创建 3.2 打印单链表 3.3 头插 3.4 头删 3.5 尾插 3.6 尾删 3.7 查找元素X 3.8 在pos位置修改 3.9 在任意位置之前插入 3.10 在任意位置删除…

【python量化】基于okex API开发的海龟策略

介绍 基于okex api开发的海龟策略&#xff0c;okex海龟策略python实现方式。该程序目前只支持单品种&#xff0c;比如设置ETH后&#xff0c;只对ETH进行做多做空。该程序运行需要两样东西&#xff1a;apikey 和 标的 运行该程序之前&#xff0c;用户需要到okex网站去申请apiK…

嘉绩咨询:八位一体产业创新,赋能品牌新零售

探索新零售领域不断创新高峰的嘉绩咨询在今天全面展现了其“八位一体”产业创新模式&#xff0c;该模式旨在为新零售品牌提供全方位的赋能服务。立足于广州的企业战略导航专家&#xff0c;吹响了帮助中国品牌实现全球化发展的号角。 嘉绩咨询的核心业务涵盖招商教育、招商落地、…

【C++】6-12 运动成绩排名 分数 10

6-12 运动成绩排名 分数 10 全屏浏览 切换布局 作者 范鹏程 单位 内蒙古师范大学 某大学开田径运动会&#xff0c;现有12名选手参加100米比赛&#xff0c;对应的运动员号及成绩如表所示&#xff0c;请按照成绩排名并输出&#xff0c;要求每一行输出名次、运动员号及成绩。 …

Java学习笔记之IDEA的安装与下载以及相关配置

1 IDEA概述 ​IDEA全称IntelliJ IDEA&#xff0c;是用于Java语言开发的集成环境&#xff0c;它是业界公认的目前用于Java程序开发最好的工具。 集成环境&#xff1a; ​把代码编写&#xff0c;编译&#xff0c;执行&#xff0c;调试等多种功能综合到一起的开发工具。 2 IDEA…

穿戴产品功耗开发——外设篇

上一篇已对主控的硬件和软件层面做了相应的总结&#xff0c;本篇将从手表常见的外设来说明&#xff1a;外设不同状态下对穿戴产品功耗的影响。 手表常见的外设有&#xff1a; 人机交互&#xff1a;LCDTouch等。常见有TFT、AMOLED模组&#xff1b;生物医学传感器&#xff1a;P…

使用TTL直接对esp32-cam进行烧录

首先你要有一个usb转TTL下载器和一个esp32-cam 然后我们要将IO0与GND短接 UOR->TXD UOT->RXD 3V3->3V3 GND->GND

人工智能未来趋势

人工智能&#xff08;AI&#xff09;的未来趋势是多方面的&#xff0c;涵盖了技术进步、应用扩展、伦理法规等多个层面。以下是一些主要趋势&#xff1a; 算法进步&#xff1a;深度学习、强化学习等算法将持续优化&#xff0c;可能涌现出新的学习范式。例如&#xff0c;基于大…

[蜥蜴书Chapter2] -- 创建测试集

目录 一、规则 二、方法 1、seed 2、identifier 1&#xff09;选取一个身份号 2&#xff09;选取一定比例的身份号作为测试集 3&#xff09;身份号的选取&#xff1a; 3、利用scikit-learn&#xff1a; 1) 随机生成&#xff1a; 2&#xff09;注&#xff1a;分类 3&a…

【杂谈】-电动汽车的通信协议有哪些?

电动汽车的通信协议有哪些&#xff1f; 文章目录 电动汽车的通信协议有哪些&#xff1f;1、控制器局域网 (CAN)2、ISO 151183、CHAdeMO4、组合充电系统&#xff08;CCS&#xff09;5、Modbus6、本地互连网络 (LIN)7、Ethernet8、蓝牙&WIFI9、总结 电动汽车 (Electric vehic…

python判断ip是否是本机

银河麒麟服务器上下载脚本进行部署的时候&#xff0c;需要判断是部署在本机还是部署在远程服务器上&#xff0c;需要走不同的处理逻辑。 在Python中判断一个IP地址是否是本机的&#xff0c;可以采用以下方法&#xff1a; import socketdef is_local_ip(ip_address):# 获取本机…

Java共享问题 、synchronized 线程安全分析、Monitor、wait/notify

文章目录 1.共享带来的问题1.1 临界区 Critical Section1.2 竞态条件 Race Condition 2. synchronized语法及理解2.1 方法上的 synchronized 3.变量的线程安全分析3.1.成员变量和静态变量是否线程安全&#xff1f;3.2.局部变量是否线程安全&#xff1f;3.2.1 局部变量线程安全分…

Pycharm安装,环境初次配置与运行第一个简单程序

一、Pycharm安装 1.在PyCharm官网中&#xff0c;找到社区版下载链接&#xff0c;下载Pycharm社区版&#xff0c;社区版免费 2.下载成功后&#xff0c;双击下载好的安装包&#xff0c;点击下一步后&#xff0c;点击“浏览”更改安装路径到C盘以外其他硬盘&#xff0c;点击“下…

开发小需求:页面滚动一定距离后,顶部导航栏消失

在Vue3和TypeScript中实现网站顶部导航栏固定&#xff0c;并在页面滚动大于200px时&#xff0c;顶部导航栏消失&#xff0c;出现新的固定在顶部的导航栏 创建一个Vue组件来实现顶部导航栏的逻辑&#xff1a; <template><div class"navbar-wrapper"><…

【大厂AI课学习笔记NO.70】GitHub,GitLab,CODING等

GitHub及其相关产品详细介绍 一、GitHub 定义&#xff1a; GitHub是一个面向开源及私有软件项目的托管平台&#xff0c;因为只支持Git作为唯一的版本库格式进行托管&#xff0c;故名GitHub。它提供Git仓库的托管服务&#xff0c;并且提供多种功能帮助软件开发者更高效地协作和…