千家信息网

Java中Servlet常见面试题有哪些

发表于:2024-11-25 作者:千家信息网编辑
千家信息网最后更新 2024年11月25日,小编给大家分享一下Java中Servlet常见面试题有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1:什么是B/S和
千家信息网最后更新 2024年11月25日Java中Servlet常见面试题有哪些

小编给大家分享一下Java中Servlet常见面试题有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

1:什么是B/S和C/S

Browser/Server浏览器/服务器(瘦客户端)

Custom/Server 客户端/服务器(胖客户端)

2:描述war包、jar包、ear包的结构

war-

--myweb

---WEB-INF

----web.xml

----lib

----classes

jar-

--myjar

---META-INF

----.MF

ear-

--META-INF

---Application.xml

--.war

--.jar

3:什么是servlet?servlet主要做什么?

网络服务的请求和响应方式

通过WEB浏览器调用servlet的方法,主要是在服务端写动态代码与服务器端交流;

4:servlet 与cgi相比的优点?servlet的缺点

优点:

性能(线程比进程更快)

可伸缩

Java强健且面向对象

Java独立的平台

缺点:

处理代码(业务逻辑)与HTML(表现逻辑)混合在一起

5:常用的servlet包的名称是?

javax.servlet

javax.servlet.http

6:描述servlet接口的层次结构?

Servlet

--genericServlet

--HttpServlet

--自己的servlet

ServletRequest

ServletResponse

7:对比get方法和post方法?

get方法: 请求对服务器没有负面影响,Form数据量小,数据的内部应在url中可见; 明文传输,安全度低。

post方法:请求的数据过程改变服务器的状态,Form数据量大,数据的内部应在url中不可见,安全度高;

8:归类描述HttpServletRequest接口都完成那些功能

1.读取和写入HTTP头标

2.取得和设置cookies

3.取得路径信息

4.标识HTTP会话。

9:归类描述HttpServletResponse接口都完成那些功能

HttpServletResponse加入表示状态码、状态信息和响应头标的方法,它还负责对URL中写入一Web页面的HTTP会话ID进行解码。

10:描述Service方法所完成的基本功能?默认是在那里实现的?

service方法是在servlet生命周期中的服务期,根据HTTP请求方法(GET、POST等),将请求分发到doGet、doPost等方法

HttpServlet类实现

11:如何开发自己的Servlet?描述应该做的步骤和每步需要完成的工作

1.引jar包

1)构建开发环境 common包-->lib包-->servlet--->api.jar

2.开发servlet类

1)首先继承HttpServlet

2)实现 doGet() doPost()

3)定义 doGet() doPost()

3.建个web应用

4.部署

安装web容器,例如Tomcat

在Tomcat的webapps目录下新建一个文件夹作为web程序的根

在根下新建一个名为WEB-INF的文件夹,里面建立一个web.xml的文件、一个classes的文件夹、一个lib文件夹按照servlet的DTD配置web.xml文件。

把编译好的servlet的class文件复制到classes目录下lib文件存放程序所需要的jar包

12:为何servlet需要部署描述?

servlet需要配置web.xml文件来使容器认识servlet程序

13:Servlet基本的描述应该是?请写出来

 Hello sl314.web.FormBasedHelloHello/greeting

14:如何在html中使用servlet

FORM标记

ACTION- 指定form信息的目的地(相关的URL)

METHOD - 指定HTTP方法(GET或POST)

语法:

{HTML form tags and other HTML content}

15:如何接受request中的参数

String userName = (String)request.getParameter("userName")方法

16:如何接受request中header的值

request.getHeader(name);

request.getHeaders(names);等

17:如何输出html

PrintWriter pw = response.getWriter();

pw.write("");

pw.write("Hello");

pw.write("");

18:如何设置输出的contentType

response.getContentType()

19:描述servlet的生命周期?

生命周期是指servlet实例在web容器中从:首次创建调用init方法开始初始化期,经过service方法运行期,一直到destory方法销毁期 结束

