Servlet是运行在Web服务器端的Java程序,用java语言编写,具有java语言的优点。与一般java程序的区别是Servlet对象封装了对HTTP请求的处理,并且它t的运行需要Servlet容器的支持。Servlet需要在Java编译器编译后才能运行,如果Servlet在编写完成或修改后没有被重新编译,就不能运行在Web容器中.而JSP页面中的内容没有变化时,JSP的编译完成之后,JSP Container不会对JSP再次编译。JSP的产生:把Servlet中的HTML,CSS,JS等相关代码写到JSP页面中,简化程序员对Web程序的开发。
(servlet接口中使用了servletRequest,servletResponse.
也是是说,如果不存在servletRequest,servletResponse那么servlet接口衍生出来的类就不能正常工作,这就是依赖)
任何一个Servlet对象都要直接或者间接实现javax.servlet.Servlet接口,Servlet中,主要方法是service(),当客户请求到来时,Servlet容器将调用Servlet实例的service()方法对请求进行处理。ServletConfig接口位于javax.servlet包中,它封装了Servlet的配置信息,在Servlet初始化期间被传递。公共接口类HttpServletRequest继承自javax.servlet.ServletRequest接口.客户端浏览器发出的请求被封装成为一个HttpServletRequest对象。所有的信息包括请求的地址,请求的参数,提交的数据,上传的文件客户端的ip甚至客户端操作系统都包含在其内。HttpServletResponse继承了ServletResponse接口,并提供了与Http协议有关的方法,这些方法的主要功能是设置HTTP状态码和管理Cookie。HttpServletResponse的setRedirect(url)方法将客户端的浏览器重定向到一个新的Internet地址。
继承httpservlet类来开发servlet :1.通过重写doget ,dopost方法来实现 ; get的安全性小于post会在浏览器上显示 get信息 ,get提交的数据部能大于2K post提交的数据不受限制 ,介意少于64K 2.响应速度get>post
我们创建了一个Servlet对象就要实现Servlet接口中的5个方法,这样操作不方便,所以产生了GenericServlet类,它是抽象类,它实现了上述3个接口,但没有对Http请求处理进行实现,这一操作由HttpServlet实现,我们所编写的Servlet类都继承于HttpServlet,HttpServle类是Servlet的实现类,并提供了Http请求的处理方法。
(Servlet对象 在Servlet容器启动时被初始化,当第一次被请求时,Servlet容器将其实例化,此时它贮存于内存中。如果存在多个请求,Servlet不会再被实例化,仍然由此Servlet将其进行处理,每一个请求都是一个线程,而不是进程,因此,Servlet对 请求的处理的性能非常高。)