Servlet与Jsp常见的面试以及答案

1. 什么是servletservlet的原理是什么

ServletJava编写的服务器端程序,主要功能浏览和修改数据,生成动态Web内容。

当用户请求Servlet时,容器构建ServletRequest对象request, Service通过request对象获取到请求的参数,然后,根据参数做出相应的处理,通过ServletResponse对象来向客户端发送响应内容。

 

2. 简述下Servlet的生命周期。

Servletweb容器加载和实例化 调用init()方法 只会调用一次,用户请求Servlet时调用service(),servlet销毁时调用destory()

 

3.  简述下Servlet如何配置。

WEB应用程序的web.xml文件中进行注册  映射 其访问 路径,才可以被Servlet引擎加载被外界访问。

一个<servlet>元素用户注册一个Servlet,它包含有两个主要的子元素:<servlet-name><servlet-class>,分别用户设置Servlet的注册名称和Servlet的完整类名。

一个<servlet-mapping>元素用于映射一个已注册的Servlet的一个对外访问路径,它包含有两个子元素:<servlet-name><url-pattern>,分别用户指定Servlet的注册名称和Servlet的对外访问路径。

 

4. ServletHttpServlet的演变过程,以及他们的区别

HttpServlet继承了GenericServlet  抽象类 实现Servlet接口 

HttpServlet是子类,当然就具有GenericServlet抽象类的一切特性,还添加了doGet, doPost,等一 切特性方法

 

5. 说下tomcat服务器的原理

浏览器访问tomcat搭建的web应用程序时,tomcat会把文件,转换成浏览器能够显示的文件。

访问jsp文件时tomcat会把jsp文件编译成一个servletservlet再给浏览器发送相应的数据。
访问html时,tomcat就会直接传递给浏览器。

 

6.    过滤器的执行原理,以及如何配置

过滤器实例由web容器创建,用于拦截请求  判断 请求的合法性.实例创建调用INIT()方法初始化,当有请求过来时调用doFilter(),请求不合法则阻塞请求,合法则调用chain.doFilter方法,将请求向后续传递.

配置:web.xml中配置<filter>标签,指明过滤器的名称及实现类,配置过滤器映射<filter-mapping>,指明映射拦截的url和拦截器.

 

7. 监听器的执行原理,以及如何配置

web监听器是一种Servlet中的特殊的类,它们能帮助开发者监听web中的特定事件,比如ServletContext,HttpSession,ServletRequest监听创建和销毁变量的创建销毁和修改等。可以在某些动作前后增加处理,实现监控。

配置:web.xml中配置<listener>标签,指明监听器的实现类.

 

8. Servlet的九大内置对象是什么?以及他们的作用域

Pagepagecontextrequest,  respone,  session,  out, applicationconfigexception  

 

作用域(由小到大):page->request->session-application

 

9. Servlet是线程安全的吗?如果不是如何解决安全问题。

不安全,使用syschronized解决线程安全问题.

 

10. Jsp的原理是什么?

特点:JSP最大的特点是能够像写HTML一样的写JSP,但是HTML只能提供静态的数据,而JSP能够提供允许在页面中嵌套Java代码。

 

原理:浏览器想服务端发送请求,其本质上访问的还是一个Servlet服务器在执行JSP时,第一次先将JSP编译成一个Servlet,所以我们在访问JSP时,其实不是在访问JSP,而是在访问JSP编译之后的Servlet

 

11. Jsp有哪些标签库,你用过哪些标签。

JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。可以将其分为5个类别核心标签  格式化标签  SQL 标签  XML 标签  JSTL 函数

 

12. 说下表达式<%=  %>的作用。 

<%=  %>用于取当前页面的变量值

 

13. 说下EL表示$的作用,举例子说明

获取java对像数据。

 

14. Jsp的指令有哪些以及他们的作用

page指令: 用于设定整个JSP页面的属性相关功能

include指令: 是一种静态包含 表示在JSP编译时插入一个包含文件或者代码的文件,

taglib指令: 声明JSP文件使用了标签库

 

15. 说下session原理

客户端访问服务端时服务端会随机生成一个sessionid,以cookie形式保存在客户端.在服务器端记录的是一个key-value形式的数据结构,这里的key肯定是指sessionid了,value就代表session的详细内容。用户在做http请求的时候,总是会把sessionid传递给服务器,然后服务器根据这个sessionid来查询session的内容

 

16. 说下cookie原理

Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。

 

17. Applicationsessioncookie的作用域是什么

Session:存放于服务器,生命周期根据不同的设置而定。默认是20分钟,可以设置成无限期。主要根据客户端传递过来的SessionID来区分不同的对话。

application:服务器应用程序,这个的生命周期是根据应用程序进程来决定的。服务器那么就消失了,否则就一直存在。

cookie这个是存放的载体在客户端的浏览器中,生命周期默认是根据服务器返回的t-Cookie头设置的。

 

18. 说下servlet的上传与下载原理?

文件上传: 那么表单的method必须指定为POST,加上enctype=”multipart/form-data”的表单属性以及对应的值。input标签的type属性为file.

文件下载: 通过HttpServletResponse.setContentType( )方法设置内容类型,setHeader方法设置设置文件名, getOutputStream方法拿到输出流向客户端写入文件内容.

 

19. Form表单的控件有哪些 以及他们的作用

<input type="text"> 定义用于文本输入的单行输入字段:

<9  type="radio"> 定义单选按钮。 

<input type="submit"> 定义用于向表单处理程序(form-handler)提交表单的按钮。

 

20. 如何解决乱码,怎么会出现乱码呢?

当中文内容与页面编码不一致或数据读写取过程中编码设置错误都有可能造成中文乱码.

解决方法,统一编码格式,

 

21. 如何通过EL表示式指定获取application对象的属性值、

${applicationScope.对象名.属性名};

 

22. TCP协议经过几次握手?

第一次:服务端 发送请求给客户端

第二次:客户端做出响应

第三次:服务端做出确定

想要学习更多的后台基础的可搜索博客号:weixin_41920152

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