zoukankan      html  css  js  c++  java
  • Servlet基础

    1:为什么需要Servlert?

    :在jsp技术出现之前,如果想动态成HTML页面,那就只有在服务器端运行Java程序,并生成HTML格式的内容。Servlet就是运行在服务前端的Java程序。

    1-1:JSP开发Web程序流程图

     

     

    1—2:Servlet开发Web流程图

     

     

    2:什么是Servlet?

    :浏览器发送一个HTTP请求,HTTP请求由Web容器分配给特定的Servlet进行处理,Servlet的本质是一个Java对象,这个对象拥有一系列的方法来处理HTTP请求。常见的方法有doGet(),doPost()等。Web容器中包含了多个Servlet,特定的HTTP请求该由哪一个Servlet来处理是由Web容器中的web.xml来决定的。

    Servlet是一个符合特定规范的Java程序,是一个基于Java技术的web组件,运行在服务器端,由Servlet容器所管理用于生成动态的内容,Servlet是平台独立的Java类,编写一个Servlet,实际上就是按照Servlet规范编写的一个Java类,它主要用于处理客户端请求并做出响应,

     

    3:Servletr容器?

    :Servlet容器也叫作Servlet引擎,是Web服务器或应用程序服务器的一部分,用于在发送的请求和响应之上提供网络服务,管理和运行Servlet/jsp的容器也称为Web容器,

    4:Servlet与JSP的关系?

    1.JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表达。

    2.JSP编译后是"类servlet"。

    3.Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且 完全 从表示层中的HTML里分离开来。而JSP的情况是Java和HTML可以组 成一个扩展 名 为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。

    JSP在运行时会被Web容器翻译成一个Servlet.

    5:Servlet接口常用的方法:

    方法名称

    功能描述

    public void init(ServletConfig config)

    由servlet容器调用,用于完成Servlet对象在处理客户请求前的初始化工作。

    public void service(ServletRequest request, ServletResponse response)

    由servlet容器调用,用于处理客户端的请求

    public void destroy()

    由servlet容器调用,释放Servlet对象所使用的资源

    public ServletConfig getServletConfig()

    返回ServletConfig对象,该对象包含此senvlet的初始化和启动参数。返回的ServletConfig对象是传递给init( )方法的对象

    public String getServletInfo()

    返回有关servlet的信息,如作者、版本和版权。返回的字符串是纯文本,而不是任何种类的标记(如HTML、XML等)

    6:抽象类GenericServlet的常用方法

    方法名称

    功能描述

    public void init(ServletConfig config)

    调用Servlet接口中的init()方法。此方法还有一个无参的重载方法,其功能与此方法相同

    public String getInitParameter(Stringname)

    返回名称为name的初始化参数的值

    public ServletContextgetServletContext()

    返回ServletContext对象的引用

    7:抽象类HttpServlet:

    抽象类HttpServlet继承自GenericServlet类,具有与GenericServlet类似的方法和对象,支持HTTP的post()和get()方法,并提供了与HTTP相关的实现。

    HttpServlet能够根据客户发出的HTTP请求,进行相关的处理,并得到相应的结果,然后此结果被自动封装到HttpServletRequest对象中。

    HTTPServlet的常用方法:

    方法名称

    功能描述

    public void service(ServletRequest request, ServletResponse response)

    调用GenericServlet类中service()方法的实现

    public void service(HttpServletRequest request, HttpServletResponse response)

    接收HTTP请求,并将它们分发给此类中定义的doXxx方号

    protected void doXXX(HttpServletRequest request, HttpServletResponse response)

    |根据请求方式的不同,分别调用相应的处理方法,如doGet(),doPost()等

    HttpServletserviceHttpServletRequest request, HttpServletResponse )相当于一个分发器,可以根据请求方法的类型,调用相应的doXXX()方法,所以在编写Servlet时只需要根据应用的需求,重新写doGet()或者doPost()方法即可。

    HttpServlet类是一个抽象类,如果需要编写Servlet就需要继承HttpServlet类,从中需要响应到客户端的数据封装到HttpServletResponse对象中,

    8ServletConfig接口;

    servlet容器使用ServletConfig对象在Servlet初始化期间向其传递配置信息,一个Servlet只有一个servletConfig对象,

    ServletConfig的常用方法:

    方法名称

    功能描述

     

    public void getInitParameter(String name)

    获取web.xml中设置的以name命名的初始化参数值

     

    public ServletContext   getServletContext()

    返回Servlet的上下文对象的引用

     
     

     

    9:ServletContext对象的常用方法:

    方法名称

    功能描述

    public String getInitParameter(String name)

    获取名称为name的系统范围内的初始化参数,系统范围内的初始化处参数可以在部署描述符中使用<context-param>元素定义

    public void setAttribute(String name,Object object)

    设置名称为name的属性

    public Object getAttribute(String name)

    获取名称为name的属性

    public String getRealpath(String path)

    返回参数所代表目录的真实路径

    public void log(String messge)

    记录一般日志

     

    10:ServletRequestrian接口的常用方法

    方法名称

    功能描述

    public Object getAttribute(String name)

    获取名称为name的属性值

    public void setAttibute(String name,Object  object)

    在请求中保存名称为name的属性

    public void removeAttribute(String name)

    清除请求中名字为name的属性

     

    11:httpServletRequest接口常用方法

    方法名称 功能描述
    public String getContextPath() 返回请求URL中表示请求上下文的路径,上下文路径时请求URL的开始部分
    public Cookie[] getCookies() 返回客户端在此次请求中发送的所有cookie对象
    public HttpSession getsession() 返回和此次请求相关联的session,如果没有给客户端分配session,则会创建一个新的session
    public String getMethod() 返回此次请求所使用的HTTP方法的名字,如GET,POST

     

    12:ServletResponse接口常用方法:

    方法名称

    功能描述

    public PrintWrite getWriter()

    返回PrintWrite对象,用于向客户端发送文本

    public String getCharacteEncoding()

    返回在响应发送的正文所使用的字符编码集

    public void setCharacterEncoding()

    设置发送到客户端的响应市委字符编码

    public void setContentType(String type)

    设置发送到客户端响应的内容类型,此时响应的状态属于尚未提交

    13:httpServletResponse接口:

    方法 名称 功能描述
    public void addCookie(Cookie cookie) 增加一个cookie到响应中,这个方法可多次调用,设置多个cookie
    public void addHeader(String name,String value) 将一个名称为name,值为value的响应报头添加到响应中
    public void sendRedirect(String location) 发送一个临时的的重定向响应到客户端,以便客户端访问新的URL
    public void encodeURL(String url) 使用session ID对用于重定向的URL进行编码

    14:Servlet的生命周期

     

     

  • 相关阅读:
    杨玲 201771010133《面向对象程序设计(java)》第三周学习总结
    杨玲 201771010133《面向对象程序设计(java)》第二周学习总结
    杨玲 201771010133 《面向对象程序设计(java)》第一周学习总结
    bzoj1010 [HNOI2008]玩具装箱toy
    hdu5115 Dire Wolf
    bzoj2880
    bzoj2301 [HAOI2011]Problem b
    bzoj2440 [中山市选2011]完全平方数
    bzoj4448 情报传递
    bzoj4445 小凸想跑步
  • 原文地址:https://www.cnblogs.com/dudadi/p/7912036.html
Copyright © 2011-2022 走看看