ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:136.45KB ,
资源ID:12891394      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12891394.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(javaWEB面试题汇总.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

javaWEB面试题汇总.docx

1、javaWEB面试题汇总1 tomcat如何配置?首先进官网下载一个解压版(绿色版),解压后在环境配置JAVA_HOME中添加JDK的根目录,然后新建名称CLASS_PATH,添加.;%JAVA_HOME%lib;%JAVA_HOME%libtools.jar最后在PATH中加上;%JAVA_HOME%bin;2 jsp中静态include和动态include的区别? A:动态包含用的元素是page,而且有两种形式,静态包含用的是file,只有一种形式 B:生成的文件不同,动态包含的两个jsp文件各自生成各自的servlet和class文件,变量名可以重复。静态包含是将两个jsp文件合二为一。

2、生成一个以包含页面命名的servlet和class文件,变量名不能重复。 C:动态包含只有在执行它的时候才加载。动态包含:静态包含:3 forward和redirect的区别? A:转发发生在一次请求中,重定向发生在两次请求中。 B:转发不会改变浏览器地址,重定向会改变地址。 C:转发只能访问内部资源,重定向可以访问外部资源。 D:转发的性能要优于重定向。4 servlet的体系结构? A:Servlet (包含init()、service()、destroy()方法) B:GenericServlet C: HttpServlet(包含doGet()和doPost()方法) D:自定义5 如

3、何实现一个自定义的servlet? 继承HttpServlet,并重写doget()和dopost方法,在web.xml中进行部署。6 servlet的生命周期过程? Servlet对象默认第一次访问的时候创建,服务器关闭的时候销毁,当servlet对象创建的时候会调用init()方法,当这个对象销毁的时候会调用destory()方法。每次去访问servlet对象的时候都会调用service方法7 jsp三大指令 Page include taglib(在jsp页面中引入标签库) 8 WEB四大作用域及应用范围A:page 当前jsp页面范围B: request 一次请求当中C:session

4、 一次会话中D:application 整个web应用9 jsp的九大内置对象 request 用户端请求,此请求会包含来自GET/POST请求的参数 response 网页传回用户端的回应 pageContext 网页的属性是在这里管理 session 与请求有关的会话期 application servlet 正在执行的内容 out 用来传送回应的输出 config servlet的构架部件 page JSP网页本身 exception 针对错误网页,未捕捉的例外10 Jsp和servlet的共同点和区别、应用范围?Jsp其实在本质上就是servlet,但是两者的创建方式不同:A serv

5、let完全由java代码构成,是java的一个类。擅长于流程控制和事务处理,通过servlet来生成动态网页很不直观。jsp由jsp标签和html代码构成,可以方便的编写动态网页。B 在mvc模型中,jsp属于view视图,而servlet属于controller流程控制层最主要的不同点在于 servlet的应用逻辑是在java文件中,并且完全从表示层中的html里分离出来,而jsp是java和html组合成一个扩展名为.jsp的文件。11 MVC的各个部分都有那些技术来实现?如何实现? 答:MVC是ModelViewController的简写。Model 代表的是应用的业务逻辑(通过Java

6、Bean,EJB组件实现), View 是应用的表示面(由JSP页面产生),Controller 是提供应用的处理过程控制(一般是一个Servlet),通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。11 jsp中如何读取客户端的请求?如何获取某个jsp页面的真实路径? 获取请求:request.getparameter(“”) 获取路径:12 cookie和session的区别和作用,及应用范围,session的工作原理? 作用:可以利用cookie和session包含信息的任意性来筛选并维护这些信息,以判断在http传输中的状态。最典型的应用就

7、是在用户注册的时候判断用户是否已经登录网站,会给出用户提示信息,以便在下一次进入此网站或者登录的时候简化进入的手续,例如QQ。还有一个作用就是在购物车中,用户在同一网站选择了不同的商品,这些信息都会存储在cookie或者session,在付款的时候会得到提示信息。总之,cookie和session就是能够记录客户状态的技术。只要cookie能够做到的session都能做到。 Cookie 主要是用来存储在客户端上面的数据,减少服务器的储存压力,不够安全,客户端可以清除cookie。 Session 主要是用来存储在服务器上面的数据,安全,但是占内存。Session用于保存每个用户的专用信息.

8、每个客户端用户访问时,服务器都为每个用户分配一个唯一的会话ID(Session ID) . 她的生存期是用户持续请求时间再加上一段时间(一般是30分钟左右).Session中的信息保存在Web服务器内容中,保存的数据量可大可小.当 Session超时或被关闭时将自动释放保存的数据信息.由于用户停止使用应用程序后它仍然在内存中保持一段时间,因此使用Session对象使保存用户数据的方法效率很低.对于小量的数据,使用Session对象保存还是一个不错的选择Cookie 用于保存客户浏览器请求服务器页面的请求信息,程序员也可以用它存放非敏感性的用户信息,信息保存的时间可以根据需要设置.如果没有设置C

9、ookie失效日期,它们仅保存到关闭浏览器程序为止.如果将Cookie对象的Expires属性设置为Minvalue,则表示Cookie永远不会过期.Cookie存储的数据量很受限制,大多数浏览器支持最大容量为4K,因此不要用来保存数据集及其他大量数据.由于并非所有的浏览器都支持Cookie,并且数据信息是以明文文本的形式保存在客户端的计算机中,因此最好不要保存敏感的,未加密的数据,否则会影响网站的安全性。Session工作原理(1)当有Session启动时,服务器生成一个唯一值,称为Session ID(好像是通过取进程ID的方式取得的)。(2)然后,服务器开辟一块内存,对应于该Sessio

10、n ID。(3)服务器再将该Session ID写入浏览器的cookie。(4)服务器内有一进程,监视所有Session的活动状况,如果有Session超时或是主动关闭,服务器就释放改内存块。(5)当浏览器连入IIS时并请求的ASP内用到Session时,IIS就读浏览器Cookie中的Session ID。(6)然后,服务检查该Session ID所对应的内存是否有效。(7)如果有效,就读出内存中的值。(8)如果无效,就建立新的Session。13 Session域对象的生命周期? Session对象在第一次执行request.getSession()的时候创建,在服务器关闭、session

11、失效/失效(默认30分钟)或者手动销毁的时候销毁。Session的作用范围在一次会话中。14 servlet的核心类有哪些,各有什么特点? A servletContext Servlet容器在加载应用时会创建servletContext域对象,代表着当前整个javaWeb应用(全局)setAttribute(String name) 存储参数getAttribute(String name) 获取参数B servletConfig可以获取WEB-INF配置文件init-param里面的值(非全局,之恩能够获取当前servlet里面的配置数据)获取指定参数名字的值。注意:init-param只

12、能放在servlet-class配置标签后面String value = getServletConfig().getInitParameter(ppp);C HttpServletResponse 响应getOut()sendRedirect()D HttpServletRequest 封装了所有请求15 JDBC如何进行事务处理? Coon.setAutoCommit(false) 开启事务 Cmit 提交事务 Coon.rollback 回滚事务16 使用jdbc对数据库进行增删改查的步骤? A:注册驱动 Class.forName(“com.mysql.jdbc.Driver”);B:

13、 得到连接Connection coon = DriverManager. Coonnection(“jdbc:mysql:/localhost:3306/day01, root, root”);C: 准备sql语句String sql =insert into staff values(?,?,?,?);D: 获得preparestatement预编译对象PreparedStatement ps=conn.prepareStatement(sql);E:执行sql语句ps.setInt(1, 22); ps.setString(2,铁杨 ); ps.setInt(3, 23000); ps.

14、setInt(4, 1); int n =ps.executeUpdate(); if (n 0) System.out.println(添加成功); else System.out.println(添加失败); F:关闭连接ps.close();conn.close();Hibernate17 hibernate的核心配置hibernate.cfg.xml文件有什么作用? A:数据库连接信息。必选属性有五个(数据库驱动,数据库url,数据库连接用户名,数据库连接密码,数据库方言选最短的那个)B:hibernate的相关特性。可选属性有三个(将sql语句打印到控制台;格式化sql语句;自动建表

15、选择update)C:实体类映射文件,加载实体类映射到核心配置文件18 hibernate对象的三大状态 瞬时:没有id,没有在session缓存中 持久:有id,在session缓存中 游离:有id,没有在session缓存中持久化: 持久化状态的对象,会在事务提交时,自动同步到数据库中.我们使用hibernate的原则.就是将对象转换为持久化状态.Spring19 什么是spring?Spring是一个轻量级的java开源框架,它是为了解决企业开发的复杂性而创建的。它的主要优势之一就是分层架构。Spring的核心就是反转控制和面向切面。简单来说,spring就是一个分层的(一站式)轻量级的

16、开源框架。反转控制(IOC):就是将对象的创建权交给了spring。作用就是实现了程序的解耦合。依赖注入(DI):需要有ioc的环境,创建这个类的过程中,spring将类的依赖的属性设置进去。Spring负责管理其他框架所有的对象。20 spring容器及applicationContext.xml配置Spring 的容器是applicationContext。在加载applicationContext.xml时创建。applicationContext.xml:标签:用来描述管理容器对象的标签属性:起得别名,根据该名称获得对象属性:被管理对象的完整类名属性:默认用singleton,单例对象

17、。在spring容器中只存在一个实例。大多数用这个,可以不写。Prototype多例,每次再获得才会创建.每次创建都是新的对象.整合struts2时,ActionBean必须配置为多例的。因为struts2每次请求都会创建一个新的action。导入其他spring配置文件:21 spring属性注入: A: set方法注入。最重要的一种。 B: 构造方法注入。 C: p名称空间注入 D: spel注入Mybatis22 JDBC的问题总结: A:数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源的浪费,影响数据库性能。解决:在SqlMapConfig.xm

18、l中配置数据链接池,使用连接池管理数据库链接。B: 将sql语句硬编码到java代码中,如果sql 语句修改,需要重新编译java代码,不利于系统维护。设想:将sql语句配置在xml配置文件中,即使sql变化,不需要对java代码进行重新编译。解决:将Sql语句配置在XXXXmapper.xml文件中与java代码分离。C: 向preparedStatement中设置参数,对占位符号位置和设置参数值,硬编码在java代码中,不利于系统维护。设想:将sql语句及占位符号和参数全部配置在xml中。解决:Mybatis自动将java对象映射至sql语句,通过statement中的parameterT

19、ype定义输入参数的类型。D: 从resutSet中遍历结果集数据时,存在硬编码,将获取表的字段进行硬编码,不利于系统维护。设想:将查询的结果集,自动映射成java对象。解决:Mybatis自动将sql执行结果映射至java对象,通过statement中的resultType定义输出结果的类型。23 什么是mybatis? MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis,实质上Mybatis对ibatis进行一些改进。 MyBatis是一个优秀的持久

20、层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。Mybatis通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过java对象和statement中的sql进行映射生成最终执行的sql语句,最后由mybatis框架执行sql并将结果映射成java对象并返回。24 mybatis架构A: mybatis配置SqlMapC

21、onfig.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息。mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在SqlMapConfig.xml中加载。 B: 通过mybatis环境等配置信息构造SqlSessionFactory即会话工厂C: 由会话工厂创建sqlSession即会话,操作数据库需要通过sqlSession进行。D: mybatis底层自定义了Executor执行器接口操作数据库,Executor接口有两个实现,一个是基本执行器、一个是缓存执行器。E: Mapped Statement也是mybati

22、s一个底层封装对象,它包装了mybatis配置信息及sql映射信息等。mapper.xml文件中一个sql对应一个Mapped Statement对象,sql的id即是Mapped statement的id。F: Mapped Statement对sql执行输入参数进行定义,包括HashMap、基本类型、pojo,Executor通过Mapped Statement在执行sql前将输入的java对象映射至sql中,输入参数映射就是jdbc编程中对preparedStatement设置参数。G: Mapped Statement对sql执行输出结果进行定义,包括HashMap、基本类型、pojo

23、,Executor通过Mapped Statement在执行sql后将输出结果映射至java对象中,输出结果映射过程相当于jdbc编程中对结果的解析处理过程。25:#和$的区别?#表示一个占位符号,通过#可以实现preparedStatement向占位符中设置值,自动进行java类型和jdbc类型转换,#可以有效防止sql注入。 #可以接收简单类型值或pojo属性值。 如果parameterType传输单个简单类型值,#括号中可以是value或其它名称。$表示拼接sql串,通过$可以将parameterType 传入的内容拼接在sql中且不进行jdbc类型转换, $可以接收简单类型值或pojo

24、属性值,如果parameterType传输单个简单类型值,$括号中只能是value。26 sqlMapConfig.xml配置文件内容?A:properties(属性)B: settings(全局配置参数)C:typeAliases(类型别名)D: typeHandlers(类型处理器)E:objectFactory(对象工厂)F:plugins(插件)G:environments(环境集合属性对象)environment(环境子属性对象)H: transactionManager(事务管理)I: dataSource(数据源)J:mappers(映射器)27.mybatis复习课程复习:my

25、batis是什么?mybatis是一个持久层框架,mybatis是一个不完全的ORM框架。sql语句需要程序员自己去编写,但是mybatis也有映射(输入参数映射、输出结果映射)。mybatis入门门槛不高,学习成本低,让程序员把精力放在sql语句上,对sql语句优化非常方便,适用与需求变化较多项目,比如互联网项目。mybatis框架执行过程:1、配置mybatis的配置文件,SqlMapConfig.xml(名称不固定)2、通过配置文件,加载mybatis运行环境,创建SqlSessionFactory会话工厂 SqlSessionFactory在实际使用时按单例方式。3、通过SqlSess

26、ionFactory创建SqlSession SqlSession是一个面向用户接口(提供操作数据库方法),实现对象是线程不安全的,建议sqlSession应用场合在方法体内。4、调用sqlSession的方法去操作数据。 如果需要提交事务,需要执行SqlSession的commit()方法。5、释放资源,关闭SqlSessionmybatis开发dao的方法:1、原始dao 的方法 需要程序员编写dao接口和实现类 需要在dao实现类中注入一个SqlSessionFactory工厂。2、mapper代理开发方法(建议使用) 只需要程序员编写mapper接口(就是dao接口) 程序员在编写ma

27、pper.xml(映射文件)和mapper.java需要遵循一个开发规范: 1、mapper.xml中namespace就是mapper.java的类全路径。 2、mapper.xml中statement的id和mapper.java中方法名一致。 3、mapper.xml中statement的parameterType指定输入参数的类型和mapper.java的方法输入 参数类型一致。 4、mapper.xml中statement的resultType指定输出结果的类型和mapper.java的方法返回值类型一致。SqlMapConfig.xml配置文件:可以配置properties属性、别

28、名、mapper加载。输入映射: parameterType:指定输入参数类型可以简单类型、pojo、hashmap。 对于综合查询,建议parameterType使用包装的pojo,有利于系统 扩展。输出映射: resultType: 查询到的列名和resultType指定的pojo的属性名一致,才能映射成功。 reusltMap: 可以通过resultMap 完成一些高级映射。 如果查询到的列名和映射的pojo的属性名不一致时,通过resultMap设置列名和属性名之间的对应关系(映射关系)。可以完成映射。 高级映射: 将关联查询的列映射到一个pojo属性中。(一对一) 将关联查询的列映射

29、到一个List中。(一对多)动态sql:(重点) if判断(掌握) where foreach sql片段(掌握)课程安排:对订单商品数据模型进行分析。高级映射:(了解) 实现一对一查询、一对多、多对多查询。 延迟加载查询缓存 一级缓存 二级缓存(了解mybatis二级缓存使用场景)mybatis和spirng整合(掌握)逆向工程(会用)Springmvc28 springmvc介绍Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的

30、就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。在web模型中,MVC是一种很流行的框架,通过把Model,View,Controller分离,把较为复杂的web应用分成逻辑清晰的几部分,是为了简化开发,减少出错。还是为了组内开发人员之间的配合。总之就是一种分层工作的办法。springMVC,是spring的一个子框架,当然拥有spring的特性,如依赖注入。29 springmvc复习 springmvc框架: DispatcherServlet前端控制器:接收request,进行response HandlerMapping处理器映射器:根据url查找Handler。(可以通过xml配置方式,注解方式) HandlerAdapter处理器适配器:根据特定规则去执行Handler,编写Handler时需要按照HandlerAdapter的要求去编写。 Handler处理器(后端控制器):需要程序员去编写,常用注解开发方式。 Handler处理器执行后结果 是ModelAndView,具体开发时Handler返回方法值类型包括 :ModelAndView、String(逻辑视图名)、void(通过在Handler形参中添加request和respons

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1