前端基础知识 -- 04

@什么是web开发?项目开发分为哪几种模式?项目开发分为bs和cs模式,各有什么异同点?
JSP+JAVABEAN开发模式
特点:该模式将业务逻辑与页面进行分离,在一定程度上增加了程序的可调试性和维护性。
缺点:页面将控制与显示集于一身

JSP+Servlet+JavaBean开发模式:
特点:JSP作为视图,来表现页面,Servlet作为控制器,控制程序的流程并调用业务进行处理,JavaBean封装了业务逻辑,遵循了MVC设计模式。
缺点:没有统一的开发框架导致开发周期长

Struts开发方案:
特点:成熟的MVC开发框架
构成:
控制器:
ActionServlet组件:Struts框架的中央控制器
RequestProcessor组件:每个子模块都具有的请求处理器
Action组件:业务代理,将调用模型进行一项具体的业务逻辑处理。
视图:JSP、HTML、JavaScript、CSS

Spring开发方案:
特点:拥有IOC和AOP两种先进的技术为基础,玩么简化了企业级开发的复杂度。
构成:
核心模块,实现了IOC模式,包含BeanFactory类负责对JavaBean的配置与管理。
上下文模块:继承BeanFactory类
AOP模块:提供了用Java语言编写的AOP框架
DAO模块:提供了JDBC的抽象层,并且提供了对声明式事务和编程式事务的支持
Web模块:建立在上下文模块基础上,提供了Servlet监听器的Context和Web应用的上下文。

Struts+HIbernate开发方案:
特点:利用Struts的MVC设计模式,与Hibernate持久化对象组成的开发方案。

Struts+Spring+hibernate开发方案:
特点:Struts复制表示逻辑层,Spring负责逻辑层的业务,Hibernate持久层中数据库的操作,组成的开发方案。

CS:Client-Server 胖客户端,长链接,客户端和服务端双向通信。

BS:Browser-Server 瘦客户端,无状态短连接,是查询式的通信。只有客户端向服务器查询时服务器才能向客户端发送信息。

@@MVC思想
MVC(Model View Controller)是一种软件设计的框架模式,它采用模型(Model) – 视图(View) – 控制器(controller)的方法把业务逻辑、数据与界面显式分离。把众多的业务逻辑聚集到一个部件里面。

View层 (浏览器), 发送HTTP请求 —>向控制层(Controller)控制转发给业务逻辑层 --> 向业务逻辑层发送请求 通过JDBC连接数据库 --> 数据库DB处理,将JDBC数据库操作结果返回 —> Model业务逻辑层 ,业务逻辑结果返回 --> 控制层 ,控制层进行HTTP相应 —> 浏览器
框架的基础构建思想。MVC是一种思想,是一种方法论。

@HTTP通信协议是什么?https通信协议?二者之间有什么联系?CA认证机制?HTTPS使用了什么样的加密机制?
HTTP协议:
HTTP协议是一种使用明文数据传输的网络协议。
HTTP是无连接的,限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接。HTTP是媒体独立的,只要客户端和服务器知道如何处理的数据内容,任何数据都可以通过HTTP发送。HTTP是无状态的,协议对于事务处理没有记忆能力,缺少状态意味着如果后续处理需要前面的信息,则必须重新传输数据。HTTP默认端口号是80.
HTTPS协议:
在HTTP的基础上增加了数据加密。在数据进行传输之前,对数据进行加密,然后再发送到服务器。
HTTPS内容加密,使用混合加密,结合非对称加密和对称加密技术。客户端使用对称加密生成密钥对传输数据进行加密,然后使用非对称加密的公钥在对密钥进行加密。数字摘要,通过单项hash函数对原文进行哈希,将需要加密的明文摘要成遗传固定长度的密文。不同的明文摘要成的密文结果是不同的。数字签名技术,数字签名建立在公钥加密体制基础上,是公钥加密技术的另一类应用。他把公钥加密技术和数字摘要结合起来,形成了使用的数字签名技术。

区别:
HTTPS协议需要到CA申请证书。
HTTP是超文本传输协议,信息是明文传输,HTTPS是具有安全性的SSL 加密传输协议。
HTTP和HTTPS使用的是完全不同的链接方式,用的端口也不一样,HTTP是80,HTTPS是443
HTTP的链接很简单,无状态;HTTPS协议是由SSL+HTTP学医构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全。

