Servlet&JSP&JDBC面试总结 不念不忘少年蓝@ 2022-05-28 09:45 146阅读 0赞 一:应用开发框架 C/S:客户端/服务器端 优点:客户端分担服务器端的功能(QQ客户端的聊天记录) 安全性高 缺点:必须安装客户端 开发开销大 维护困难 不能无缝升级 B/S:浏览器/服务器端(主流的企业级开发模式, 只需要浏览器,网上银行) 优点:不需要安装客户端,浏览器就是客户端 开发的开销小 维护方便 实现无缝升级 缺点:安全性不高 服务器端硬件要求高 服务器端的操作将会是软件的核心-- \--->压力(并发,效率, 网络传输)网上售票系统 二 Servlet A:servlet是运行在服务器端的java类 B:ervlet每次都会启动一个线程来处理客户端发送的 request,然后给客户端返回处理之后的response, 即生成动态html网页,效率比较高。 C:Servlet的执行流程 A:浏览器发送一个Http 请求会自动加载web.xml文件 B:找对应的url-pattern标签--- >servlet-name标签(servlet-mapping)--- --->servlet-name标签(servlet标签中的)--- -->servlet-class标签找到对应的Servlet C:调用Servlet的service方法来处理请求。包装成response返回客户端。 三,创建Servlet的步骤 A:继承HttpServlet B:继承GenericServlet 获取传入数据参数 C:Servlet实现Servlet接口 了解Servlet其生命周期 四,跳转问题 A:内部跳转 特点:a)是同一个请求 b)能够获取请求的数据 c)浏览器的地址不会发生改变 d)不能够访问其他应用程序的资源 第一步:获取转发器RequestDispatcher request.getRequestDispatcher(path); 第二步:进行跳转 a)forward:会清空前一个response输出流中的信息 b)include:不会清空前一个response输出流中的信息 B:重定向跳转:服务器外部跳转 response.sendRedirect(path) path可以相当路径也可以是绝对路径。 特点:a)不是同一个请求,发送了两次请求 b)不能够获取请求的数据 c)浏览器的地址会发生改变 d)能够访问其他应用程序的资源。 五,Servlet的生命周期 第一个阶段:加载和实例化对象 只调用一次 默认情况下第一次访问该Servlet的时候,实例化对象 第二次访问该Servlet不会创建新的对象, 所以Servlet是单例模式。 加载方式: a)延迟加载 默认 当第一次访问的时候加载该对象 b)预先加载 当tomcat启动的时候加载该对象 修改加载方式:web.xml指定Servlet的加载模式 在Servlet标签中添加: <load-on-startup>num</load-on-startup> num>=0预先加载 num越小越先加载 num<0延迟加载 num默认是-1 第二个阶段:初始化对象 只调用一次 加载和实例化对象之后就调用init() 初始化参数 init() 第三个阶段:处理请求:服务方法 调用多次 调用service() 每一个请求来了,启动线程调用该方法处理请求。 Servlet对象只有一个,属于单例模式。 Servlet线程不安全. 如何控制: a)加锁synchronized (this) \{\} 效率低 b)把一些受影响的变量尽量定义成局部变量。 局部变量是多线程不共享的变量。 第四个阶段:销毁对象 只调用一次 调用destory() 当tomcat正常关闭或者 当web应用重新部署的时候会销毁对象。 六,过滤器 作用:在一个请求去访问某个资源的时候,filter可以在这个 请求访问到这个资源之前,把请求拦下,然后做出一系 列的处理或者判断(比如编码的转换,信息的过滤、权 限的判断、是否已经登录的验证等等),最后filter再 决定是否要让这个请求去访问那个资源 日志,事务,字符乱码,访问权限的过滤 创建:实现Filter接口 a)init:这个过滤器类被服务器创建对象的时候会调用到这个方法。 b)destroy:过滤器对象被销毁的时候会调用这个方法。 c)doFilter:当过滤器拦截到请求的时候,会调用这个doFilter. d) 如果有多个过滤器按顺序执行 七,监听器 作用:监听web中的一些事件的发生,如果某些事件一旦发生了, 那么这个监听器就会调用指定方法进行处理.监听request对象的创建和销毁 创建:监听request相关的接口 ServletRequestListener接口 监听session相关的接口 HttpSessionListener接口 监听application相关的接口 ServletContextListener接口 八,Web应用的四大范围 pageContext:指的是一个页面的范围, 只在JSP中使用。 request:指的是一个请求的范围 可以包含多个页面 内部跳转 session:指的是一个会话的范围 可以包含多个request ServletContext:指的是一个web应用的范围 可以包含多个session jsp 1,jsp的九中内置对象 page:当前的jsp页面,指针this pageContext:当前的jsp页面的上下文 request:封装请求的信息 response:封装响应 session:会话 application:指web应用, 就是SerlvetContext out:输出流 config:配置信息 exception:异常信息 当isErrorPage=true时,才可以使用该对象 2,jsp 的生命周期 1) 翻译阶段 jsp--->.java 当容器接受到客户端第一次对jsp的请求后, 先判断被请求的jsp是否存在, 若不存在返回404错误,若存在, 将该jsp先翻译成一个Servlet。 处理请求的方法:\_jspService() 2) 编译阶段 .java---->.class 将翻译后的Servlet的源文件编译成一个字节码文件, 然后由容器将其装载进虚拟机并实例化(单例) 3) 执行阶段 调用翻译后的Servlet的对应的init()、 service方法、destroy()。 补充: 1) 如果被请求的jsp源文件内容发生变化, 那么要重新将jsp翻译成Servlet,再编译、 装载和实例化,最后运行Servlet。 2) 如果第二次请求jsp时, 此时若被请求的jsp已经有对应的Servlet实例, 那么就直接运行该Servlet。 3,jsp和servlet的相同点和不同 JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是"类servlet"。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑 4,JSP共有以下6种基本动作 jsp:include:在页面被请求的时候引入一个文件。 jsp:useBean:寻找或者实例化一个JavaBean。 jsp:setProperty:设置JavaBean的属性。 jsp:getProperty:输出某个JavaBean的属性。 jsp:forward:把请求转到一个新的页面。 jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记。
相关 面试总结 1、[MySQL 查询部门工资前三高的员工信息][MySQL] 2、[数据库索引为什么使用B+树而不是hashmap][B_hashmap] 3、[【Java–数据结构 以你之姓@/ 2022年11月15日 11:42/ 0 赞/ 155 阅读
相关 面试总结 前言 这次还好不至于一个问题都回答不上来,总结一下问题。 1 SHELL Q: 找出文件中所有小于5的数字个数 A: 没答出来 grep -o '[ 谁借莪1个温暖的怀抱¢/ 2022年11月11日 05:58/ 0 赞/ 156 阅读
相关 面试总结 1. 线程池的创建各个参数含义 1. corePoolSize 线程池中的核心线程数,当提交一个任务时,线程池创建一个新线程执行任务,直到当前线程数等于 末蓝、/ 2022年11月05日 06:23/ 0 赞/ 178 阅读
相关 面试总结 曾记得第一次被老霍告知要去中石化面试的时候,心里那叫一个紧张。看简历,记简历,写自我介绍材料,看笔记,看其他人的面试总结,在火车上看博客等等。这些让我忙得不可开交。由于我 比眉伴天荒/ 2022年08月09日 09:58/ 0 赞/ 168 阅读
相关 面试总结 面向对象的三个基本元素,五个基本原则 三个基本元素:封装 继承 多态 五个基本原则: 单一职责原则:一个类,最好只做一件事,只有一个引起它的变化 。单一职责原则 素颜马尾好姑娘i/ 2022年08月05日 08:30/ 0 赞/ 168 阅读
相关 面试总结 最近在准备重新找工作,面试了4家,居然没有一家来offer。我觉得有时候还是需要去总结,即使这件事情有可能是对方的问题,还是需要反思自己本身还有什么做的不够好。不管 布满荆棘的人生/ 2022年06月07日 13:49/ 0 赞/ 163 阅读
相关 面试总结 1, 简介 毕业答辩搞定,总算可以闲一段时间,把这段求职经历写出来,也作为之前三个半月的求职的回顾。 首先说说我拿到的offer情况: 1) 微软,3面->终面,搞定(+ 深碍√TFBOYSˉ_/ 2022年05月30日 09:06/ 0 赞/ 170 阅读
相关 面试总结 一、mybatis如何配置多数据源 二、mybatis的实现原理(主要从jdbc的缺点和反射两方面) 三、spring 如何如何知道那些类需要被实例化? 四、如何做分页? 迈不过友情╰/ 2022年05月29日 08:58/ 0 赞/ 234 阅读
相关 面试总结 一. 兼容性测试分为 1.整机的兼容性,主要是当前市场占有率比较高的品牌手机; 2.操作系统的兼容性,分为ios和andriod系统,其中iOS系统现在8.0-10.0;安 一时失言乱红尘/ 2021年12月22日 06:09/ 0 赞/ 216 阅读
相关 面试总结 总结一下最近面试主要的问题: Java 基础 1. HashMap的实现原理,死链问题,非线程安全问题,链表转红黑色以及红黑树转链表 2. ConcurrentHa 男娘i/ 2021年09月18日 05:04/ 0 赞/ 330 阅读
还没有评论,来说两句吧...