servlet实例的生命周期由web容器来管理

20:描述init,service,destroy方法的功能和特点

init方法: 是在servlet实例创建时调用的方法,用于创建或打开任何与servlet相关资源和初始化servlet的状态Servlet规范保证调用init方法前不会处理任何请求。

service方法:是servlet真正处理客户端传过来的请求的方法,由web容器调用,根据HTTP请求方法(GET、POST等),将请求分发到doGet、doPost等方法

destory方法:是在servlet实例被销毁时有web容器调用。Servlet规范确保在destroy方法调用之前所有请求的处理均完成需要覆盖destroy方法的情况:释放任何在init方法中打开的与servlet相关的资源存储servlet的状态

21:什么是回调方法?有什么特点?

由容器来调用程序的方法

由容器来决定什么时候来调

22:如何设置初始化servlet的参数?

        greetingText        Hello   

23:如何获取servlet初始化的参数

public void init() {      greetingText = getInitParameter("greetingText");      System.out.println(">> greetingText = '" + greetingText + "'"); }

24:ServletConfig接口默认在那里实现的

GenericServlet类实现ServletConfig接口

25:什么是ServletContext?有什么作用?

Servlet上下文

ServletContext对象是Web应用的运行时表示,可通过其实现Web应用中的资源共享

26:如何访问ServletContext接口?是在那里实现的?

Servlet通过getServletContext()方法访问

GenericServlet类实现

27:ServletContext接口的功能包括?分别用代码示例

只读初始化参数: getInitParameter(name:String) : String

getInitParameterNames() : Enumeration

读写访问应用级属性:getAttribute(name:String) : Object

setAttribute(name:String, value:Object)

getAttributeNames() : Enumeration

只读访问文件资源: getResource(path) : URL

getResourceAsStream(path) : InputStream

写web应用日志文件:log(message:String)

log(message:String, Throwable:excp)

28:如何设置Context的参数?

 catalogFileName /WEB-INF/catalog.txt 

29:如何获取Context设置的参数值?

ServletContext context = sce.getServletContext(); String catalogFileName = context.getInitParameter("catalogFileName");

30:描述Web应用的生命周期?

Web容器启动时,初始化每个Web应用

可以创建"监听器"对象触发这些事件;

Web容器关闭时,销毁每个Web应用

31:如何用代码实现监控Web应用的生命周期?

