javaweb学习

javaweb就是实现浏览器和服务器之间的交互

1、服务器配置

Run->Edit Configurations,点击右上角的+号,选择Tomcat Server的local:

选择server下的Configure...,在弹出的界面里点击有上角的+号,选择自己解压的合适的tomcat版本,选择apply,再选择Deployment,点击加号,添加第一个,点击apply后点击ok即可

2、导入servlet-api.jar

File-->Project Structure-->Libraries-->绿色的+图标-->Java-->选择自己上一步导入的Tomcat文件夹下面lib文件夹的servlet-api.jar

3、静态页面(.html)与服务器通过post交互

form表单提交的数据会通过action属性知道要将数据给哪个服务器处理

比如下面这个表单actioon的值是hello1

那么点击运行之后会自动跳转到浏览器,在地址栏后面接着输入hello1.html就会进入上述表单所在静态页面,提交表单后系统会自动将/hello1.html路径变成action中的 /hello1 ,然后到会到web配置文件里找<url-pattern>是/hello1的配置,按以下顺序找到服务器,将数据交给该服务器

只要前端路径发生变化(加了 /hello1)也就是说提交了表单就会将数据传递给相应服务器,执行服务器中的service方法

在找到的服务器中通过

request.getParameter("参数名")

接收前端传来的数据(注意参数名与前端name的对应)

通过输出流来将处理过的数据输出到浏览器页面,不过要先设置输出数据的类型

response.setContentType("text/html;charset=utf-8");

服务器接收数据的其他情况:

1)浏览器里有多选框,多选框里选择的数据通过数组传递

String[] mps = request.getParameterValues("mp");

2)希望接收的数据可以支持中文:

request.setCharacterEncoding("utf-8");

刚刚是地址变化为 /hello1 会触发服务器处理数据,/地址是准确地址,只有输入地址准确才会与服务器交互,如果<url-pattern>的值是以*开头的代表的是任何地址

意味着表单的action可以是A.do   或者ABC.do都没有关系

只要是.do结尾的地址都可以与该服务器交互

4、动态页面(.jsp)与服务器交互

在动态页面中html(css,js)可以直接写,但是java代码要通过

1)<% java语句 %>

2)<%=java表达式%>

来实现。

Servlet给静态页面传递东西直接通过输出流out.println(数据)即可

但是动态页面其实也是一个servlet,两个servlet之间传递数据需要用到转发

一个jsp页面:

5、Cookie

可以把Cookie比喻成一个充值卡,用户(浏览器)到商家(服务器)消费并充值,商家就会给一个充值卡交给用户,用户保存好商家给的卡,当用户下次来就可以通过充值卡来消费

当服务器添加Cookie到response,将其传送到浏览器时,浏览器存储Cookie,如果里面数据包含中文,因为浏览器识别中文就是识别ASII码,所以会将中文通过编码转换为ASII码才能存储起来,当下一次浏览器访问服务器,将Cookie传递过去,服务器要接收Cookie里的数据,接收到的中文也是ASII形式的,所以要解码成中文形式

添加Cookie:Cookie以name-value形式存储

在浏览器地址栏后面加上 /addCookie 就会执行AddCookieServlet 中的service方法,就可以将Cookie传递给浏览器了,

在浏览器的设置中可以找到叫local的Cookie,查看里面的cookie可以发现中文是以ASII码存储的

服务器读取Cookie:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

220V降压5ⅤIC-AH8652

220V降压至5V的IC - AH8652 在电子设计中&#xff0c;电压转换是一个常见的需求&#xff0c;尤其是在需要将高电压转换为低电压以供电给微电子设备时。AH8652是一款专为降压转换设计的集成电路&#xff0c;它能够将220V的交流输入电压转换为稳定的5V直流输出&#xff0c;非常适…

java基础之变量,类型的转换,跟着哔站尚硅谷自学笔记。

变量 变量的介绍以及使用 1.变量的数据类型&#xff1a;基本数据类型&#xff1a;4类8种整数&#xff1a;byte short int long 浮点数&#xff1a;float double字符型&#xff1a;char布尔型&#xff1a;boolean引用数据类型&#xff1a;类 数组 接口 枚举 注解2.概述&#xf…

gptpdf:使用大模型(如 GPT-4o)将 PDF 解析为 markdown。

今天给大家分享一个开源的项目&#xff0c; 使用视觉大语言模型&#xff08;如 GPT-4o&#xff09;将 PDF 解析为 markdown。 方法非常简单(只有293行代码)&#xff0c;但几乎可以完美地解析排版、数学公式、表格、图片、图表等。 使用 GeneralAgent lib 与 OpenAI API 交互。…

C++笔试强训4

文章目录 一、选择题1-5题6-10题 二、编程题题目一题目二 一、选择题 1-5题 %o就是输出八进制的无符号数&#xff0c;0123&#xff0c;&#xff0c;以0开头&#xff0c;本来就是八进制&#xff0c;所以输出为123&#xff0c;123是十进制&#xff0c;转化为八进制就是173. 故选…

双向带头循环链表

一、概念 何为双向&#xff1a;此链表每一个节点的指针域由两部分组成&#xff0c;一个指针指向下一个节点&#xff0c;另一个指针指向上一个节点&#xff0c;并且两头的节点也是如此&#xff0c;头节点的下一个节点是尾节点&#xff0c;尾节点的上一个节点是头节点&#xff1b…

C++ — 引用浅谈

