1、Tomcat优化经验

参考解答:http://blog.csdn.net/itcast_cn/article/details/48949233

1、去掉对web.xml的监视,把jsp提前编辑成Servlet

有富余物理内存情况下,加大tmocat使用的jvm的内存

2、服务器资源配置

1)CPU的性能,在高并发的情况下,直接影响处理速度
2)大数据处理下,对内存需求大,可以用-Xmx -Xms -XX:MaxPermSize等对内存不同功能块进行划分

经常性内存不足,会导致经常性full GC,影响性能

3)对大数据文件进行磁盘读取,磁盘常常是性能瓶颈,最好用缓存

3、利用缓存和压缩

1)静态页面最好缓存,这样不用每次从磁盘访问
nginx可以做缓存服务器,缓存图片、css、js等资源,减少后端tomcat访问

2)开启gzip压缩能加快网络传输速度,可以将压缩工作交给前端Ngix来完成,减少tmocat工作

4、采用集群

横向扩展,组建tomcat集群能有效提升性能

5、优化tomcat的参数

主要是优化连接配置,关闭客户端dns等

2、Http中Get和Post的区别

http://blog.csdn.net/yipiankongbai/article/details/24025633
Http定义了与服务器交互的不同方法
最基本的是:GET\POST\PUT\DELETE\HEAD
GET\HEAD是安全的方法,一般只是请求服务器的数据
而POST是不安全的,因为可能修改服务器的数据

3、什么是Servlet

sevelet有良好的生命周期
包括:加载、实例化、初始化、处理请求、服务结束

其生命周期由javax.servlet.Servlet接口的init、service、destroy表达

是开发动态web资源的技术
通常将实现了servlet的类叫Servlet
步骤:
1、编写java类,实现servlet接口
2、将该类部署到web服务器

Sevlet运行过程:
它由web服务器调用,当web服务器接收到客户端的访问请求
1、web服务器检查是否已经装载并创建了该Servlet的实例对象
2、若没有,则装载并创建Servlet实例
3、调用实例对象的init()
4、创建一个用与封装HTTP请求消息的HttpServletRequest对象和
相应消息对象HttpServletResponse,再调用service(),将请求和响应传入
5、web应用程序被停止or重启前,Servlet引擎将卸载Servlet,在卸载前调用destroy()

浏览器发送一个HTTP请求,请求被Web容器分配给特定的Servlet处理
Servletz本质就是拥有一系列可以处理HTTP请求的方法的对象,常见方法doGet()/doPost()
web容器包含多个Servlet,特定的HTTP请求由那个Servlet处理由web.xml决定

Sevlet生命周期:
1、web容器加载servlet,开始生命周期
2、调用init()初始化
3、调用service(),该方法会根据请求的不同调用不同的do**()
4、结束服务时,调用destroy()

实现:

extends HttpServlet

4、forward()和redirect()

http://blog.csdn.net/tenor/article/details/4077079
forward():
容器中控制权的转向,是服务器内部重定向
他是直接读取url中的内容显示,所以地址栏地址不会变
其request值不变
更高效、便于隐藏实际链接

redirect():
告诉客户端,重新发送请求链接,地址栏显示转发后的地址
等于客户端会发送两次request
若要请求跳转别的服务器资源,只能用此

Request范围的对象,能被forward访问,不能被redirect访问

5、request.getAttribute() 和 request.getParameter() 区别?

http://blog.csdn.net/zhaohongjuan/article/details/53641160
getParameter:
取得的是通过容器的实现来取得类似Post、get方式传入的数据取得的是通过容器的实现来取得类似Post、get方式传入的数据
数据从web客户端流转到服务端

getAttribute:
在web容器内部流转,仅仅是请求处理阶段
要get,先要set
在进行转发的时候,可以通过设置attribute来实现Request范围的数据共享

6、页面间对象传递的方法

http://www.jb51.net/article/105355.htm
request
session
application
cookie

url(url参数)
form(提交表单)

url/form:只能传字符串
request/session/application/cookie:可传对象

url/request:在请求页面获得数据
session/application/cookie:多页面共享

session/cookie:保存用户相关信息
session:保存到服务器内存
cookie:保存到客户端内存

application:保存所有用户相关的信息,保存在服务器内存

7、JSP vs Sevlet

JSP:
1、是Sevlet的扩展,本质是Sevlet的简易形式
2、编译后是"类servlet"
3、java和html组合成.jsp的文件

jsp侧重视图
Servlet侧重控制逻辑

8、MVC 的各个部分都有那些技术来实现?如何实现?

Model:业务逻辑,通过JavaBean,EJB组件实现
View:表示层,JSP页面产生
Controller:控制层,一般是一个Servlet
以上组件可以交互和重用

