1、 请简单描述访问一个JSP页面时的执行流程?
访问一个JSP页面时,首先服务器将JSP文件翻译成Java文件,然后把Java文件编译成class文件。服务器实例化该类对象,接收客户端的请求数据,调用类中的_jspService方法提供服务,将响应结果以html形式返回给客户端进行显示。
2、 简要说明Servlet和JSP之间跳转有哪两种方式?有什么区别?
有两种跳转方式,一种是响应重定向,即调用响应接口的sendRedirect方法,一种是请求转发,即调用请求转发器的forward方法。其中响应重定向相当于重新发出一次请求,之前的请求对象不会发到下一个资源;请求转发会于当前的请求对象转发到下一个资源,实际中请求转发使用较多。
3、 简要说明如果要在请求范围内共享数据,如何实现?
可以使用请求属性实现。请求接口中有setAttribute方法,可以将任何类型对象作为属性存储,同时提供方法getAttribute可以读取请求属性。往往会在一个组件中存属性,在另一个组件中获取使用属性,那么二者跳转的时候一定要用请求转发跳转,否则将生成一个新的请求对象,就无法获取之前存储的属性。
4、 简要说明Servlet和JSP分别有什么作用?
JSP的本质就是Servlet,JSP和Servlet都可以生成动态页面。然而,Servlet生成动态页面比较复杂,不管静态还是动态的内容都需要用代码输出。JSP相对简单很多,JSP中静态内容使用HTML及文本即可,只有动态 内容使用Java代码生成。Servlet往往用来接收JSP的请求,获取请求数据,进行业务处理。
5、 请描述Servlet的线程特性。
第一次访问Servlet时