目录
- 1. JSP 和 servlet 有什么区别?
- 2. 什么是Tomcat?
- 3. Tomcat容器是如何创建Servlet类实例?用到了什么原理?
- 4. 拦截器和过滤器的区别?
- 5.说一下 JSP 的 4 种作用域?
- 6. JSP 有哪些内置对象?作用分别是什么?
- 7. Servlet的生命周期
- 8. session 和 cookie 有什么区别?
- 9. 说一下 session 的工作原理?
- 10. 如果客户端禁止 cookie 能实现 session 还能用吗?
- 11. JSP工作原理?
- 12. JSP中动态include和静态include的区别?
- 13、JSTL是什么?优点有哪些?
- 14. GET和POST的区别?
- 15. 什么是 XSS 攻击,如何避免?
- 16. 什么是 CSRF 攻击,如何避免?
- 总结
1. JSP 和 servlet 有什么区别?
JSP 是 servlet 技术的扩展,本质上就是 servlet 的简易方式。servlet 和 JSP 最主要的不同点在于, servlet 的应用逻辑是在 Java 文件中,并且完全从表示层中的 html 里分离开来,而 JSP 的情况是 Java 和 html 可以组合成一个扩展名为 JSP 的文件。JSP 侧重于视图,servlet 主要用于控制逻辑。

