java面试------JSP

本文详细探讨了Java面试中关于JSP的基础知识,包括HTTP与HTTPS的区别、Tomcat配置、JSP执行过程以及序列化理解。接着深入讲解JSP数据交互,涵盖内置对象、请求方式、转发与重定向、Session与Cookie的比较。同时,阐述了Servlet基础,如Servlet与JSP的区别、生命周期和开发步骤。此外,讨论了JSTL、EL的使用及其在页面间对象传递的角色。最后,涉及MVC设计模式、过滤器和监听器,以及Ajax的应用和表单序列化。
摘要由CSDN通过智能技术生成

一、动态网页基础

1、 HTTP和HTTPS之间的区别?

区别一:http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。
区别二:http和https使用的是完全不同的连接方式,用的端口也不一
样,前者是80,后者是443。

2、 如何修改Tomcat中访问端口?

在server.xml文件里修改端口。

3、 JSP的执行过程?在Tomcat中生成的.java文件和.class文件在tomcat中那个目录下面?

翻译→编译→执行
/Work目录
报500错误:去tomcat下目录的/work目录下找到编译后的.java文件,找到与之相对应的jsp文件,进行排查。

4、 对Java中序列化和反序列化的理解。

对象序列化是一个用于将内存中对象转换为字节流的过程,可以将其保存到磁盘文件中或通过网络发送到任何其他程序;
从字节流创建对象的相反的过程称为反序列化。

二、JSP数据交互

1、 常用的JSP内置对象有哪些?

Out: 用于向客户端输出数据。
Request: 主要用于处理客户端请求的数据信息。
Response: 用于响应客户端请求并向客户端输出数据。
Session: 用于记录会话状态的状态信息。
Application:类似于系统的全局变量,实现Web应用中的资源共享。

2、 Get和Post请求的区别?

区别一:GET请求会将参数跟在URL后进行传递,而POST请求则是作为
HTTP消息的实体内容发送给Web服务器。
区别二:GET方式对传输的数据大小有限制,通常不能超过2KB,而POST
方式可以传递的数据量比GET方式大得多,理论上没有限制。
区别三:GET方式请求的数据会被浏览器缓存起来,因此其他人可以从
浏览器的历史记录中读取到这些数据,例如账号和密码等。

3、 转发和重定向的区别?

转发:在服务器端发挥作用,将同一请求在服务器资源之间进行传递。在地址栏中不会显示转向后的地址。
重定:在客户端发挥作用,通过发送一个新的请求实现页面转向。
在地址栏中可以显示转向后的地址。

4、 如何通过JSP的内置对象Request获取Form中的数据?

① getParameter(String name),根据表单组件名称获取提交数据。
② getParameterValues(String name),获取表单组件对应多个值时的请求数据。(适用于复选框)

5、 如何通过JSP的内置对象Session实现访问控制?

① 登陆的时候,在登陆成功,在Session写入值,再跳转到主页面。
② 其它页面加入访问控制。
③ 退出系统时,将Session失效。

6、 Session和Cookie的区别?

区别一:Session在服务器端保存用户信息,Cookie在客户端保存用户
信息。
区别二:Session中保存的是Object类型,cookie保存的是 String。
区别三:Session随会话的结束而将其存储的数据销毁,Cookie可以长
期保存在客户端。
区别四:Session保存重要的信息,Cookie保存不重要的用户信息。

7、 JSP四大作用域?与之关联的内置对象是什么?

Page作用域: 只在一个页面保留数据,PageContext对象。
Request作用域: 在当前请求中有效,Request对象。
Session作用域: 在当前会话中有效,session对象。
Application作用域:在整个应用程序中有效,供所有用户共享 。
application对象。

8、 描述HttpServletRequest、HttpSession、ServletContext作用范围,分别在项目中的应用场景。

ServletContext:可被所有session中的所有请求所共享,作用域为整
个web项目。
httpSession:在客户端服务器运行的时,只要服务器端没有超时,在同
一个session中共享所有请求。
HttpServletRequest:在request发送和response完成,不能共享(只
在一个请求中)。
应用场景:
ServletContext:application,整个应用只存在一个。
HttpSession:session,针对每一个对话。
ServletRequest:request,针对每一个客户请求。

三、Servlet基础

1、 Servlet和JSP之间的区别?

