JSP的静态包含和动态包含区别
静态包含语句:<%@ include file="路径" %>
动态包含语句:<jsp:include page="路径"></jsp:include>
区别:两者的执行结果都是相同的,但是执行过程不同,静态包含先包含,后编译处理,而动态包含先编译处理,后包含,如果去执行这2个jsp页面命令看看生成的文件就知道了,静态包含对应只生成一个class文件,动态包含则不止生成一个class文件,那么这样当在包含的时候如果主文件包含其他文件时变量名相同就会导致冲突覆盖变量问题,而动态包含则不会,相当于调用不同的jsp,变量的空间都不同,自然不会覆盖,所以一律推荐使用动态包含语句
JSP的九大内置对象和四大作用域
九大对象:pageContext,request,response,session,application,config,out,page,exception
四大作用域:page范围:只在一个页面中保存数据(eg:pageContext.setAttribute(key,value)和pageContext.getAttribute(key)方法来测试)
request范围:只在一个请求中保存数据(对应都有setAttribute和getAttribute方法设置和获取数据)
session范围:在一次会话范围中保存数据,默认会话30分钟,只要不关掉浏览器保持单个用户访问就行了。
application范围:在整个服务器上保存数据,所有用户共享
cookie和session的区别:cookie的信息是存放在客户端的,session的信息是存放在服务器端的
提交数据的get方式和post方式区别:① get方式提交的数据放在url后面,以?分割url和传输数据,参数之间以&相连,post方式提交的数据放在数据包中;② get方式提交数据对长度有限制,而post方式理论上对长度无限制; ③ get在浏览器回退是无害的,而post在浏览器回退会再次请求 ④ get的主要优点是效率高
Cookies功能:主要用于实现保存账号密码
cookies其实是一种服务器和浏览器交换数据的方式,cookies由服务器创建,发送给浏览器,浏览器把cookies保存在用户本地,当再次访问网站的时候,就把cookies发送给服务器。
Session,即会话,会话指的是从用户打开浏览器访问一个网站开始,无论在这个网站中访问了多少页面,点击了多少链接,都属于同一个会话。 直到该用户关闭浏览器为止,都属于同一个会话。采用键值对方式存储数据。比如登录一个网站,登录后,在短时间内,依然可以继续访问而不用重新登录。但是较长时间不登录,依然会要求重新登录,这是因为服务端的session在一段时间不使用后,就失效了。这个时间,在Tomcat默认配置下,是30分钟。可以通过 tomcat/conf/web.xml 中的session-config 配置进行保存时间调整
请求重定向(response.sendRedirect)和请求转发(request.getRequestDispatcher)只能适合jsp
JSTL标准标签库 和 EL表达式
EL(Express Lanuage)表达式可以嵌入在jsp页面内部,减少jsp脚本的编写,EL出现的目的是要替代jsp页面中脚本的编写。
JavaEE的三层架构
web层:与客户端交互
service层:复杂业务处理
dao层:与数据库进行交互
Web是一种典型的分布式应用架构,web架构的精华包括三个方面:HTML(超文本标记语言)技术是实现信息文档的表示,URL(统一资源定位)技术实现全球信息的精确定位,HTTP(超文本传输协议)实现分布式的信息传输。web的基本工作原理是请求与响应原理,用户通过浏览器向服务器发出请求,服务器对请求进行处理响应,把响应结果发给客户端,由浏览器解析显示所请求的结果信息。
浏览器中的GET请求和POST请求区别讲解:
GET请求 向服务器请求数据 参数带在请求路径后面,意味着参数会暴露着,不安全,一般不用来提交数据,只是用来获取数据, 参数长度有限
POST请求 向服务器提交数据 比如注册 post请求无长度限制 可以提交敏感数据,常用于提交表单
常见HTTP状态码:
200 请求成功,一切正常
404 请求页面找不到
403 没有权限