JavaWeb

本文介绍了Servlet和JSP在Web开发中的角色,Servlet是一个接口,定义了Java类被服务器识别的规则,主要负责接收和响应客户端请求。JSP是Java服务器端页面,本质上是一个Servlet。文章还讨论了JSP中的四种域对象——pageContext,request,session和application,以及它们的作用域。此外,对比了session和cookie的区别,session基于cookie工作,当cookie被禁用时,session无法正常工作。重定向和转发是两种不同的资源跳转方式,前者改变地址栏并可访问其他站点,后者则保持在同一服务器内。最后,文章提到了处理请求和响应乱码的方法,以及Filter的生命周期和获取cookie数据的方法。

1.什么是servlet,主要作用有哪些?

(1)Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则。

(2)接受客户端的请求,给客户端做出响应

2.什么是jsp,主要作用有哪些?

(1)Java Server Pages:Java服务器端页面

(2)JSP本质上就是一个Servlet

3.说一下JSP中的4种域对象?

pageContext, request, session、application四个作用域

(1)pageContext作为域对象的范围:代表页面返回从把变量放到pageContext开始,到jsp代码执行结束。

(2)request作为域对象的范围:代表一次请求的范围,一般用于请求转发的多个资源中共享数据

(3)session作为域对象的范围:一次会话范围

(4)application作为域对象的范围:整个web应用

4.session和cookie有什么区别?

(1)相同:

在一次会话的范围内的多次请求间,共享数据

(2)不同:

session存储数据在服务器端,Cookie在客户端

session没有数据大小限制,Cookie有

session数据安全,Cookie相对于不安全

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

session是基于cookie的,第一次请求没有cookie,会在内存中创建一个新的session对象,有一个sessionID,之后请求带着sessionId过来。

6.如果客户端禁止cookie后session还能用吗?为什么?

不可以

服务器存储的session是通过sessionid存储在cookie中,来存储在客户端的。所以,如果浏览器禁用了cookie,客户端请求没办法传递sessionid,服务器无法识别用户身份,会导致session失效。

解决方案

url重写:把 sessionid 作为参数追加的原 url 中,后续的浏览器与服务器交互中携带 jsessionid 参数

7.说一下重定向和转发的区别?

请求转发:一种在服务器内部的资源跳转方式

        - 浏览器地址栏路径不发生变化

        - 只能转发到当前服务器内部资源中。

        - 转发是一次请求

重定向:资源跳转的方式

        - 地址栏发生变化

        -  重定向可以访问其他站点(服务器)的资源

        - 重定向是多次请求。不能使用request对象来共享数据

8.如何解决浏览器请求服务器乱码及服务器响应浏览器乱码?

数据的编码和解码字符集方式不一致

(1)请求乱码

        - Post : 在获取参数前,设置request的编码request.setCharacterEncoding("utf-8");

        - Get  : tomcat 8 已经将get方式乱码问题解决了

(2)响应乱码

        - 字节输出流 :设置字符的编码方式为UTF-8 response.getOutputStream().write("你好".getBytes("UTF-8"))

        - 字符输出流:设置该流的默认编码,response.setCharacterEncoding("utf-8");设置响应头Context-Type,让浏览器以UTF-8方式解码

9.Filter的生命周期?

(1)服务器启动时,被web服务器创建,执行init方法

(2)每次拦截,doFilter方法都会被调用一次

(3)服务器关闭时,Filter被销毁,执行destroy方法

10.在后端如何获取到cookie中的数据?

Cookie[]  request.getCookies()  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值