2017 Java开发面试题-Java Web篇(1)相关推荐

  1. 思科java开发面试题

    思科java开发面试题 1.mybatis怎么用的 2.MySQL怎么用的 3.git怎么用的 4.hashmap和hashtable 5.建立多线程 6.设计模式 7.程序的优化 8.程序的安全

  2. 2022高级JAVA开发面试题精选

    面试过程是一个由浅入深的过程,面试官先给求职者抛出一个相对简单的问题,然后通过一环套一环的追问深入考察求职者对知识点的理解掌握程度. 如下是一个实际的关于redis知识点的面试场景: 面试官:你用过r ...

  3. Java开发面试题——很有帮助的

    面试题 一.Java 1.运行机制 1)Java跨平台原理 Java实现跨平台是JVM(Java虚拟机)起的作用.如果是C/C++的编译方式,一旦换了一个平台,那么就需要重新编译一份对应的可执行代码, ...

  4. Java开发面试题含答案(计算机网络、操作系统、Java、Mysql、Redis、Spring)

    Java开发一轮复习 一.网络篇 1.OSI七层模型与TCP/IP 五层模型 ​ OSI七层:物理层.数据链路层.网络层.传输层.会话层.表示层.应用层 ​ TCP/IP五层:物理层.数据链路层.网络 ...

  5. 无内鬼来点干货,银行java开发面试题(含答案)

    目录 前言 1.在多线程环境中使用HashMap会有什么问题?在什么情况下使用get()方法会产生无限循环? 2.不重写Bean的hashCode()方法是否会对性能带来影响? 3.对于一个不可修改的 ...

  6. 2021 最新版Java开发面试题

    一.Java 1.Java跨平台原理 详细说明: ​ 由于各操作系统支持的指令集,不是一致的.会让我们的程序在不同的操作系统上执行不同的代码.而Java开发了适用于不同操作系统及位数的Java虚拟机来 ...

  7. java开发面试题与答案详解

    ZooKeeper 1.CAP定理 答:CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency).可用性(Availability).分区容错性(Partition tol ...

  8. 美国道富java开发面试题_从事Java开发五年,面试9家拿到7家offer,1096面试+67笔试题...

    个人情况 时间总是在不经意间流逝,我们也在人生的旅途上不断前行,转眼间在微软的美国总部工作近两年了.生活总给我们带来新的挑战,同时也有新的惊喜.这两年在陌生的国度里用着不太流利的英语和各种肤色的人交流 ...

  9. 中软国际java开发面试题_中软国际java面试题及参考答案

    面试题是中软国际java个人求职者在面试过程中的敲门砖,以下是小编为大家收集到的,希望对大家有帮助! :填空题 1Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点? B ...

最新文章

  1. TCP编程函数和步骤
  2. Head First设计模式之策略模式(Strategy)
  3. 今晚直播 | 微软亚洲研究院徐毅恒:预训练时代下的文档智能
  4. 云计算作为当前趋势 能带给你哪些好处?
  5. SAP JAM活跃度统计
  6. python设计一个函数定义计算并返回n价调和函数_音乐编程语言musicpy教程(第三期) musicpy的基础语法(二)...
  7. 【收集】前端技能知识图谱
  8. 公共子序列(信息学奥赛一本通-T1297)
  9. mysql 增删改数据 dml 1207 0310
  10. 苹果公司官方证实,iPhone12延期!
  11. 1000道Python题库系列分享十二(9道编程题)
  12. java游戏走到边缘_java-3D对象相遇的边缘和毛刺不均匀
  13. Android 测试(Unit Test Instrument Test)
  14. scrapy框架—spiders
  15. NoSQLBooster for MongoDB软件使用
  16. flask怎么创建虚拟环境_在Windows OS中创建虚拟环境并在本地运行Flask应用程序
  17. 网络号和主机号的计算
  18. python扫描局域网端口和ip_我想用python扫描局域网内的ip和mac地址,需要什么第三方库...
  19. 视频通话和聊天工具Jitsi
  20. 深度神经网络简单介绍,神经网络设计与实现

热门文章

  1. pytorch 图像分割的交并比_PyTorch专栏(二十二): 深度卷积对抗生成网络
  2. vue 给数组的每一个对象加一个新字段
  3. 三七女生节,看程序媛们选好口红色号,踩上高跟鞋,特别美丽,特别凶狠,特别温柔~...
  4. sizeof指针和数组
  5. Spring 核心loC
  6. [暖冬限定]DevExpress WinForms冬季款皮肤/主题全新上线
  7. IndentationError: expected an indented block如何处理
  8. 华为云如何购买并登录Windows弹性云服务器?
  9. UNIAPP报错:Not found -1,84,0,2 at view.umd.min.js:1
  10. 微信小程序迭代发布流程