Java Web相关
Web工程搭建参考:https://www.bilibili.com/video/BV1Qf4y1T7Hx?p=91&vd_source=bb2ac23e78d52dd5cfbc35180c451a2d
BS结构:
参考:https://www.bilibili.com/video/BV1Z3411C7NZ?p=8&vd_source=bb2ac23e78d52dd5cfbc35180c451a2d
本质上tomcatweb服务器负责调用main方法,启动时便执行,只要实现jkarta.servlet下接口编写实现类,注册到web.xml文件中即可,web.xml中注册servlet所必须的全限定类名以及对应的url即实现了前端通过输入url从而访问对应的应用
服务器启动时并不会创建定义的servlet对象
Servlet
1.Servlet主要方法
init()
service()
destroy()
2.Servlet生命周期
init初始化阶段:加载Servlet对象,ServletConfig对象
service运行阶段:构造HttpServletrequest以及HttpServletResponse对象
destroy销毁阶段:停止Servlet,释放资源
3.响应Web客户请求流程
1.Web用户向Servlet容器发出Http请求
2.Servlet容器解析Web客户的Http请求
3.Servlet容器创建一个HttpServletRequest对象,在对象中封装Http请求信息
4.Servlet容器创建一个HttpServletResponse对象
5.Servlet容器调用HttpServlet的service方法,方法中会依据request的method来判断具体是执行doGet还是doPost,两种方法是创建HttpServlet时需要覆盖的方法,把HttpServletRequest以及HttpServletResponse对象作为sevice方法的参数传给HttpServlet对象
6.HttpServlet调用HttpServletRequest有关方法,获取 Http请求信息
7.HttpServlet调用HttpServletResponse有关方法,生成响应数据
8.Servlet容器把HttpServlet的响应结果传给web用户
4.HttpServletResponse应用
1)生成验证码
2)下载文件
3)重定向
重定向地址为验证码的地址
重定向和转发的区别:
相同点:页面均会跳转
不同点:请求转发forward时,url不会发生变化,只发生了一次请求 307;重定向redirect时,url会发生变化 发生了两次请求,第二次请求重定向的url 302
本质区别:
转发:由WEB服务器控制,A资源跳转到B资源,跳转步骤是在WEB服务器内部完成的
重定向:是浏览器完成的,具体跳转资源浏览器来决定
5.HttpServletRequest应用
获取前端参数,请求转发
注意不要忘记设置web.xml中的servlet标签以及Mapper映射标签
6.Cookie
注意中文乱码问题,resp响应头也要设置编码类型
7.Session
设置Session
获取Session
Session失效
Cookie与Session的区别
Cookie是服务器把用户的数据写给用户的浏览器,浏览器保存(可写多个然后在浏览器保存多个)
Session把用户的数据写到用户独占Session中,服务器端保存(保存重要的信息,减少服务器资源的浪费),Session针对每个用户存有唯一一个ID
Session对象由服务器创建
使用场景:
保存一个登录用户的信息
购物车信息
在网站中经常使用的信息
在web服务器中有一个session列表,类似于map集合,map集合的key存储的是sessionid,value存储的是对应的session对象
用户第一次请求,服务器生成session对象,同时生成id,将id发送给浏览器
用户第二次请求,自动将浏览器内存中的id发送给服务器,服务器根据id查找session对象
JSP
Java Server Pages java服务端页面
是一种动态的网页技术,其中既可以定义HTML/JS/CSS等静态内容,还可以定义Java代码的动态内容
1.快速入门
配置坐标
创建jsp文件
在web工程文件下创建jsp文件
编写代码
代码完成之后启动Tomcat
结果:
2.jsp脚本
<% %>中书写代码,如果需要构造代码中添加html标签,那么可以考虑利用<% %>进行截断
3.EL表达式
基本语法: ${obj}
底层是从域中取对应的数据,然后调用obj对象的tostring方法,转换成字符串
Filter
参考另一篇文章拦截器与过滤器的区别
Listener
MVC架构模式
本文来自博客园,作者:面向机器编程,转载请注明原文链接:https://www.cnblogs.com/face-to-machine-program/articles/16264902.html