6.Servlet

  Servlet 是运行在Web服务器端的Java程序,它使用Java语言编写,与Java程序的区别是Servlet对象主要封装了对HTTP请求的处理,并且它的运行需要Servlet容器的支持,在Java Web应用方面,Servlet的应用占有十分重要的地位,它在Web请求的处理功能也非常强大。
 
Servlet与JSP的区别:
        1.角色不同:JSP页面可以存在HTML代码和Java代码并存的情况,而Servlet需要承担客户请求和业务处
    理的中间角色,只有调用固定的方法才能将动态内容输出为静态的HTML,所以JSP更具有显示层角色;
        2.编译时间不同:Servlet需要在Java编译器编译后才能运行,如果它在编写完成或修改后没有重新编译
    就不能运行在Web容器中。而JSP由JSP Container对其进行管理,JSP Container对JSP进行自动编译,不需
    要手动执行编译就可执行;
        3.速度不同:因为Java Container在每次执行不同内容的动态JSP页面时都要对JSP自编译,而Servlet
    在编译之后可以直接获取和输出动态内容,所以JSP的效率比Servlet低。
 
Servlet API常用的接口和类:
  1.Servlet接口
   Servlet的运行需要Servlet容器的支持,Servlet容器通过调用Servlet对象提供了标准的API接口对请求进行处理。
  public void init(ServletConfig config)  初始化工作
  public void service(ServletRequest request, ServletResponse reponse)  处理客户端请求
  public void destroy()  当Servlet对象从Servlet容器移除时,释放资源
  public ServletConfig getServletConfig()  用于获取Servlet对象的配置信息,返回ServletConfig对象
  public String getServletInfo()  返回有关Servlet的信息,如作者版本等
  
  2.ServletConfig接口
     ServletConfig接口位于javax.servlet包中,它封装了Servlet的配置信息,在Servlet初始化期间被传递。每一个Servlet对象都有且只有一个ServletConfig对象。
 
   public String getInitParameter(String name)  返回名称为name的初始化参数的值
   public Enumeration getInitParameterNames()  获取所有初始化参数名的枚举集合
   public ServletContext getServletContext()  获取Servlet上下文对象
   public String getServletName()   返回Servlet对象的实例名
 
  3.HttpServletRequest接口
     该接口位于javax.servlet.http包中,继承了javax.servlet.ServletRequest接口。
 
   public String getContextPath()  返回请求的上下文路径,以“/”开头
   public Cookie[] getCookies()  返回请求中发送的所有Cookie对象
   public String getMethod()  返回请求所使用的HTTP类型,如“get, post”
   ...
   
   4.Http ServletResponse接口
    
   public void addCookie(Cookie cookie)  向客户端写入Cookie
   ...
 
  5.GenericServlet类
    抽象类,分别实现了Servlet和ServletConfig类的接口。但需要实现service()。
  6.HttpServlet类
    抽象类,继承了GenericServlet类,实现了service()。最为方便。
 
Servlet创建:
  在Eclipse中新建一个Web项目,在创建项目过程中点击下一步勾选Generate web.xml

 之后在src目录下创建包,然后创建Servlet类

 
Servlet 代码结构:
  通常Servlet是指HttpServlet对象,在声明一个对象为Servlet时,需要继承HttpServlet类。HttpServlet类是Servlet接口的一个实现类,继承该类后,可重写HttpServlet类中的方法对HTTP请求进行处理。
 

猜你喜欢

转载自www.cnblogs.com/astonc/p/11797549.html