Web后端开发知识点整理
九大内置对象
1:为了方便开发者而在jsp页面加载完毕时而自动创建的内置对象
内置对象名 类型
request HttpServletRequest
response HttpServletResponse
config ServletConfig
application ServletContext
session HttpSession
exception Throwable
page Object(this)
out JspWriter
pageContext PageContext
四大作用域
ServletContext context域
HttpServletRequet request域
HttpSession session域
PageContext page域
1:ServletContext
当Web应用被加载进容器时创建,当服务器关闭或Web应用被移除时,ServletContext对象跟着销毁,这个作用域是最大的,可以在不同的浏览器之间共享数据
2:HttpServletRequet
在整个Request请求链中都起作用,可以在页面之间传递对象数据
3:HttpSession
HttpSession 在服务器中,为浏览器创建独一无二的内存空间,在其中保存会话相关的信息。每启动一个浏览器都会有自己的session域,不过在一个浏览器中,可以随时取出所存储的值,当然这个session默认存在的时间为30分钟,超时自动销毁,比如说一个用户是否登陆的token标记可以存入该作用域中
4:pageContext
主要存储的对象作用于当前的页面,感觉一般情况下也用不到,比如说在当前页面存入的对象,也就只能在当前页面取出使用
5:综上所述,这几个作用域的范围就pageContext < HttpServletRequet < HttpSession < ServletContext ,大家根据实际情况灵活运用即可
session与cookie的区别
1:cookie数据存放在客户的浏览器上,session数据放在服务器上。
2:cookie不安全,因为cookie信息大家都可以从本地获取进行分析
3:session会在一定时间内保存在服务器上。当访问增多,会影响服务器的性能,所以数据量比较大的信息可以放入cookie,譬如京东的购物车可以在不登陆的情况下进行添加,此时的商品信息就可以存入到cookie
4:浏览器的不同站点会有自己对应的cookie,但是一个session作用于整个浏览器
servlet的生命周期
1:init(ServletConfig)方法,负责初始化Servlet对象,在Servlet的生命周期中,该方法执行一次;该方法执行在单线程的环境下,因此开发者不用考虑线程安全的问题;
2:service(ServletRequest req,ServletResponse res)方法,负责响应客户的请求;为了提高效率,Servlet规范要求一个Servlet实例必须能够同时服务于多个客户端请求,即service()方法运行在多线程的环境下,Servlet开发者必须保证该方法的线程安全性;
3:destroy()方法,当Servlet对象退出生命周期时,负责释放占用的资源;
Nginx与apache的异同
1:轻量级,同样启动WEB服务,比Apache占用更少的内存以及资源;
2:抗并发性能高,核心区别在于Apache是同步多进程模型,一个连接对应一个进程。Nginx是异步的,多个连接(万级别)可以对应一个进程;
3:Nginx模块较少,配置简单,所以Nginx可以将资源用在数据处理以及进程上面,Apache模块较多比较全,相对稳定,但在内存资源上消耗比较大;
4:Nginx可以在不间断的情况下进行软件版本的升级;
5:Nginx处理静态页面性能比apache高3倍多;