2. 什么是Tomcat?
Tomcat是一个免费的Web应用服务器,Java编写的Web项目可以部署在上面,用户在客户端请求时,都是将请求发到Tomcat上,Tomcat在将请求发到对应的项目上。
3. Tomcat容器是如何创建Servlet类实例?用到了什么原理?
当容器启动时,会读取在webapps目录下所有的web应用中的web.xml文件,然后对xml文件进行解析,并读取servlet注册信息。然后,将每个应用中注册的servlet类都进行加载,并通过反射的方式实例化。(有时候也是在第一次请求时实例化)在servlet注册时加上1如果为正数,则在一开始就实例化,如果不写或为负数,则第一次请求实例化。
4. 拦截器和过滤器的区别?
- 拦截器是基于java的反射机制的,而过滤器是基于函数回调。
- 拦截器不依赖与servlet容器,过滤器依赖与servlet容器。
- 拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
- 拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
- 在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次。
5.说一下 JSP 的 4 种作用域?
- page:代表与一个页面相关的对象和属性。
- request:代表与客户端发出的一个请求相关的对象和属性。一个请求可能跨越多个页面,涉及多个 Web 组件;需要在页面显示的临时数据可以置于此作用域。
- session:代表与某个用户与服务器建立的一次会话相关的对象和属性。跟某个用户相关的数据应该放在用户自己的 session 中。
- application:代表与整个 Web 应用程序相关的对象和属性,它实质上是跨越整个 Web 应用程序,包括多个页面、请求和会话的一个全局作用域。
6. JSP 有哪些内置对象?作用分别是什么?
JSP 有 9 大内置对象:
- request:封装客户端的请求,其中包含来自 get 或 post 请求的参数;
- response:封装服务器对客户端的响应;
- pageContext:通过该对象可以获取其他对象;
- session:封装用户会话的对象;
- application:封装服务器运行环境的对象;
- out:输出服务器响应的输出流对象;
- config:Web 应用的配置对象;
- page:JSP 页面本身(相当于 Java 程序中的 this);
- exception:封装页面抛出异常的对象。
7. Servlet的生命周期
servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由javax.servlet.servlet接口中的init、service、destroy方法表达。
(1)加载和实例化
当Servlet容器启动或客户端发送一个请求时,Servlet容器会查找内存中是否存在该Servlet实例,若存在,则直接读取该实例响应请求;如果不存在,就创建一个Servlet实例。
(2) 初始化
实例化后,Servlet容器将调用Servlet的init()方法进行初始化(一些准备工作或资源预加载工作)。
(3)服务
初始化后,Servlet处于能响应请求的就绪状态。当接收到客户端请求时,调用service()的方法处理客户端请求,HttpServlet的service()方法会根据不同的请求 转调不同的doXxx()方法。
(4)销毁
当Servlet容器关闭时,Servlet实例也随时销毁。其间,Servlet容器会调用Servlet 的destroy()方法去判断该Servlet是否应当被释放(或回收资源)。
8. session 和 cookie 有什么区别?
- 存储位置不同:session 存储在服务器端;cookie 存储在浏览器端。
- 安全性不同:cookie 安全性一般,在浏览器存储,可以被伪造和修改。
- 容量和个数限制:cookie 有容量限制,每个站点下的 cookie 也有个数限制。
- 存储的多样性:session 可以存储在 Redis 中、数据库中、应用程序中;而 cookie 只能存储在浏览器中。
9. 说一下 session 的工作原理?
session 的工作原理是客户端登录完成之后,服务器会创建对应的 session,session 创建完之后, 会把 session 的 id 发送给客户端,客户端再存储到浏览器中。这样客户端每次访问服务器时,都会带着 sessionid, 服务器拿到 sessionid 之后,在内存找到与之对应的 session 这样就可以正常工作了。
10. 如果客户端禁止 cookie 能实现 session 还能用吗?
可以用,session 只是依赖 cookie 存储 sessionid,如果 cookie 被禁用了, 可以使用 url 中添加 sessionid 的方式保证 session 能正常使用。
11. JSP工作原理?
(1)当用户访问一个JSP页面时,会向一个Servlet容器(Tomcat)发出请求;
(2)如果是第一次请求页面,或页面有所改动,则servlet容器首先要把JSP页面(假设为test.jsp)转化为Servlet代码(test.java),再将其转化为(test.class文件);因为这个过程(编译)会耗费一定时间,所以第一次访问或jsp文件有改动时,访问时间有些长;
(3)JSP容器负责调用从JSP转换来的servlet,这些servlet负责提供服务相应用户请求(比如客户端发送表单,要求servlet:formprocessor.java来处理,则容器会建立一个线程,调用formprocessor.java来处理该请求);如果用户有多个请求,则容器会建立多个线程处理多个请求;
(4)容器执行字节码文件(包括调用的servlet:formprocessor.java字节吗),并将其结果返回到客户端;(返回的最终方式是由servlet输出html格式的文件流)
12. JSP中动态include和静态include的区别?
- 静态include:语法:<%@ include file="文件名" %>,相当于复制,编辑时将对应的文件包含进来,当内容变化时,不会再一次对其编译,不易维护。
- 动态include:语法:<jsp:include page="文件名">,能够自动检查被包含文件,当客户端对JSP文件进行请求时,会重新将对应的文件包含进来,进行实时的更新。
13、JSTL是什么?优点有哪些?
答:JSTL(JSP Standard Tag Library,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库,由四个定制标记库(core、format、xml、sql)和一对通用标记库验证器(ScriptFreeTLV和PermittedTaglibsTLV)组成。
优点有:
- 在应用程序服务器之间提供了一致的接口,最大程度的提高了web应用在各应用服务器之间的移植。
- 简化了JSP和web应用程序的开发。
- 以一种统一的方式减少了JSP中scriptlet代码数据,可以达到没有任何scriptlet代码的代码。在我们公司的项目中是不允许任何scriptlet出现在JSP中。
- 允许JSP设计工具与web应用程序开发的进一步集成。相信不久就会有支持JSTL的IDE开发工具出现。
14. GET和POST的区别?
POST和GET都是向服务器提交数据,并且都会从服务器获取数据。
1、传送方式:get通过地址栏传输,post通过报文传输。
2、传送长度:get参数有长度限制(受限于url长度),而post无限制
3、GET和POST还有一个重大区别,简单的说:
GET产生一个TCP数据包;POST产生两个TCP数据包
长的说:
对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
建议:
1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式;
2、在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式;
15. 什么是 XSS 攻击,如何避免?
XSS 攻击:即跨站脚本攻击,它是 Web 程序中常见的漏洞。原理是攻击者往 Web 页面里插入恶意的脚本代码(css 代码、Javascript 代码等),当用户浏览该页面时,嵌入其中的脚本代码会被执行,从而达到恶意攻击用户的目的,如盗取用户 cookie、破坏页面结构、重定向到其他网站等。 预防 XSS 的核心是必须对输入的数据做过滤处理。
16. 什么是 CSRF 攻击,如何避免?
CSRF:Cross-Site Request Forgery(中文:跨站请求伪造),可以理解为攻击者盗用了你的身份,以你的名义发送恶意请求,比如:以你名义发送邮件、发消息、购买商品,虚拟货币转账等。 防御手段: 验证请求来源地址; 关键操作添加验证码; 在请求地址添加 token 并验证。
总结
本篇文章就到这里了,希望能给你带来帮助,也希望您能够多多关注的更多内容!
相关推荐:
文章AI生成标题:让创作更轻松,内容更精彩
seo线索收集是什么,seo线索收集是什么意思 ,ai生活ai童童
常用AI工具,高效智能生活
SEO优化与SEM广告:提升品牌曝光与流量的双重利器,ai接回头
Bing搜索不能预览了?搜索引擎的新变革与挑战,ai制作一张窗花
SEO有话:如何用精准优化助力企业在线增长,食品微信营销推广
seo需要学会什么编程,seo要会些什么 ,剪映怎样加ai
整理文章的AI:提升写作效率的智能助手
SEO埋词技巧,如何提升网站排名?,贵州营销推广方法
seo跟sem是什么,seo和sem的概念 ,惠威的ai功能
SEO联系:如何通过SEO优化提升您的网络营销效果,企业营销推广获客
SEO目的:如何通过精准优化提高网站流量与转化率,百度推广网站关键词
什么是神马排名?让你的网站脱颖而出,轻松占据搜索引擎的C位!,乳山网站优化关键词排名
SEO爱站:提升网站排名,赢得流量的秘密武器,优化网站设计价格多少
ChatGPT维护页面-背后的技术与用户体验,ai领域ppt
SEO手法如何通过精准优化提升网站排名,获取海量流量,网站建设协议流程是什么
seo要寻找什么资源,怎么找seo ,ai插画描边
GPT优化:让你的工作与生活更高效、更智能,Ai__79
企业如何借助SEO咨询实现精准流量引爆,助力业绩提升,立刻推广的旅游线下营销
seo网站是什么找行者SEO,seo分析网站 ,ai图文梅花
2024年AI写文章生成器推荐:让创作轻松高效,提升写作水平
SEO费用如何根据预算选择最合适的SEO服务,营销类推广网站
SEO优化攻略:如何通过精准策略提升网站排名与流量,aI ow翻译
AI缩写文档:革新文档管理与自动化的未来,ai聊天中文
高效创作之路:文章AI生成器的力量
ChatGPT403:引领人工智能新时代,颠覆你的工作与生活方式,ai nak
seo该从什么开始,seo是什么时候开始的 ,ai写作免费英文怎么说
ChatGPTApp怎么调大字体?提升阅读体验,让文字更清晰,推荐ai音频
ChatGPT:如果您正在使用VPN,这些技巧您一定要知道!,AI换脸*H
Goanno跨级借鉴:推动创新与提升效率的秘密武器,崇明区智能ai艾灸费用
SEO与网络推广机构:如何选择最适合你的数字营销合作伙伴,ai写作软件性价比高吗
ChatGPT的VPN梯子:畅享全球互联网自由,打破地域限制,一直搜Ai
SEO总结:如何通过优化提升网站排名与流量,关键词排名消失
ChatGPT为什么打不开?背后原因与解决方案,慧ai写作
ChatGPT无法加载?检查您的网络设置并尝试重启,轻松解决常见问题!,ai招生广告设计
ChatGPT无法加载?检查您的网络设置并尝试重启ChatGPT,解决您的使用困扰!,ai光晕制作
SEO动态:2025年SEO趋势与优化技巧解析,十堰外贸网站推广费用
seo能解决什么问题,seo会遇到哪些问题 ,挚爱花嫁ai
文字生成AI开启创作的新纪元
SEO关键词的选择步骤:让你的网站在搜索引擎中脱颖而出,ai书法化
seo相关知识是什么,seo相关技术 ,ai写作讯飞星火认知大模型
SEO优化全攻略提升网站排名的关键步骤与未来趋势,这是什么新晋动画ai
SEO深度解析:如何通过深度优化提升网站排名,带来流量和转化,咸宁网站建设大概费用
SEO王:掌控搜索引擎优化的至高法则,助力企业飞速腾飞,网站动作优化在哪里下载
ChatGPT,您的银行卡被拒绝了?别慌,这些方法帮您快速解决问题!,ai给那个标声调
ChatGPT显示无法加载网站是怎么回事?解决方法!,glow将军ai
文章AI生成:让创作变得更简单、更高效!
ChatGPT怎么打开不了?全方位解决方案!,大庆ai
ChatGPT诞生背景:人工智能如何突破语言的边界,ai辅助市场调研
seo要懂些什么软件,seo常用软件 ,ai写作网站网址大全