JSP

1:jsp的工作原理是什么

1、jsp文件必须在jsp服务器内运行

2、jsp文件必须生成servlet才能执行

3、每个jsp页面的第一个访问者速度都很慢,因为必须等待jsp编译成servlet

4.jsp页面的访问者无需安装任何客户端,甚至不需要可以运行的Java的运行环境,因为jsp页面输送到客户端的是标准的HTML页面。

jsp文件运行的时候编译成java文件.class文件,然后调用service方法,jsp就是servlet

 

2:request.getParameter()和request.getAttribute() 的区别

1、request.getParameter() 取得是通过容器的实现来取得通过类似post,get等方式传入的数据,request.setAttribute()和getAttribute()只是在web容器内部流转,仅仅是请求处理阶段。

2、getAttribute是返回对象,getParameter返回字符串

3、getAttribute()一向是和setAttribute()一起使用的,只有先用setAttribute()设置之后,才能够通过getAttribute()来获得值,它们传递的是Object类型的数据。而且必须在同一个request对象中使用才有效。,而getParameter()是接收表单的get或者post提交过来的参数。

3:servlet 的生命周期是什么

加载类—>实例化(为对象分配空间)—>初始化(为对象的属性赋值)—>请求处理(服务阶段)—>销毁

1、诞生:默认情况下 用户第一次访问这个servlet 的时候诞生,我们也可以通过设置,设置成饿汉式【容器一启动就创建servlet 对象】通过<load-on-startup>1</load-on-startup>

2、形态【单例 多例】

以后不管访问多少次 servlet 都不会创建新的servlet 对象, 也就是说servlet对象在容器中一直是单例的状态

3、销毁

随着容器【tomcat 容器】销毁 而销毁

4:我们怎样不使用任何第三方框架 实现下载excel 文档

通过ServletContext对象

// 1 获得全局对象 // ServletContext servletContext = request.getServletContext(); // // 2 获得根目录下任意文件的真实路径 // String realPath = servletContext.getRealPath("/files/.docx"); // // 改变响应的格式 // response.setContentType("application/vnd.ms-excel"); // // 改变响应头 设置附件的名字 // response.setHeader("Content-Disposition", "attachment; filename=mw.xls"); // response.setCharacterEncoding("utf-8"); // // 3 获得web根目录下任意文件的内容 以i/o流的形式返回 // InputStream inputStream = // servletContext.getResourceAsStream("/files/谢敏文js试卷.docx"); // // 3.1 把值读取到 byte数组 // // byte[] b = new byte[1024]; // int length = inputStream.read(b); // while(length>1) { // response.getOutputStream().write(b, 0, length); // length = inputStream.read(b); // // } // System.out.println(realPath);

5:重定向和转发的区别

  • 转发 的第一个请求和第二个请求实际上是同一请求(请求转发):所以我们需要通过request 把参数接着往下传的时候 需要使用转发

  • 重定向 第一个请求和第二个请求是两个不同的请求

  • 站内转发 和 站外重定向

 

6:请描述一下 企业开发中 异常是怎样处理的

业务异常[自定义] 各层有异常都直接抛出 抛给框架增强层处理《异常统一处理)

7:请说出数据库连接池的好处 ,以及常见的配置

1: 节省资源

2: 保护数据库

连接池的常见配置

initialPoolSize 初始连接池中几个连接

maxIdleTime: 最大空闲时间 30s

idleConnectionTestPeriod: 多长时间去检查一次是否有空闲连接

minPoolSize: 最小连接数 2

acquireIncrement 一次增加几个 5

maxPoolSize 最大连接数

checkoutTimeout 连接超时的时机

缓存多少个PrearedStatement

经常使用带有连接池的功能的疏远

druid c3p0 hikari 光

8: session 和 cookie 的区别

都是为了保存登录用户的状态信息

session: 在服务器端 安全

cookie: 在客户端的浏览器中 不安全

9: session 和 cookie 的关系又是什么

