zoukankan      html  css  js  c++  java
  • Web Servlet的体系架构

    Servlet为根接口,里面有5个方法,init() servlet初始化,将ServletConfig作为参数传入,service() 响应请求,destroy() 销毁servlet,getServletConfig() 获得servlet的配置信息,如初始化参数和启动参数,getServletInfo() 获得servlet的信息,如作者,版本,版权等。

     
    ServletConfig接口:可以获得servlet的名字,上下文,初始化参数。
     
    GenericServlet抽象类,实现了Servlet,ServletConfig接口,因此具有上述的所有方法,同时还添加了log的功能。
     
    HttpServlet继承自GenericServlet,也具有上述所有方法,但HttpServlet是针对Http协议实现的servlet。任何自定义Servlet
    都要继承自HttpServlet。HttpServlet定义了7种处理请求的方法,分别是doGet(),doPost(),doPut(),doDelete(),doHead(),doOptions(),doTrace()。
     
    当一个客户端发送一个http请求时,Tomcat容器会将请求的信息封装成一个HttpServletRequest对象,然后将该对象作为参数传入service()方法中,service()方法中动态判断选择何种方法处理请求,处理完成之后,将信息封装到HttpServletResponse对象中,然后回调到客户端。
     
    Tomcat使用类加载器加载Servlet,加载的时机是:Servlet的加载和实例化是发生在第一次请求Servlet的时候。如果在web.xml文件中的Servlet下面加上<load-on-startup>1</load-on-startup>这一句配置,Servlet的加载和实例化就发生在容器启动的时候。
    ------------------------------------------------------------------------------------------------------------------------------------------
    HttpServletRequest接口,继承自ServletRequest接口。ServletRequst接口中有getAttribute()返回的是Object,setAttribute(String name, Object o),getAttributeNames(),
    getCharacterEncoding (),setCharacterEncoding(),getContentType(), getParameter()返回的是String,getParameterNames(),getParameterMap() 获取所有的参数Entry<Key,value>,getProtocol(),getServerName(),getServerPort(),getReader(),getRemoteAddr 获得客户端地址
    getRequestDispatcher ()获得RequestDispatcher对象
    HttpServletRequest 同时还定义了BASIC_AUTH,FORM_AUTH,CLIENT_CERT_AUTH,DIGEST_AUTH
    还有getCookies(),getContextPath(),getRequestURI()获得请求的URI,getServletPath (),getSession()
     
     
    HttpServletResponse接口,继承自ServletResponse接口。ServletResponse接口中有getCharacterEncoding(),getWriter()返回一个PrintWriter对象 setCharacterEncoding()等方法。
    HttpServletResponse接口同时还定义了addCookie(Cookie cookie)添加一个cookie对象,发送到客户端
    sendError (),sendRedirect(), 以及SC_NOT_FOUND 404错误,SC_INTERNAL_SERVER_ERROR 500内部服务器错误等。
    -------------------------------------------------------------------------------------------------------------------------------------
    Cookie类:一个Cookie就是一个Entry(<name,value>).由服务器端创建,Cookie cookie=new Cookie(String s1,String s2);
    response.addCookie();将Cookie添加到response对象中,然后返回到客户端并且保存在客户端。当以后每次再访问服务器端的时候,任何request对象的头部都带有cookie的信息,可以通过Cookie[] cookies=request.getCookies();获取到所有的cookie。此外,还可以设置Cookie的过期时间,默认情况下是当关闭浏览器时Cookie就过期了,cookie.sexMaxAge(3600)可以设置经过多久之后Cookie才过期。
     
    HttpSession接口:每一个浏览器访问服务器,服务器都会创建一个Session;当另外一个浏览器访问服务器时,服务器又会创建另一个Session。服务器将sessionID保存到cookie中,然后返回到客户端。之后客户端每次访问服务器端时,都会将
    sessionID带回到服务器端。在服务器端通过代码验证,如果sessionID 存在,则运行继续访问,否则返回登陆页面。
     
     
     
     
     
     
     
     
                                        
  • 相关阅读:
    js数组基础
    JavaScript原型链
    js之promise讲解
    ajax登录验证-js
    js事件委托
    js中的回调函数的理解和使用方法
    js闭包的理解
    JavaScript是如何实现继承的(六种方式)
    js创建对象的几种常用方式小结
    canvas绘图详解-08-样式填充
  • 原文地址:https://www.cnblogs.com/james111/p/6607419.html
Copyright © 2011-2022 走看看