Javaweb

JavaWeb

1、说一说Servlet的生命周期、

 

 

 

1、客户端发送请求

2、Servlet容器接收请求,并且进行解析,创建Servlet实列

3、Servlet容器调用Servlet初始化

4、Servlet容器调用Servlet的service方法 如dopost/doget 方法

5、Servlet容器将Servlet的响应结果返回给客户端

6、结束服务,Servlet容器调用serlvet的destroy方法进行销毁

2、Servlet API中forward()与redirect()的区别?

1、效率来说 forward》redirect

2、地址栏显示

forword地址栏是不变的,因为 forward是服务器的内部重定向,服务端接收客户端的请求,会调用服务端内部的一个方法请求处理转发,资源发送给客户端,所以地址栏是原来的地址拦

 

 

 

 

而redirect的地址栏是变化的,因为客户端向服务端发起请求,服务端会发送状态码和新的地址给客户端,客户端会根据状态码自动发送一个http请求到新的地址,同时客户端会返回相应的内容

 

 

 

3、数据共享

forward 可以共享数据

redirect不可以共享数据

3、request.getAttribute()和 request.getParameter()有何区别?

1、返回的东西不同

getAttribute 返回的是对象 而Parameter放回的字符串

2、getParameter是用于获取get、post请求中的数据

而getAttribute只是在web容器中流转,是请求处理阶段。

4、MVC的各个部分都有哪些技术来实现?如何实现?

MVC是Model--View—Controller

Model代表应用的业务逻辑(通过JavaBean实现)

View是应用的视图(主要是JSP页面)

Controller是提供应用的处理过程控制(一般是一个Serlevt)

5、jsp 和 servlet 有什么区别?

1、JSP编译后就变成了Servlet

2、JSP擅长于页面表示,Servlet擅长于逻辑控制

3、Serlvet没有内置对象,而JSP有内置对象,必须通过HttpServletRequest、HttpSerlvetresponse、HttpSerlvet对象得到。

6、tomcat容器是如何创建servlet类实例?用到了什么原理?

容器启动时,会读取所有web应用中xml文件,然后对xml文件进行解析,读取注册的Serlvet信息,并且对其进行加载,通过反射的方式进行实列化。

7、什么是Sql注入?如何避免 sql 注入?

以Sql语句作为用户输入,达到增删改查数据的目的

  1. 使用正则表达式过滤传入的参数

  2. 字符串过滤

  3. JSP页面判断代码

8、Xss/CSS攻击是什么,如何避免

就是向网站注入HTML,当用户访问的时候HTML自动执行,会获取用户的一些信息

防范:对输入和URL参数的进行过滤

9、什么是 CSRF 攻击,如何避免?

跨站请求伪造,就是伪造用户的浏览器去请求访问一个用户曾经访问过的网站。

防范:使用验证码、使用token进行过滤

10、JDBC访问数据库的基本步骤是什么?

1、加载驱动

2、通过DriverManager获取connection

3、通过连接对象获取会话

4、通过会话进行数据的增删改查

5、关闭资源

11、说说事务的概念,在JDBC编程中处理事物的步骤

事务就是单个逻辑工作单元执行的一系列操作 就比如银行转账的话一个账户需要减去金额,而另一个账户要增加相应的金额

事务的属性:原子性、一致性、隔离性、持久性

事务处理的步骤

提交事务、出现异常时rollback回滚

12、数据库连接池的原理,为什么要使用连接池?

1、因为数据库连接是一个费时间的操作,而使用连接池可以使得多个操作共享一个连接

2、同时使用连接池可以提高对数据库连接资源的管理

13、JDBC的脏读是什么?哪种数据库隔离级别能防止脏读?

JDBC的脏读是指:有一行数据刚更新 ,与此同时另一个查询读到了这个刚更新的值

哪种隔离级别可防止脏读:可重复读 、串行化、readcommitted

14、JDBC的DriverManager是用来做什么的?

是用来创建数据库连接的 connection方法

 

15、execute,executeQuery,executeUpdate的区别是什么?

execute是用来执行任意的sql查询,如果结果ResultSet 返回true

executeQuery是执行select查询,并且返回Resultset

executeUpdate是用来执行insert或者update/delete语句

16、JDBC的ResultSet是什么?

查询数据库之后会返回一个ResultSet,就是一个结果集合。我们可以让游标从头到尾遍历结果集。

17、什么是JDBC?

JDBC的全称是Java DataBase Connection 就是java数据库连接,可以用来操作关系型数据库。

18、什么是过滤器

1、依赖于Servlet容器,在客户端的请求访问后端资源之前,拦截这些请求,在服务器的响应发送客户端之前,处理这些响应image-20230217163828571

作用:主要用于 权限验证,拦截敏感词汇,对编码统一的设置

19、什么是监听器?

实现ServletContextListener接口服务器端程序,基于函数回调,跟着web应用启动,初始化一次,web应用停止则就销毁

主要是用于 做一些初始化内容添加工作等,就比如SpringMVC中的监听器实现了SpringMVC容器加载,DispathcerServlet初始化等

20、什么是拦截器

依赖于web框架,基于java反射机制,是一种面向切面编程的应用。只能对controller请求进行拦截,对直接访问静态资源的请求是没法拦截的

21、过滤器和拦截器的区别?

拦截器是基于web框架,而过滤器是基于函数回调

拦截器只能对controller进行拦截,而过滤器几乎可以对所有请求起作用。

拦截器可以多次被调用,而过滤器只在容器初始化被调用一次

22、Servlet与Filter的区别?

Filter是一种特别的Servlet,它们的作用是完全不一样的。 Servlet是用来处理请求的,而Filter是用来过滤检查请求的。

23、web.xml 的作用?

配置web应用的相关信息,就比如监听器、过滤器、Servlet、相关参数等。

24、Filter生命周期

1、服务器启动时,加载Filter实列,并且调用初始化方法

2、每次发起一个请求,就调用dofilter()方法进行处理

3、当服务器停止时,调用destroy()进行销毁

posted @ 2023-02-27 11:20  Madao_super  阅读(50)  评论(0)    收藏  举报