JSP本质上是一个Servlet,JSP适合表示层开发。
Servlet适合封装控制逻辑。

2、 Servlet的生命周期?

① 实例化:Servlet容器创建Servlet的实例。
② 初始化:该容器调用init(ServletConfig)方法。
③ 服 务:如果请求Servlet,则容器调用service()方法。
④ 销 毁:销毁实例之前调用destroy()方法。

3、 Servlet的开发步骤是什么?

① 创建Servlet,继承HttpServlet,重写doPost()或doGet()方法。
② 编写具体的servlet,编辑部署描述文件web.xml。
启动服务器,访问Servlet。

四、JSTL和EL

1、 JSTL和EL如何使用?区别是什么?

二者结合使用,可以减少JSP中嵌入的Java代码,有利于程序的维护和
扩展,实现动态页面的开发需求。
区别:EL表达式封装了数据访问的功能。
JSTL标签库则封装了逻辑控制、循环控制以及数据格式化等功能。
EL表达式的隐含对象有request、param。

2、 JSTL常用标签有哪些?

通用标签:set、out、remove。
条件标签:If、choose。
迭代标签:forEach。
<c:choose>多分支标签往往和角色在一起使用,来确定不同的角色,界面
的元素的变化。

3、 EL表达式如何使用?

EL表达式的语法格式:${标识符},以左括号开始,以右括号结束。

4、 页面间对象传递的方法。(面试题+日常开发+重点掌握)

方式一:表单方式传递。
表单传递参数是一种最简单,也是最基本的参数传递方式。注意:表单元素隐藏按钮的使用
方式二:带参数的url方式传递。
带参数的url写法: url?参数名1=值1&参数名2=值2。
方式三:请求request对象。
可以将数据绑定到request对象上,通过request对象getAttribute和setAttribute方法读写。
方式四:用户会话session对象。
可以将数据绑定到session对象上,通过session对象getAttribute和setAttribute方法读写。
方式五:application对象。
可以将数据绑定到application对象上,通过application对象getAttibute方法和setAttribute方法读写。
方式六:cookie对象。
可以将数据写到到客户端浏览器cookie文件中。
其中方式一,方式二只能实现字符串参数的传递,方式三,四,五,六可以实现对象的传递(方式六需要对象序列化后进行存储)。
方式一,方式二,方式三数据传递只能请求页面获取数据,而方式四,五,六可以在多个不同页面获取数据对象。
方式四和六保存的数据对象都是和某个用户相关的信息,不同的是方式四将数据保存到服务器内存中,方式六将数据保存到客户端内存或硬盘中。
方式五保存的数据对象都是和所有用户相关的信息,数据也是保存到服务器内中。

四、MVC设计模式、Filter和Listener

1、 你对MVC设计模式的理解?

模 型:对应的组件是JavaBean,代表应用程序的数据以及用于访问、
控制和修改这些数据的业务规则,比如service、DAO、实体类。
视 图:对应的组件是JSP或HTML.视图是用户看到并与之交互的界面。
可以是.html,.jsp,也可以是其他的。
控制器:对应的组件是Servlet,控制器负责转发请求,对请求进行处理。
① 数据的校验。
② 调用service层,完成一些业务逻辑。
③ 页面的转发。

2、 谈谈你对过滤器的理解?

当用户的请求到达指定的URL之前,可以借助Filter来改变这些请求的
内容。同样的,当响应结果到达客户端之前,可以使用Filter修改输出
的内容。
Filter使用的场景:用在登录验证和解决乱码问题。
Filter的工作原理:用户发送请求到过滤器;过滤器将用户请求发送至
web资源;web资源将响应发送到过滤器;过滤器将
响应返回给用户。

五、Ajax

1、 谈谈你对Ajax的理解。

为什么要是使用?① 提高用户体验。② 减少带宽。
传统Web与Ajax的差异:
在这里插入图片描述

2、 在JQuery中如何进行表单序列化?

第一步:给form表单的id属性设置好值。
第二步:使用serialize()方法。
原因: form中的值比较多,我们需要一个一个取,以map方式发送到
服务端,而用表单序列化就可以打包,也是以map方式发送到服
务端。

3、 json和xml的区别?

共同点:用来存储、传递和交换文本信息。
不同点:JSON比XML更小、更快、更容易解析。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值