JavaWeb

一、JSP

1.JSP 有 9 大隐藏(内置)对象:可以直接使用的对象。
  1. request: 封装客户端的请求,其中包含来自 get 或 post 请求的参数;
  2. response:封装服务器对客户端的响应;
  3. pageContext:通过该对象可以获取其他对象;
  4. session:封装用户会话的对象;
  5. application:封装服务器运行环境的对象;
  6. out:输出服务器响应的输出流对象;
  7. config:Web 应用的配置对象;
  8. page:JSP 页面本身(相当于 Java 程序中的 this);
  9. exception:封装页面抛出异常的对象。
2.JSP 的 4 种作用域
  1. page:代表与一个页面相关的对象和属性。
  2. request:代表与客户端发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个 Web 组件;需要在页面显示的临时数据可以置于此作用域。
  3. session:代表与某个用户与服务器建立的一次会话相关的对象和属性。跟某个用户相关的数据应该放在用户自己的 session 中。
  4. application:代表与整个 Web 应用程序相关的对象和属性,它实质上是跨越整个Web 应用程序,包括多个页面、请求和会话的一个全局作用域。
3. 什么是指令?

通知容器,在将JSP转换成对应的Servlet源代码的时候做一些额外的操作,比如导包。
格式— <%@ 指令名 属性=值 %>
---------- page指令
import属性: 指定要导的包名,比如:<%@ page import=“java.util.*” %>
contentType属性: 设置response.setContentType方法的MIME类型。
pageEncoding属性: 设置JSP文件的编码。

4. JSP是如何执行的?

(1) 容器要将JSP转换成 一个对应的Servlet
​ html -------> 在service方法里,使用out.write输出。
​ <% %> -------> 照搬到service方法。
​ <%= %> ------->在service方法里,使用out.print输出。
(2) 容器再去调用该Servlet。

5.JSP标签和 EL表达式
  1. JSP标签是一种用来替换JSP中java代码的技术,语法类似于html标签(比如有开始标记,结束标记,有标签体,还有一些属性)。使用JSP标签,方便JSP文件的维护(因为将带有java代码的JSP文件交给美工去修改就很不方便),方便代码的复用。
  2. 是一套简单的运算规则,用于给JSP标签的属性赋值。注:EL表达式也可以脱离标签,直接使用。

二、Servlet

Servlet的生命周期包含了下面4个阶段:
  • 1.加载和实例化
  • 2.初始化
  • 3.请求处理(接收请求,处理请求,返回结果)
  • 4.服务终止
1.什么是Servlet
  • Servlet是用于扩展Web服务软件业务功能的组件
  • 每一种请求都需要对应一个单独的Servlet
2.Servlet响应流程

请求由浏览器发出到web服务器,由web服务器的web服务软件(Tomcat)接收,Tomcat接收到请求后会取出路径中的子地址(/HelloServlet)然后去web.xml中找到和此地址对应的Servlet的类名,然后通过反射技术把Servlet实例化出来,然后调用Servlet中的service方法,最终导致咱们写在service里面的代码得以执行。

3.浏览器发出请求的几种方式
  1. 在浏览器的地址栏中写请求路径 get
  2. 通过超链接发出请求 get
  3. 通过表单发出请求 get/post
4.请求方式post和get
  1. get:浏览器地址栏和超链接发出的请求都是get请求,特点: 请求参数在请求地址的后面,参数大小受限只有几k的数据,由于参数在请求地址后面可见所以安全性不能保证,有敏感信息时不能使用get请求方式
  2. post:只有通过form表单才能发出post请求,特点:请求参数放在请求体里面,没有大小限制,不可见安全性相对较高
  3. 总结:只有请求参数比较大或敏感信息时使用post请求,其它所有都使用get请求

三、JSP 和 servlet 有什么区别?

  • JSP 是 servlet 技术的扩展。本质上就是 servlet 的简易方式。
  • JSP 和 servlet 最主要的区别在于,servlet 的应用逻辑是在 java 文件中,并且完成从表示层中的 HTML 里分离出来,而 JSP 的情况是 Java 和 HTML 可以组合成一个扩展名为JSP 文件。
  • JSP 侧重于视图,而 servlet 主要用于控制逻辑。

四、Session 、Cookie

1.session 和 cookie 有什么区别?

session: 是一种将会话状态保存在服务器端的技术,数据保存在服务器。(银行卡)
Cookie : 是在 HTTP 协议下, Web 服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息。无论何时用户链接到服务器,Web 站点都可以访问Cookie 信息 ,数据保存在客户端。(打孔式的次卡)
存储位置不同: session 存储在服务器端;cookie 存储在浏览器端。
安全性不同: cookie 安全性一般,在浏览器存储,可以被伪造和修改。
容量和个数限制: cookie 有容量限制,每个站点下的 cookie 也有个数限制。
存储的多样性: session 可以存储在 Redis 中、数据库中、应用程序中;而 cookie 只能存储在浏览器中。

2.说一下 session 的工作原理?

session 的工作原理是客户端登录完成之后,服务器会创建对应的 session,session创建完之后,会把 session 的 id 发送给客户端,客户端再存储到浏览器中。这样客户端每次访问服务器时,都会带着 sessionid,服务器拿到 sessionid 之后,在内存找到与之对应的 session 这样就可以正常工作了。

3.如果客户端禁止 cookie 能实现 session 还能用吗?

可以用,session 只是依赖 cookie 存储 sessionid,如果 cookie 被禁用了,可以使用 url 中添加 sessionid 的方式保证 session 能正常使用。

五、forward 转发 和 redirect 重定向 的区别?

地址栏 url 显示: foward url 不会发生改变,redirect url 会发生改变;
数据共享: forward 可以共享 request 里的数据,redirect 不能共享;
效率: forward 比 redirect 效率高。

六、过滤器和拦截器

过滤器和拦截器触发时机不一样:过滤器是在请求进入容器后,但请求进入servlet之前进行预处理的。请求结束返回也是,是在servlet处理完后,返回给前端之前。
①拦截器是基于java的反射机制的,而过滤器是基于函数回调。
②拦截器不依赖与servlet容器,过滤器依赖与servlet容器。
③拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
④拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
⑤在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。
⑥拦截器可以获取IOC容器中的各个bean,而过滤器就不行,这点很重要,在拦截器里注入一个service,可以调用业务逻辑。

七、解释什么是JSON?

json就是一种在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互。
(1)JSON 是一种轻量级的数据交换格式。
(2)JSON 独立于语言和平台,JSON 解析器和 JSON 库支持许多不同的编程语言。
(3)JSON的语法表示三种类型值,简单值(字符串,数值,布尔值,null),数组,对象

八、如何实现跨域?
  1. 服务器端运行跨域 设置 CORS 等于 *;
  2. 在单个接口使用注解 @CrossOrigin 运行跨域;
  3. 使用 jsonp 跨域;(JSON with Padding,它是利用 script 标签的 src 连接可以访问不同源的特
    性,加载远程返回的“JS 函数”来执行的。)

Ajax

  • Asynchronous Javascript And XML,异步的JavaScript和XML是指一种创建交互式、快速动态网页应用的网页开发技术,无需重新加载整个网页的情况下,能够更新部分网页的技术。
  • 通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
1.AJAX请求的时候get和post方式有什么区别?
  1. 使用Get请求时,参数在URL中显示,而使用Post方式,则不会显示出来
  2. 使用Get请求发送数据量小,Post请求发送数据量大
  3. get请求需注意缓存问题,post请求不需担心这个问题

jspsession

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值