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:

相关推荐
wdfk_prog几秒前
ros教程02:创建 catkin Workspace、Package 与第一个 ROS1 C++ Node
运维·缓存·docker·容器·ros
斯维赤25 分钟前
AI Agent学习之路 | Prompt Engineering(提示词工程)的三板斧核心技巧
人工智能·学习·prompt
亚川楼宇自控系统数据中心厂家41 分钟前
高校 / 医院 / 政务云数据中心 IBMS 系统怎么落地?
运维
陈陈CHENCHEN1 小时前
【Linux】服务器根目录磁盘扩容操作记录
linux·运维·服务器
2301_802651083 小时前
imx6ull裸机开发:UART
学习
见闻小天地3 小时前
从晶片工艺到可靠性验证:晶威特TF-3215型RTC晶振全面解析
运维·业界资讯
沸速存储3 小时前
AI 机器人靠哪些内存与存储驱动整机运行?
服务器·科技·嵌入式硬件·电脑
辣知3 小时前
辣知·化智56 良渚神权与夏朝颠覆
学习
dadaobusi4 小时前
学习:三层交换机
学习
名字还没想好☜4 小时前
Docker 网络实战:bridge/host/none/自定义网络、容器互通与端口映射踩坑
运维·docker·kubernetes