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架构模式

 

posted @ 2022-05-12 23:13  面向机器编程  阅读(32)  评论(0编辑  收藏  举报