Servlet面试题及答案(11-15)

11、如何在Servlet中处理文件上传请求?

在Servlet中处理文件上传请求通常需要使用第三方库或框架,例如Apache Commons FileUpload或Servlet 3.0提供的Part接口。具体来说,需要在Servlet中使用multipart/form-data编码类型解析请求,从而获取上传的文件内容和其他表单数据。

12、如何在Servlet中发送重定向响应?重定向和转发有什么区别?

在Servlet中发送重定向响应通常需要使用HttpServletResponse的sendRedirect()方法,其可以将请求重定向到一个新的URL地址。重定向和转发的区别在于:重定向会向客户端发送一个新的HTTP请求,而转发则是在服务器内部直接转发请求,因此转发更高效,但重定向可以处理任何URL,包括外部URL。

13、如何在Servlet中处理错误?错误页面的配置是什么?

在Servlet中处理错误通常需要实现Servlet接口的error()方法,该方法在Servlet出现异常时被调用。可以使用ServletContext的error-page元素配置一个或多个错误页面,以便在错误发生时向客户端显示有意义的信息。

14、如何在Servlet中处理会话过期?

在Servlet中处理会话过期可以使用HttpSessionListener接口,该接口包括sessionCreated()和sessionDestroyed()方法,分别在会话创建和销毁时被调用。可以使用web.xml文件中的session-config元素配置会话超时时间。

15、什么是Servlet异步处理?如何在Servlet中实现异步处理?

Servlet异步处理是指Servlet线程在处理请求时可以释放控制权,并在后台执行其他任务,当任务完成时再返回响应。可以使用Servlet 3.0提供的异步API实现Servlet异步处理,具体来说,需要在Servlet中使用startAsync()方法获取AsyncContext对象,从而实现异步处理。