1: 每个session 都会有一个id sessioid [随着session产生]

2:我们第一个请求接收之后 通过response 把session 写回给浏览器的cookie

3: 以后我们对站点发其他的请求都会 从cookie中拿到sessionid,找到自己的session

10: session 的 钝化和 活化

序列化: 把内存中对象---》保存的硬盘中 钝化

反序列化:从硬盘中把对像 读到内存中 活化

11: 什么是过滤器,过滤器的作用是

公共的增强的工具

12: 什么是web组件,说一下常见的web组件【servlet filter listener】的生命周期

Web 组件是一种创建可在任何页面上重用的封装的、单一职责的代码块的方法。

Servlet生命周期简述

(1)加载和实例化 当Servlet容器启动或客户端发送一个请求时,Servlet容器会查找内存中是否存在该Servlet实例,若存在,则直接读取该实例响应请求;如果不存在,就创建一个Servlet实例。

(2) 初始化 实例化后,Servlet容器将调用Servlet的init()方法进行初始化(一些准备工作或资源预加载工作)。

(3)服务 初始化后,Servlet处于能响应请求的就绪状态。当接收到客户端请求时,调用service()的方法处理客户端请求,HttpServlet的service()方法会根据不同的请求 转调不同的doXxx()方法。

(4)销毁 当Servlet容器关闭时,Servlet实例也随时销毁。其间,Servlet容器会调用Servlet 的destroy()方法去判断该Servlet是否应当被释放(或回收资源)

后面就直接用注解来进行配置

img

 

Filter生命周期

当服务器启动,就会创建Filter对象(随着Tomcat的启动而创建),并调用init()方法,只调用一次

当访问资源时,路径与filter拦截路径匹配,会执行Filter中的doFilter方法,这个方法是真正拦截操作的方法。

当服务器关闭时,会调用Filter中的destroy方法来进行销毁操作。

13: 列举使用了过滤器的场景

乱码过滤器

14: 什么叫做过滤器链,过滤器链中 过滤器起作用的先后顺序取决于什么

filter-mapping 的配置顺序

15: 什么是ecmascript 什么是javascript 两者的关系是

ECMAScript 也是一门脚本语言,缩写为ES,通常看做JavaScript的标准化规范。

16: 什么是dom 什么是bom 两者有什么关系 请尝试画一下dom 和 bom 的关系图

bom:浏览器对象模型

dom: document <html></html>

img

17:javascript中 == 和 === 的区别

== 相等运算符在进行类型判断时可能会进行一些类型转换

=== 严格相等运算符是先进行类型比较,如果类型都不同,直接就不相等

18: javascript 的基本数据类型有哪些

undefined、null、number、boolean、string;

19: 乱码问题怎么解决

post request。response.setCharacterEncoding("utf-8");

get tomcat8以上不用管 以下 配置URIEncoding

20: http 协议

HTTP请求的组成

状态行、请求头、消息主体三部分组成。

HTTP响应的组成

状态行、响应头、响应正文

21:https 与 http 的区别

主要区别如下:

  1. 安全性:HTTPS 具有更高的安全性,因为它在传输数据时使用了加密,避免了数据在网络中的窃听、篡改和伪造。而 HTTP 协议则不提供任何安全保证。

  2. 信任:HTTPS 可以通过证书认证机构(CA)验证网站的身份,从而让用户更好地了解网站的真实身份,并确保用户的数据不会被冒充者窃取。

  3. SEO:Google 对于 HTTPS 站点的排名优先级更高,因为它提供了更高的安全保证,从而让用户更好地了解网站的真实身份。

  4. 性能:HTTPS 协议比 HTTP 协议慢一些,因为加密传输需要额外的计算开销。

综上所述,对于需要安全保证、信任和良好 SEO 优化的网站,建议使用 HTTPS 协议。

posted @ 2023-02-20 19:24  Peter_tang  阅读(298)  评论(0)    收藏  举报