public class Test implements ServletContextListener{ public void contextInitialized(ServletContextEvent sce) { // } }      com.csy.Test

32:web应用中如下错误码示什么意思:400,401,404,500

400 Bad Request

401 Unauthorized

404 Not Found

500 Internal Server Error

33:描述Web应用中用声明方式来进行错误处理的两种方法

使用error-page元素声明一个给定HTTP状态码的处理器

404

/error/404.html

可以声明任意数量的错误页面,但一个给定的状态码只能对应一个页面

使用exception-type元素声明给定Java异常的处理器

java.lang.ArithmeticException

/error/ExceptionPage

可以声明任意数量的错误页面,但一个给定的异常类型只对应一个页面

不能使用父类捕获多种异常

34:描述记录异常日志的方法,都位于那些接口?

GenericServlet:

log(message:String)

log(message:String, Throwable:excp)

ServletContext:

log(message:String)

log(message:String, excp:Throwable)

35:什么是会话?

Web容器可为每个用户保存一个"会话对象",用来存储特定用户的会话信息

36:如何获得会话?

HttpSession session = request.getSesseion();

37:会话Api的基本功能?

getID() :String

isNew() :boolean

getAttribute(name):Object

setAttribute(name,value)

removeAttribute(name)

38:如何销毁会话?

1、可使用部署描述符控制所有会话的生命周期

10

2、可使用控制特定会话对象的生命周期HttpSession接口

invalidate()

getCreationTime() :long

getLastAccessedTime() :long

getMaxInactiveInterval() :int

setMaxInactiveInterval(int)

39:描述会话保持状态的基本原理

当客户端第一次请求时,服务器创建一个session与request绑定,用响应对象response来返回sessionid 放到客户端的cookies中存储下来,下次在发送请求时,直接根据sessionid来检索服务器的会话(每次请求都会将所有的cookies带到服务器端)

40:如何读写cookie,代码示例

写:String name = request.getParameter("firstName"); Cookie c = new Cookie("yourname", name); response.addCookie(c); 读:Cookie[] allCookies = request.getCookies(); for ( int i=0; i < allCookies.length; i++ ) {           if ( allCookies[i].getName().equals("yourname") ) {             name = allCookies[i].getValue();             }     }

41:什么是URL重写,如何实现,代码示例

Cookie不能使用时,可使用URL重写 request.encodeURL();

客户在每个URL的后面追加额外的数据

服务器将此标识符与其存储的有关会话数据相关联

http://host/path/file;jsessionid=123

41:描述web应用的4种认证技术

BASIC - Web浏览器接收用户名和口令,将其以明码方式发送给Web服务器

DIGEST - Web浏览器接收用户名和口令,使用加密算法将此数据发送给Web服务器

FORM - Web应用提供发送给Web浏览器的HTML form

CLIENT-CERT - Web容器使用SSL验证用户,服务端和客户端的链路保护

42:什么是授权,什么是验证?

授权是分局用户角色划分web资源的过程,其标识web应用中的安全域 分配权限

web容器使用厂商指定的机制验证用户的角色 匹配权限

43:什么是HTTPS

HTTPS (Secure Hypertext Transfer Protocol) 是使用SSL协议的HTTP

44:什么是审计?

也就是访问跟踪,是为web应用的每次访问保留记录的过程

45:如何实现声明性授权

1、标识web资源集

2、标识角色

3、将web资源集影射到角色

4、标识每个角色中的用户

在 web.xml里配

46:描述servlet并发问题?

多个同类线程运行,可以共享同一个Servlet实例,共享的数据和资源未合理同步,可能会引起数据的冲突

47:描述Web应用中的六种属性范围

局部变量(页面范围)

实例变量

类变量

请求属性(请求范围)

会话属性(会话范围)

上下文属性(应用范围)

48:支出上述六种那些是线程安全的

局部变量和请求属性

49:什么是STM?如何实现?

SingleThreadModel接口

可以实现SingleThreadModel接口保证某一时刻只有一个请求执行service方法

50:如何实现并发管理?

尽可能使用局部和请求属性

使用synchronized语法控制并发

尽可能减少同步块和同步方法的使用

使用正确设置了线程安全的资源类

以上是"Java中Servlet常见面试题有哪些"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

方法 应用 服务 容器 接口 文件 服务器 数据 资源 周期 客户 状态 生命 用户 属性 处理 代码 功能 参数 实例 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 返乡学生网络安全宣讲 机构改革期间加强网络安全 广东常规软件开发推荐货源 用友期初余额数据库在哪 计算机应用软件开发收费报价表 靠谱的仓库erp软件开发机构 教育管理系统数据库设计意义 曙光服务器光模块 上海阳关网络技术有限公司 jsp插入数据库错误 旧服务器加入宝塔面板 网络安全局 美国 法医DNA国家数据库 东北证券通达信服务器连不上网 dmp数据库文件怎么打开 客商银行深圳软件开发中心 国产操作系统服务器版需要付费吗 浙江搜道网络技术有限公司好吗 网络安全小报设计图片 新时代交互服务器地址 服务器在香港安全吗 怎么清空数据库的事务日志 领航杯网络安全比赛 国产少妇导航数据库 北京融新科技中心互联网公司 人民政府有网络技术员吗 ajax跨域没有返回数据库 神州优车转正软件开发 铁岭互助盘软件开发哪家好 网络技术计算机三级题库软件
0