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的生命周期

     

     

  • 相关阅读:
    Power BI 根据用户权限动态生成导航跳转目标
    Power BI Tooltips 增强功能
    Power BI refresh error “could not load file or assembly…provided impersonation level is invalid”
    SQL 错误代码 18456
    如何使用SQL Server Integration Services从多个Excel文件读取数据
    通过表格编辑器将现有表引入Power BI数据流
    Power BI 中动态增长的柱状图
    ambari2.7.3离线安装hdp3.1.0时,ambari-hdp-1.repo中baseurl无值
    ambari 安装 cannot download file mysql-connector-java from http://8080/resource/mysql-connector-java.jar
    洛谷P4180 [BJWC2010]严格次小生成树
  • 原文地址:https://www.cnblogs.com/dudadi/p/7912036.html
Copyright © 2011-2022 走看看