【JavaWeb面试题】

1 jsp和servlet的区别和联系

1.jsp经编译后就变成了Servlet.jsp的本质就是Servlet
2.jsp更擅长表现于页面显示,servlet更擅长于逻辑控制.
3.Servlet中没有内置对象,Jsp中的内置对象都是必须通过HttpServletRequest对象,HttpServletResponse对象以及HttpServlet对象得到.
4.Jsp是Servlet的一种简化
联系
JSP是Servlet技术的扩展,本质上就是Servlet的简易方式

2 jdbc操作数据库的步骤是什么?

第一步:加载JDBC驱动程序Class.forName()加载数据库连接驱动;
第二步:提供JDBC连接的URLDriverManager.getConnection()获取数据连接对象;
第三步:创建数据库的连接根据 SQL 获取 sql 会话对象,有 2 种方式 Statement、PreparedStatement ;
第四步:执行 SQL 处理结果集,执行 SQL 前如果有参数值就设置参数值 setXXX();
第五步:关闭JDBC对象(关闭结果集–>关闭数据库操作对象–>关闭连接)

3 使用PreparedStatement的原因?

1、 PreparedStatement 接口继承 Statement,执行速度要快于 Statement 对象。
2 、 作 为 Statement 的 子 类 , PreparedStatement 继 承 了 Statement 的 所 有 功 能 。
3、在 JDBC 应用中,在任何时候都不要使用 Statement,原因如下:
一、代码的可读性和可维护性.Statement 需要不断地拼接,而 PreparedStatement 不会。
二、PreparedStatement 尽最大可能提高性能.DB 有缓存机制,相同的预编译语句再次被调用不会再次需要编译。
三、PreparedStatement极大地提高了安全性.Statement 容易被 SQL 注入,而 PreparedStatementc 传入的内容不会和 sql 语句发生任何匹配关系。

4 Cookie和session区别

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用COOKIE。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
5 建议:将登陆信息等重要信息存放为SESSION,其他信息如果需要保留,可以放在COOKIE中

5 什么是servlet?

servlet是用来处理客户端请求并产生动态网页内容的java类

6 Servlet生命周期知道嘛 ?

加载Servlet
初始化
请求处理
销毁

7 转发和重定向

1 转发是服务器行为,重定向是客户端行为。
2 转发通过RequestDispatcher对象的forward(HttpServletRequest request,HttpServletResponse response)方法实现的。
重定向(Redirect) 是利用服务器返回的状态吗来实现的。
3 从地址栏显示来说
forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,
然后把这些内容再发给浏览器.所以它的地址栏还是原来的地址.
redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.
4 从数据共享来说
forward:转发页面和转发到的页面可以共享request里面的数据.
redirect:不能共享数据.
5 从运用地方来说
forward:一般用于用户登陆的时候,根据角色转发到相应的模块.
redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等
6 从效率来说
forward:高.;redirect:低.

8 什么是cookie?什么是session?有什么区别 ?

Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,
它的过期时间可以任意设置,如果不主动清除,很长一段时间都能保留
Session是在无状态的HTTP协议下,服务端记录用户状态时用于标识具体用户的机制,
它是在服务端保存的用来跟踪用户的状态的数据结构,可以保存在文件、数据库、或者集群中。
Session:
数据存放在服务端,安全(只存放和状态相关的)
session不仅仅是存放字符串,还可以存放对象
session是域对象(session本身是不能跨域的,但可以通过相应技术来解决)
sessionID的传输默认是需要cookie支持的
Cookie
数据存放在客户端,不安全(存放的数据一定是和安全无关紧要的数据)
cookie只能存放字符串,不能存放对象
cookie不是域对象(Cookie是支持跨域的)

9 Tomcat是如何创建servlet类实例?用到了什么原理

当tomcat启动时,会读取在webapps目录下所有的web应用中的web.xml文件。
然后对xml文件进行解析,并读取servlet注册信息。
然后将每个应用中注册的servlet类都进行加载,并通过反射的方式实例化

10 Servlet是单例的还是多例的 ?

servlet是单列模式创建的,只实例化一次,同一个servlet可以处理多个用户请求,
当同时有两个用户访问时,则会启动两个负责处理请求的servlet线程,所以会出现线程安全问题

11 过滤器,拦截器,监听器的区别 ?

过滤器 , 监听器以及Servlet是JavaWeb的核心三个组件 (Servlet用于处理用户请求 )
监听器用户监听整个应用程序 , 例如 ServletContext容器创建销毁 , Session创建销毁 ,Request创建销毁等
过滤器用于过滤用户请求 , 过滤资源路径可以在web.xml中配置, 也可以使用@WebFilter注解配置
拦截器是SpringMVC中的技术, 对请求进行拦截 , 拦截的是进入到SpringMVC框架内部的请求 , Filter可以拦截所有的web请求

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值