1.什么是设计模式?常用的设计模式有哪些?
设计模式是经过前人无数次实践总结出来的,设计过程中可以反复使用的,可以解决特定问题的设计方法。
常用的设计模式:
单例模式:分为饥汉模式和饱汉模式
1.构造方法私有化,让除了自己的类能创建外,其他地方都不能创建。
2.在自己的类中创建一个单实例(饱汉模式是一出来就创建单实例,饥汉模式是需要的时候才创建)
3.提供一个方法获取该实例对象(创建时需要进行方法同步)
工厂模式:SpringIOC就使用了工厂模式
代理模式:SpringAOP使用动态代理模式
包装模式(可以不用说)
JavaWEB部分
2.讲一下http get和post的区别
3.说一下你对servlet的理解
Servlet(Server Applet),全称Java Servlet,是用java编写的服务器端程序。Servlet是指任何实现了Servlet这个接口的类。
其功能主要在于交互式的浏览和修改数据,生成动态Web内容。Servlet运行于支持java的应用服务器中。
通过继承HttpServlet,重写doGet和doPost方法,或者你也可以重写service方法来完成对get和post请求的响应。
4.简单说一下Servlet的生命周期。(问的较多)
Serveltyoul有良好的生存期ding定义。包括加载和实例化、初始化、处理请求以及服务结束。这个生存期是由java.servlet.Servlet接口中的init,service,destroy方法表达的。
Servlet启动时,开始加载servlet,生命周期开始。一旦开始加载,servlet就会被服务器实例化,容器就运行init()方法对其进行初始化,每个生命周期中只会执行一次init()方法,无论再多请求,都只有一次。请求到达时运行service(),service方法自动派遣与请求对应的doXXX(doGet,doPost)方法。当服务器要销毁实例前(服务器关闭)调用destroy().
整个周期如下(关键点):
加载Servlet的class---->实例化Servlet----->调用Servlet的init方法完成初始化------>响应请求(Servlet的service方法)----->Servlet容器关闭时(Servlet的destroy方法)
5.Servlet API中forword()和redirect()的区别。
Forward和Redirect代表了两种请求转发方式:直接转发和间接转发。
1)forword是服务器端的转向,而redirect 是客户端的跳转;
2)forword浏览器的地址不会发生改变,redirect会发生改变;
3)forword是在一次请求中完成的,redirect是重新发送请求;
4)forword是在服务器端完成的,不用在客户端重新发送请求,效率较高。
6.JSP和Servlet的相同点和不同点