面试常问的Java Web题集
对于我们大部分人而言,在进入自己心仪的公司之前少不了准备工作,有一份全面细致面试题将帮助我们减少许多麻烦。之前给大家整理了一些Java基础方面常见的面试题,现在再整理一些JavaWeb方面常见的面试题,一方面帮助自己巩固下基础,另一方面也希望帮助想要换工作的朋友,看完之后如果你有更好的总结欢迎留言讨论分享。
01说一说selvet的生命周期
servlet 有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。 这个生存期由 javax.servlet.Servlet 接口的 init,service 和 destroy 方法表达。
Servlet 被服务器实例化后,容器运行其 init 方法,请求到达时运行其 service 方法,service 方法自动派遣运行与请求对应的 doXXX 方法(doGet,doPost)等,当服务器决定将实例 销毁的时候调用其 destroy 方法。 web 容器加载 servlet,生命周期开始。通过调用 servlet 的 init()方法进行 servlet 的初始化。通过调用 service()方法实现,根据请求的不同调用不同的do***()方法。结束服务,web 容 器调用 servlet的 destroy()方法
02 forward 和 redirect的区别
forward 是服务器请求资源,服务器直接访问目标地址的 URL,把那个 URL 的响应内容读 取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的, 所以它的地址栏中还是原来的地址。
redirect 就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来 说浏览器会用刚才请求的所有参数重新请求,所以 session,request参数都可以获取。
03 Spring MVC 整合
1.首先,要在web.xml里面配置SpringMVC的核心控制器,DispatcherServlet,对指定的后缀请求进行拦截。
2.Controller层要加@Controller注解,表明该类是MVC的控制层。
3.创建Service接口,给接口加上注解@Component或者@Service表明这是Service业务处理层
4.在Controller层声明Service变量(属性),给变量(属性)加上@Autowired注解,通过自动绑定机制将Service注入到Controller。
(注:@Autowired默认是ByType,如果想根据属性名注入,那么就再加上注解 @Resource(name="属性名"))
5.在Controller层的方法上加上注解@RequestMapping("requestAddress")表明该方法的请求地址
6.Dao层要加上注解@Repository表明这是数据库持久层
7.同样将dao实例注入到service层中。
8.配置视图解析器“InternalResourceViewResolver”
对于处理后的跳转进行统一配置
04 JSP和 Servlet有哪些相同点和不同点
JSP 是 Servlet技术的扩展,本质上是 Servlet 的简易方式,更强调应用的外表表达。JSP 编译后是"类 servlet"。Servlet 和 JSP 最主要的不同点在于,Servlet 的应用逻辑是在 Java 文件中,并且完全从表示层中的 HTML 里分离开来。而 JSP 的情况是 Java 和 HTML 可以 组合成一个扩展名为.jsp 的文件。JSP 侧重于视图,Servlet主要用于控制逻辑。
05 MVC的各个部分都有那些技术来实现
MVC 是 Model-View-Controller的简写。
Model 代表的是应用的业务逻辑(通过 JavaBean,EJB 组件实现)
View 是应用的表示面(由 JSP 页面产生)
Controller是提供应用的处理过程控制(一般是一个 Servlet)
通过这种设计模型把应用逻辑,处理过程和显 示逻辑分成不同的组件实现。这些组件可以进行交互和重用。
06 JSP隐视对象中四个作用域的作用范围
四个作用域从大到小的顺序为:
appliaction>session>request>page
application:全局作用范围,整个应用程序共享.生命周期为:应用程序启动到停止。
session:会话作用域,当用户首次访问时,产生一个新的会话,以后服务器就可以记住这个会话状态。
request:请求作用域,就是客户端的一次请求。
page:一个JSP页面。
以上作用范围使越来越小, request和page的生命周期都是短暂的
他们之间的区别就是:一个request可以包含多个page页(include,forward)。
07 项目的生命周期
1.需求分析
2.概要设计
3.详细设计(用例图,流程图,类图)
4.数据库设计(powerdesigner)
5.代码开发(编写)
6.单元测试(junit 白盒测试)(开发人员)
svn版本管理工具(提交,更新代码,文档)
7.集成测试 (黑盒测试,loadrunner(编写测试脚本)(高级测试))
8.上线试运行 (用户自己体验)
9.压力测试(loadrunner)
10.正式上线
11.维护
08 session和cookie的区别
session是存储在服务器端,cookie是存储在客户端的,所以安全来讲session的安全性要比cookie高,然后我们获取session里的信息是通过存放在会话cookie里的sessionid获取的。又由于session是存放在服务器的内存中,所以session里的东西不断增加会造成服务器的负担,所以会把很重要的信息存储在session中,而把一些次要东西存储在客户端的cookie里。
cookie确切的说分为两大类分为会话cookie和持久化cookie,会话cookie确切的说是存放在客户端浏览器的内存中,所以说他的生命周期和浏览器是一致的,浏览器关了会话cookie也就消失了,然而持久化cookie是存放在客户端硬盘中,而持久化cookie的生命周期就是我们在设置cookie时候设置的那个保存时间,然后我们考虑一问题当浏览器关闭时session会不会丢失,从上面叙述分析session的信息是通过sessionid获取的,而sessionid是存放在会话cookie当中的,当浏览器关闭的时候会话cookie消失所以我们的sessionid也就消失了,但是session的信息还存在服务器端,这时我们只是查不到所谓的session但它并不是不存在。那么,session在什么情况下丢失,就是在服务器关闭的时候,或者是sessio过期,再或者调用了invalidate()的或者是我们想要session中的某一条数据消失调用session.removeAttribute()方法,然后session在什么时候被创建呢,确切的说是通过调用session.getsession来创建,这就是session与cookie的区别。
原文发布时间为:2018-09-14
本文作者:全栈开发者社区
本文来自云栖社区合作伙伴“全栈开发者社区”,了解相关信息可以关注“全栈开发者社区”。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
从头编写 asp.net core 2.0 web api 基础框架 (4) EF配置
原文: 从头编写 asp.net core 2.0 web api 基础框架 (4) EF配置 第1部分:http://www.cnblogs.com/cgzl/p/7637250.html 第2部分:http://www.cnblogs.com/cgzl/p/7640077.html 第3部分:http://www.cnblogs.com/cgzl/p/7652413.html Github源码地址:https://github.com/solenovex/Building-asp.net-core-2-web-api-starter-template-from-scratch 前三部分弄完,我们已经可以对内存数据进行CRUD的基本操作,并且可以在asp.net core 2中集成Nlog了。 下面继续: Entity Framework Core 2.0 Entity Framework 是ORM(Object-Relational-Mapping)。ORM是一种让你可以使用面向对象的范式对数据库进行查询和操作。 简单的情况下,ORM可以把数据库中的表和Model对象一一映射起来;...
- 下一篇
Linux系统CentOS 7配置Spring Boot运行环境
从阿里云新买的一台Linux服务器,用来部署SpringBoot应用,由于之前一直使用Debian版本,环境配置有所不同,也较为繁琐,本文主要介绍CentOS下配置SpringBoot环境的过程 新建用户 由于新拿到的机器只有root用户,用root用户直接进行各种操作会有一定的安全问题,所以我们先创建用户。 请参考这篇文章:创建新用户 安装Oracle Java 8 Spring Boot是基于Java的框架,所以我们首先要安装Java 8。 请参考这篇文章:安装JDK 8 安装MySql5.7 既然是J2EE功能,我们必然少不了数据库,我们这里使用MySQL5.7。 请参考这篇文章:安装MySQL5.7 安装Nginx 我们需要Nginx来进行服务的(域名/IP)反向代理。 请参考这篇文章:安装Nginx 安装Spring boot工程为系统服务,服务器启动时自动启动 当我们部署Spring boot的应用时,当服务器重启后,我们需要我们的应用也跟随系统同时启动,所以我们要将我们的应用注册为一个系统服务来实现自启动。 请参考这篇文章:配置服务实现自启动 注意: 这篇文章里的Exec...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块
- 2048小游戏-低调大师作品
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2全家桶,快速入门学习开发网站教程