jsp常见面试题(6)
1.Servlet的生命周期是什么? Servlet和CGI的区别是什么
答:web容器加载servlet,生命周期开始。通过调用servlet的init()方法进行servlet的初始化。通过调用service()方法实现,
根据请求的不同调用不同的do***()方法。结束服务,web容器调用servlet的destroy()方法。
与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,
并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。
2.描述JSP和Servlet的区别、共同点、各自应用的范围
答:尽管JSP在本质上就是SERVLET,但是两者的创建方式不一样.Servlet完全是JAVA程序代码构成擅长于流程控制和事务处理而通过Servlet
来生成动态网页很不直观;JSP由HTML代码和JSP标签构成可以方便地编写动态网页因此在实际应用中采用Servlet来控制业务流程,而采
用JSP来生成动态网页.在struts框架中,JSP位于MVC设计模式的视图层,而Servlet位于控制层.
3.客户请求访问HTML页面与访问Servlet有什么异同?
相同:都使用HTTP协议 ;区别:后者需要在web.xml中配置URL路径。
例子: 假设在helloapp应用中有一个HelloServlet类,它在web.xml文件中的配置如下:
<servlet>
<servlet-name> HelloServlet </servlet-name>
<servlet-class>org.javathinker.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name> HelloServlet </servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
那么在浏览器端访问HelloServlet的URL是:
http://localhost:8080/helloapp/hello
4.jsp指令有哪些?
答:jsp指令分为两大类型,page指令和动作指令
动作指令通常有:useBean,setProperty,getProperty,forward,plugin,include
jsp如何使用注释?
答:1) <%-- --%> 2); //; 3)/** **/; 4)<!-- -->;