客户端:发送请求:请求行、请求头、请求体
服务器端:

客户端通过HTTP通信协议向服务器端发送客户端请求
服务器端服务使用HTTP响应客户端
HTTP使用的是对称的加密。公钥和私钥彼此之间可以互相解密。

公钥:解密
私钥:加密

@什么是jsp?jsp是如何运行的?jsp的生命周期是怎么样子的?
jsp是对servlet进行了包装。jsp+java类(service、JavaBean)+servlet,会构成MVC的开发模式。
jsp运行在服务器上,他的基础是servlet
jsp的生命周期和servlet的生命周期一样。
jsp是在容器上运行的,被编译成了一个servlet。

jsp运行原理:
WEB容器接收到以.jsp为扩展名的URL的访问请求时,他将把该访问请求交给jsp引擎去处理。Tomcat中的JSP引擎就是一个servlet程序,他负责结识和执行jsp界面。
每个jsp页面在第一次被访问时,jsp银枪将它翻译成一个servlet源程序,接着再把这个servlet源程序编译成servlet的class类,然后再有web容器(servlet引擎)像调用普通servlet程序一样的方式来装载和解释执行这个由jsp页面翻译成的servlet程序。

jsp执行过程:
客户端发出请求
web容器将jsp转译成servlet源代码
web容器将产生的源代码进行编译
web容器加载编译后的代码并执行
把执行结果响应至客户端。

@jsp的九大内置对象?
输入输出对象:out、response、request
通信控制对象:pageContext、session、application
Servlet对象:page、config
错误处理对象:exception对象

域属性:
pageScope:从page范围域属性空间中查找指定的key
只在一个页面中保存属性,跳转页面无效
requestScope:从request范围域属性空间中查找指定的key
只在一次请求中保存属性,服务器跳转有效,浏览器跳转无效
sessionScope:从session范围域属性空间中查找指定的key
在一个会话范围中保存属性,无论何种跳转均有效,关闭浏览器后无效
applicationScope:从application范围域属性空间查找指定的key
在整个服务器中保存,所有用户都可以使用。

JSP中四大域对象:
ServletContext:context域
HTTPServletRequest:request域
HTTPSession:session域
PageContext:page域
域对象的作用:保存数据、获取数据、共享数据

@jsp的四大缓存对象?
servlet三大域对象:request、session、response在HTTP通信协议中的生命周期

  1. 客户端向服务器端发送 request请求。
  2. 服务器端向客户端发送 response响应
    request请求:客户端浏览器使用HTTP通信协议向服务器发送请求。
    response:服务器使用HTTP通信协议向客户端进行响应。
    session:客户端和服务器端使用HTTP建立通信的整个过程就是一次会话。一次session会话可能包含若干次request和response。也就是session是request+response的过程(session是一个请求响应的过程)。

HTTP通信协议的流程:
1.浏览器发送request客户端请求
2. 服务器接收客户端请求并进行业务逻辑处理。
3. 服务器使用response将处理结果内容响应给客户端浏览器
4. 浏览器将response响应内容解析并显示。

request请求的形式:get、post、delete、put、等多种形式

@jstl常用的标签?

导入标准标签库        core fmt等标签库
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" >

if标签:
<c:if test="${user.id==1}"</c:if>

out标签:
<c:out value="aaa"/>
<c:out value="${aaa}"/>
<c:out value="${aaa}" default="xxx" />

set标签:
<c:set var ="username" value="123"/>

remove标签:
<c:remove var="a" scope="page" />

choose标签:
<c:set var="score" value="${user.score }"/>
<c:choose>
    <c:when test="${score > 100 || score < 0}">错误的分数:${score }</c:when>
    <c:when test="${score >= 90 }">S级</c:when>
    <c:when test="${score >= 80 }">A级</c:when>
    <c:when test="${score >= 70 }">B级</c:when>
    <c:when test="${score >= 60 }">C级</c:when>
    <c:otherwise>D级</c:otherwise>
</c:choose>

URL标签:
<c:url value="/" />

foreach标签:
<c:if test="${ (i.count) % 3 eq 0 }"></c:if>
//List变量
<c:forEach var="item" items="${userList }">
    <c:out value="name: ${item }"/><br/>
