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:

相关推荐
William.csj12 分钟前
Bitvise——进入服务器的快捷方式
运维·服务器
CS_素锦少年2 小时前
Linux_kernel驱动开发11
linux·运维·驱动开发
纪伊路上盛名在2 小时前
商务办公tips2:如何获取网页内嵌pdf文件
学习·搜索引擎·pdf·学习方法·everything
结衣结衣.2 小时前
Linux——进程状态
linux·运维·服务器·c语言·笔记·学习
好奇龙猫2 小时前
【诉讼流程-健身房-违约认定-私教课-诉讼书前提材料整理-民事诉讼-自我学习-铺平通往法律的阶梯-讲解(2)】
学习·其他
手捧向日葵的话语2 小时前
序列化和反序列化
服务器·网络·计算机网络
blaizeer2 小时前
Linux 入门:简单的基础操作
linux·运维·服务器
Eliauk &2 小时前
【docker】通过云服务器安转Docker
java·运维·服务器·spring cloud·docker·容器
网安大师兄3 小时前
如何逼自己自学三个月——网络安全(黑客技术)
网络·sql·学习·安全·web安全·网络安全
GottenZZP3 小时前
如何利用Samba跨平台分享Ubuntu文件夹
linux·运维·ubuntu