引言 在C的语法规则中&#xff0c;定义了一种新的方法&#xff0c;叫做引用。在学习的初期&#xff0c;引用的作用很类似于指针&#xff08;但需要注意引用不等于指针&#xff09;&#xff0c;引⽤不是新定义⼀个变量&#xff0c;⽽是给已存在变量取了⼀个别名。 在上边…

Cesium--获取当前相机中心与地面的射线焦点

本文记录获取当前相机中心与地面的射线焦点的方法&#xff0c;可用于视角缩放过程中&#xff0c;控制视角自动平滑切换到二维等场景&#xff1a; 方法一定是视角中心能与地面有交集&#xff0c;如果对着地平线或对着天空肯定是没效果的。直接放代码&#xff1a; //调整相机到正…

链接追踪系列-04.linux服务器docker安装elk

[rootVM-24-17-centos ~]# cat /proc/sys/vm/max_map_count 65530 [rootVM-24-17-centos ~]# sysctl -w vm.max_map_count262144 vm.max_map_count 262144 #先创建出相应目录&#xff1a;/opt/dockerV/es/…docker run -e ES_JAVA_OPTS"-Xms512m -Xmx512m" -d -p 92…

单目3D和bev综述

文章目录 SOTA2D 检测单目3d检测3d bev cam范式1 Transformer attention is all you need 20172 ViT vision transformer ICLR 2021google3 swin transformer 2021 ICCV bestpaper MS4 DETR 2020 decoder set match4 Deformabel DETR &#xff08;deformabel convolution&#…

c++包管理器

conan conan search&#xff0c;查看网络库 conan profile detect&#xff0c;生成缓存信息conan new cmake_exe/cmake_lib&#xff0c;创建cmakelists.txtconan install .&#xff0c;执行Conanfile.txt中的配置&#xff0c;生成相关的bat文件 项目中配置Conanfile.txt(或者…

k8s核心操作_存储抽象_K8S中的持久卷与持久卷申请_PV/PVC理解与搭建_解决联动删除动态存储管理---分布式云原生部署架构搭建029

我们之前使用nfs搭建了一个存储系统,并且使用nfs的自动同步,让,不同节点上部署的应用,都可以,访问到自己的配置文件,并且 当pod宕机,在其他机器上启动,也可以访问到配置文件,但是这里依然有问题. 1.首先对于nfs上的文件夹,现在是我们自己创建的,有很多程序会自动创建很多文件夹…

知识图谱与LLMs:实时图分析(通过其关系的上下文理解数据点)

大型语言模型 (LLM) 极大地改变了普通人获取数据的方式。不到一年前&#xff0c;访问公司数据需要具备技术技能&#xff0c;包括熟练掌握各种仪表板工具&#xff0c;甚至深入研究数据库查询语言的复杂性。然而&#xff0c;随着 ChatGPT 等 LLM 的兴起&#xff0c;随着所谓的检索…

贪心算法案例

1.买卖股票的最佳时机 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔…

贝塞尔曲线基础

贝塞尔曲线于1962年由法国工程师皮埃尔贝塞尔&#xff08;Pierre Bzier&#xff09;所广泛发表&#xff0c;他运用贝塞尔曲线来为汽车的主体进行设计。贝塞尔曲线最初由Paul de Casteljau于1959年运用de Casteljau演算法开发&#xff0c;以稳定数值的方法求出贝兹曲线。 贝塞尔…

基于ARM Cortex-M3单片机研发的国产指纹芯片 - P1032BF1

智能指纹锁的核心部件&#xff1a;主板、离合器、指纹采集器、密码技术、微处理器&#xff08;CPU&#xff09;、智能应急钥匙。作为指纹锁来说&#xff0c;重要的应该是指纹芯片。指纹锁是通过电子部件及机械部件的精密组合而生产出的安全产品。指纹锁的本质无非是安全、便捷、…

配置Redis时yml的格式导致报错

报错如下 java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:98) at org.springframework.test.context.su…

C++面试问题

C基础 什么是野指针&#xff1f; 指向未分配或已释放内存的指针。比如未初始化、delete后未指向空、保存了局部变量的地址 怎么解决野指针问题&#xff1f; 使用智能指针释放后置空指针初始化避免返回局部变量的地址 C空类会创造那些函数&#xff1f; 默认构造析构函数拷…

【Linux】重定向,dup2

2.重定向 2.1.输出重定向 1.输入重定项。 我们之前学习过的输出重定向就是&#xff0c;将我们本应该输出到显示器上的数据重定向输出到另一个文件中。那他的原理是什么了&#xff1f; 例如&#xff1a; 如果我们想让本应该输出到“显示器文件”的数据输出到log.txt文件当中&…

Spring webflux基础核心技术

一、 用操作符转换响应式流 1 、 映射响应式流元素 转换序列的最自然方式是将每个元素映射到一个新值。 Flux 和 Mono 给出了 map 操作符&#xff0c;具有 map(Function<T&#xff0c;R>) 签名的方法可用于逐个处理元素。 当操作符将元素的类型从 T 转变为 R 时&#xf…

Linux虚拟机扩展磁盘空间

文章目录 在VM上进行扩展新的磁盘空间进入虚拟机将扩展的磁盘空间分配给对应的分区 VM 下的Linux虚拟机提示磁盘空间不足&#xff0c;需要对其进行磁盘扩容&#xff0c;主要有以下两步&#xff1a; 在VM上进行扩展新的磁盘空间 先关闭虚拟机在VM的虚拟机设置处进行硬盘扩展 …