java笔试题三(javaWeb)
1.讲一下Servlet的执行过程,doGet和doPost的区别。
执行过程:
比如注解配置版本,先继承httpServlet,一旦发送get请求
调用,再执行post方法。
doGet和doPost的区别:
功能上:doGet是处理get请求,doPost是处理post请求。
表现上:doGet用于地址栏的提交,doPost用于表单的提交,且不
在地址栏上显示,所以更安全。
数据上:页面提交数据的时候,get的数据大小是4K,post没有限制。
说明:
Servlet的执行过程也是Servlet的生命周期,当服务器启动的时候生命周期开始。
先初始化(init),再加载web.xml文件,再按不同要求调用doGet或doPost方
法,最后用destroy销毁。
2.当service有一个实例变量,doGet和doPost去调用这个变量,会出现什么问题?
出现线程不安全问题,无论是doGet和doPost去调用,服务器处理都是
一样的过程,那么可以把处理过程单独写一个handle里,让这两个方法调用
handle,根据不同请求调用不同的方法。
3.如何处理servlet的线程不安全的问题?(网络)
servlet是一个单例(在堆中),在请求的情况下去共享一个servlet,就会
出现线程不安全的情况,所以最好不要定义全局变量,最好定义局部变量,用
synchronized就可以保证在同一时间只有一个线程访问。(所以同步块会导致
性能变差,最好不去用实例变量)(百度查一下)
4.JSP的重定向和转发的流程有什么区别?
重定向是客户端行为,转发是服务器行为。
重定向是服务器产生两次请求,转发是一次请求,重定向是可以转发到项目以外的
任何网址,转发只能在当前项目里转发。
重定向会导致request对象信息丢失,转发则不会。
转发的URL不会变,request.getRequestDispatch(),forward()
重定向的URL会改变,response.getRedirect()
5.JSP和Servlet的区别?
JSP的可读性强,易于维护,并且JSP在最后会编译成servlet,servlet容易
调试。
6.谈谈session
客户端向服务器发送请求,这个session存放在服务器端,客户端通过session
ID来找到服务器端里面的session。
(如果重新打开一个客户端去访问sessionID会不一样??是随机分配的)
session不会因为浏览器的关闭而删除,只要时间过期了就会关闭,只会通过
上面提到的方式去关闭。(百度查一下)
7.同一个客户端及其多次访问同一个资源,sessionID一样吗?
是一样的,一般来说,每次请求都会新创建一个session。
8.JSP的九大内置对象,三大指令,七大动作的具体功能??(高频**)
JSP九大内置对象:
pageContext:只对当前页面有效,里面封装了基本的request和session的对象。
request:对当前请求进行封装。
Session:浏览器回话对象,对整个web工程都有效
Application:应用程序对象,对于整个web工程都有效
Out:页面打印,在JSP页面打印字符串
Response:返回访问器端信息给用户
Config:单个servlet的配置对象,相当于servletConfig对象
Page:当前页面对象,也就是this
Exception:错误页面的exception对象,如果指定的是错误页面,这个就是异常对象
三大指令:
Page:指令是针对当前页面的指令
include:用于指定如何包含另一个页面
Taglib:用于定义和指定自定义并且
七大动作:
Forward:执行页面跳转,将请求的处理转发到另一个页面
Param:用于参数传递
Include:用于动态引入一个JSP页面
Plugin:用于下载JAVABean或applet到客户端
useBean:使用javaBean
setProperty:修改javaBean实例的属性值
setProperty:获取实例的属性值
(看一下书,不要硬记)
13.获取页面的元素和值,说一下。
request.getParamter()返回客户端的请求参数和值
request.getParamterNames()返回所有可以属性名的枚举
request.getParamterValues()返回包含参数的所有的数组
14.servlet和javaScript的区别,它们分别是什么作用?
一个是服务器端,一个是客户端。
servlet是独立于平台协议的服务器的java应用程序,可以动态生成web页面,并采用
并采用响应——请求的模式提供web服务。(与java相关,独立于服务器端的servlet,Javaweb应用)
javaScript是一种解释性语言,用于向HTML页面提供的一种交互行为,通常被
直接嵌入在HTML页面中。(与HTML相关,嵌入到HTML的js,前端)
servlet是java语言编写的web应用(javaWeb应用)
js是基于html上的一种解释语言(前端)
15.JSP的执行原理
客户端发出请求(request),JSP引擎将JSP页面翻译成servlet的java源文件,
在Tomcat中将源文件翻译成class文件,并加载到内存中执行,把结果返回(response)
给客户端。
16.HTML和servlet的异同
不同:HTML是静态框架,servlet动态web应用。
html页面有服务器直接返回
servlet是用来处理客户请求,并返回HTML页面
servlet需要服务器调用servlet方法生成动态html页面,且需要在
web.xml中配置URL路径。
17.回话跟踪有哪些?它们的区别是什么?
Cookie,session和application
Cookie是HTTP对象,客户端和服务器端都可以操作
cookie是在客户端保持状态,session是在服务器端保持状态,由于...
18.session和application的作用?
Session用于客户端与服务器端之间保存状态的解决方案,数据保存
在服务器内存中,底层是cookie实现的; Application的作用域是整个工程
里只有一个,可以在不同浏览器之间共享数据,所有人都可以共享,因此
application是不安全的。
19.404和500是什么意思?
404:找不到URL请求的路径,一般是工程名不对或拼写错误
505:服务器内部错误,一般是服务器内部代码编写错误,也有
可能是抛出异常。
20.我们在web应用开发过程中会遇到乱码,如ISO -8859-1,如何输入一个
某种编码的字符串?
如将ISO-8859-1输出为GBK格式的字符,通过
new String(byte[] bytes,String charset)构造器设置编码构造一个新的
String(new String(“ISO-8859-1”,“GBK”));
java笔试题三(javaWeb)的更多相关文章
- Java 面试题 三 <JavaWeb应用调优线程池 JVM原理及调优>
1.Java Web应用调优线程池 不论你是否关注,Java Web应用都或多或少的使用了线程池来处理请求.线程池的实现细节可能会被忽视,但是有关于线程池的使用和调优迟早是需要了解的.本文由浅入深,介 ...
- 2016最新Java笔试题集锦
更新时间:2015-08-13 来源:网络 投诉删除 [看准网(Kanzhun.com)]笔试题目频道小编搜集的范文“2016最新Java笔试题集锦”,供大家阅读参考, ...
- 华为Java笔试题
华为Java笔试题+数据库题 一. 单项选择题 1.Java是从( )语言改进重新设计. A.Ada B.C++ C.Pasacal D.BASIC 2.下列语句哪一个正确( ) A. Java程序经 ...
- Java笔试题集锦
Java笔试题集锦 1.MVC的各个部分都有那些技术来实现?怎样实现? 答:MVC是Model-View-Controller的简写."Model" 代表的是应用的业务逻辑(通过J ...
- java面试题—精选30道Java笔试题解答(二)
摘要: java面试题-精选30道Java笔试题解答(二) 19. 下面程序能正常运行吗() public class NULL { public static void haha(){ System ...
- 北京Java笔试题整理
北京Java笔试题整理 1.什么是java虚拟机?为什么ava被称作是"平台无关的编程语言? 答:Java虚拟机可以理解为一个特殊的"操作系统",只是它连接的不是硬件,而 ...
- 【笔试题】精选30道Java笔试题解答
转自于:精选30道Java笔试题解答 精选30道Java笔试题解答 1. 下面哪些是Thread类的方法() A. start() B. run() C. exit() D. getPriority( ...
- 精选30道Java笔试题附答案分析
精选30道Java笔试题解答 都是一些非常非常基础的题,是我最近参加各大IT公司笔试后靠记忆记下来的,经过整理献给与我一样参加各大IT校园招聘的同学们,纯考Java基础功底,老手们就不用进来了,免得笑 ...
- 汉王JAVA笔试题
汉王JAVA笔试题 1,jsp中动态include与静态include的区别? (1)动态包含总是会检查文件中的变化,适合用于包含动态页面,并且可以带参数. (2)静态包含不会检查所含文件的变化,适用 ...
随机推荐
- Java8 Collectors.toMap的坑
按照常规思维,往一个map里put一个已经存在的key,会把原有的key对应的value值覆盖,然而通过一次线上问题,发现Java8中的Collectors.toMap反其道而行之,它默认给抛异常,抛 ...
- epoll详细工作原理(转)
原文:没有找到出处 开发高性能网络程序时,windows开发者们言必称iocp,linux开发者们则言必称epoll.大家都明白epoll是一种IO多路复用技术,可以非常高效的处理数以百万计的sock ...
- kubernetes实战(十五):k8s使用helm持久化部署jenkins集成openLDAP登录
1.基本概念 Jenkins在DevOps工具链中是核心的流程管理中心,负责串联系统的构建流程.测试流程.镜像制作流程.部署流程等,在持续集成中常用到的工具如下: Maven:源代码编译工具 Robo ...
- Java学习之路-RMI学习
Java远程方法调用,即Java RMI(Java Remote Method Invocation)是Java编程语言里,一种用于实现远程过程调用的应用程序编程接口.它使客户机上运行的程序可以调用远 ...
- 当前数据库普遍使用wait-for graph等待图来进行死锁检测
当前数据库普遍使用wait-for graph等待图来进行死锁检测 较超时机制,这是一种更主动的死锁检测方式,innodb引擎也采用wait-for graph SQL Server也使用wait-f ...
- HTML5插件
HTML 助手(插件) 辅助应用程序(helper application)是可由浏览器启动的程序.辅助应用程序也称为插件. 辅助程序可用于播放音频和视频(以及其他).辅助程序是使用 <obje ...
- jquery两稳定版本比较~~
jquery历经了多个版本的更新,版本上的比较貌似没什么必要性,一般来说新的版本会比旧的版本各方面都略有提升,但由于新版中增加了各种新的功能,难免会引起bug的发生.评估一个版本是否适合当前开发场景使 ...
- 去掉IntelliJ IDEA 中 mybatis 对应的 xml 文件警告
https://blog.csdn.net/aubdiy/article/details/68485336 IntelliJ IDEA 打开 mybatis 的 xml 文件时,对应的 xml 文件中 ...
- [adt]python实现栈-体验数据结构
经常使用py的一些数据结构,如list,及list的一些方法. 还有hash表等. 各类数据结构方法用的很6,然而不知道是底层是怎么实现的. 基于此,就开始研究一下py实现一些数据结构, 以便于对计算 ...
- Keepalived安装后出现的问题总结
1. 在配好主从备份之后,发现虚拟IP能ping通,但是访问虚拟IP对应机器上的服务(不是apache或者mysql之类的公用软件)却不成功,这是因为要访问的服务绑定了主机上的一个实体IP不是INAD ...