</c:forEach>
​
//Map遍历
<c:forEach var="item" items="${stu }">
    <c:out value="${item.key }: ${item.value }"/><br/>
</c:forEach>

fmt标签:
<fmt:formatDate value="${d1}" pattern="yyyy-MM-dd HH:mm:ss" />\

获取List长度:
${fn:length(userList) }

@EL表达式?
是一种结构化的表达方式 通过结构化的表达方式获取四大缓存中的数据结构中的数据方式,例如:sessionScope.stu0.stuName.
是一种在JSP页面获取数据的简单方式(只能获取数据,不能设置数据)
EL获取数据(从四大域中获取属性):

  1. 如果没有使用EL的内置对象,则查找数据顺序是依次按照由小到大范围从四大域中查找指定名称的属性值
  2. 使用EL内置对象,从指定域获中获取数据,提高了查找效率

注意:
EL表达式不能出现在Java代码块、表达式块等JSP动态代码部分
EL只能从四大域属性空间获取数据(pageContext、request、session、application)
EL不会抛出空指针异常,不会抛出数组越界异常,只会不显示
EL不具有对字符串进行处理的能力,可以使用JS他俩的EL或者自定义的EL函数。

@自定义标签?(即将被废弃)只了解
为了使到jsp容器能够使用标签库中的自定义行为。需要满足:
从一个指定的标签库中识别出代表这种自定义行为的标签
找到实现这些自定义行为的具体类

@get请求和post请求的异同点?
get:从指定的资源请求数据,查询字符串键值对是在get请求的URL中发送的。
post:向指定的资源提交要被处理的数据。查询字符串的键值对是在post请求的HTTP消息主体中发送的。

使用方面的区别(非本质区别):
get使用URL或cookie传参,而post将数据放在body中。
get方式提交的数据有长度限制,则post的数据则可以非常大。
post比get安全,因为数据在地址栏上不可见。

本质区别:
get和post最大的区别主要是get请求是幂等性的,post请求不是。幂等性是指一次和多次请求某一个资源应该具有同样的副作用。即对同一个URL的多个请求应该返回同样的结果。get请求最好不要做数据的增删改这些有副作用的操作。get请求是幂等的,在网络不好的时候会尝试重试,如果get请求增数据,会有重读操作的风险。
HTTP协议对get和post都没有对长度的限制。

@转发和重定向的异同点?
转发法从request发出动作,重定向从response发出动作
request.getRequestDispatcher(“new.jsp”).forward(request, response);//转发到new.jsp
response.sendRedirect(“new.jsp”);//重定向到new.jsp
转发:本来请求的是A,但是看到的是B的内容
重定向:浏览器解析到一个状态码,然后又重新请求一次Location。
不同:
重定向:地址发生变化、进行两次请求、可以转到外部站点。重定向是一种客户端的行为,会改变他的URL,不会共享同一个request,可以指向任意的URL,必须是绝对路径。
转发:地址不变、进行了一次请求、不能转到外部站点,只能转到本服务器下的站点。是服务器行为,转发不会改变浏览器的URL,共享同一个request对象,也只能在同一web应用下使用,所以效率比较高。

Servlet
先有的servlet再有的jsp,jsp是先转换成一个servlet来执行。
Servlet的概念
servlet的生命周期(servlet的执行流程):
请求Web容器加载、
new创建实例化,并以init的方式初始化、
接受客户端请求(request),并进行响应(response)
web容器销毁回收(distroy)
servlet工作模式:
运行在服务器端、必须在web容器中运行。常用web容器:Tomcat、WebLogic、websphere
filter过滤器:
规定了某些数据,对其他数据进行过滤。
客户端浏览器发送request到Filter1,然后发送chain.doFilter到Filter2,最后发送request到服务器。服务器返回response到Filter2,Filter1,最后返回给浏览器。
request请求正向穿过过滤器
response响应是反向逆序穿过过滤器。
实现方式:实现框架提供的接口,通过重写接口方法定义业务逻辑。

Listener监听器:HeadFirst设计模式
AOP的思想是由监听器来实现的
监听器是使用观察者模式进行实现,用于监听容器中的某些对象的状态变化,并触发相应的处理动作。通过重写监听器接口来触发。

webservlet注解需要指定value或者initParams 两个参数中的一个,用于表示请求的映射路径

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值