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)加载和实例化 当
(2) 初始化 实例化后,Servlet容器将调用Servlet的init()方法进行初始化(一些准备工作或资源预加载工作)。
(3)服务 初始化后,Servlet处于能响应请求的就绪状态。当接收到客户端请求时,调用service()的方法处理客户端请求,HttpServlet的service()方法会根据不同的请求 转调不同的doXxx()方法。
(4)销毁 当Servlet容器关闭时,Servlet实例也随时销毁。其间,Servlet容器会调用Servlet 的destroy()方法去判断该Servlet是否应当被释放(或回收资源)
后面就直接用注解来进行配置

Filter生命周期
当服务器启动,就会创建Filter对象(随着Tomcat的启动而创建),并调用init()方法,只调用一次
当访问资源时,路径与filter拦截路径匹配,会执行Filter中的doFilter方法,这个方法是真正拦截操作的方法。
当服务器关闭时,会调用Filter中的destroy方法来进行销毁操作。
13: 列举使用了过滤器的场景
乱码过滤器
14: 什么叫做过滤器链,过滤器链中 过滤器起作用的先后顺序取决于什么
15: 什么是ecmascript 什么是javascript 两者的关系是
ECMAScript 也是一门脚本语言,缩写为ES,通常看做JavaScript的标准化规范。
16: 什么是dom 什么是bom 两者有什么关系 请尝试画一下dom 和 bom 的关系图
bom:浏览器对象模型
dom: document <html></html>

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 的区别
主要区别如下:
-
安全性:HTTPS 具有更高的安全性,因为它在传输数据时使用了加密,避免了数据在网络中的窃听、篡改和伪造。而 HTTP 协议则不提供任何安全保证。
-
信任:HTTPS 可以通过证书认证机构(CA)验证网站的身份,从而让用户更好地了解网站的真实身份,并确保用户的数据不会被冒充者窃取。
-
SEO:Google 对于 HTTPS 站点的排名优先级更高,因为它提供了更高的安全保证,从而让用户更好地了解网站的真实身份。
-
性能:HTTPS 协议比 HTTP 协议慢一些,因为加密传输需要额外的计算开销。
综上所述,对于需要安全保证、信任和良好 SEO 优化的网站,建议使用 HTTPS 协议。

浙公网安备 33010602011771号