我是靠谱客的博主 负责指甲油,最近开发中收集的这篇文章主要介绍gin 接收 html 写入数据表_HTML学习--Tomcat,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

d1c8b835c13621c85add661e575c1a34.png

Tomcat服务器

我们都知道,就目前学习ava知识来讲,我们的代码只有一次性,或者说,如果想要再次运行则需要手动执行,但这样就会面临一个问题,因为我们不知道用户什么时候进来,用户也不可能等着你去启动Java代码。这时,我们就需要一个容器(对象)来帮助我们了,我们可以让这个容器在接受到用户请求时就即刻启动Java代码,这样就可以解决我们上述问题了。

这个容器就是分服务器。

其工作流程如下:

客户端发出请求——>(tomcat)服务器接收——>启动Java程序——>返回相对应HTML

服务器其实就是代码编写的一个可以根据用户请求实时的调用执行相对应的逻辑代码的一个容器。普通用户只需安装一个简单的程序,我们只需要将服务器在操作系统上进行安装,并将我们事先编写好的逻辑处理代码根据规则放到服务器的指定位置,启动服务器,那么服务器就自动根据接收到的请求,调用并执行对象的逻辑代码进行处理。

Servlet

Servlet技术可以帮助服务器找到正确的逻辑Java代码进行运行,简单来讲,Servlet是Java语言实现的一个接口,实际上是指任何实现了这个Servelt接口的类,Servlet运行与支持Java的的应用服务器中,通常情况下可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

所以,加了Servlet之后,工作流程如下:

客户端发出请求——>(tomcat)服务器接收——>Servlet(封装的类)——>返回相对应HTML

790dfdac297e2f85401b00a1c7ab7cb6.png

Servlet的路径配置

那么,如何让服务器用该调用哪个Servlet进行请求处理呢?可通过配置Servlet路径来进行选择。

精确匹配:一般作用于站点独特的几个路径,首页、登录、注册等等

@WebServlet("/hello")

路径匹配:一般用于产品页,新闻页面,百科页面一般用于大量相类似的页面

@WebServlet("/product/*")

扩展名匹配:

@WebServlet("*.json")

匹配多个路径:

@WebServlet(urlPatterns= {"/morepath","*.do","/more/*"})

Servlet的web.xml配置

精确匹配:

<!-- 配置方式一 -->
<servlet>

<servlet-name>my3</servlet-name>
<servlet- class>com.bjsxt.servlet.MyServlet3</servlet-class>

</servlet>


<servlet-mapping>

<servlet-name>my3</servlet-name>
<url-pattern>/my3</url-pattern>

</servlet-mapping>

路径匹配:

<servlet>

<servlet-name>my3</servlet-name>
<servlet- class>com.bjsxt.servlet.MyServlet3</servlet-class>

</servlet>


<servlet-mapping>

<servlet-name>my3</servlet-name>
<url-pattern>/news/*</url-pattern>

</servlet-mapping>

扩展名匹配:

<servlet>

<servlet-name>my3</servlet-name>
<servlet- class>com.bjsxt.servlet.MyServlet3</servlet-class>

</servlet>


<servlet-mapping>

<servlet-name>my3</servlet-name>
<url-pattern>*.do</url-pattern>

</servlet-mapping>

优先顺序

按照 “ 精确路径 > 最长路径>扩展名”这样的优先级匹配到对应的servlet。

例1:

servletA 的url-pattern为 /test,

servletB的url-pattern为 /* ,这个时候,如果我访问的url为http://localhost/test ,这个时候容器就会先进行精确路径匹配,发现/test正好被servletA精确匹配,那么就去调用servletA,不会去管servletB。

例2:

servletA的url-pattern为/test/*,

servletB的url-pattern为/test/a/*,此时访问http://localhost/test/a时,容器会选择路径最长的servlet来匹配,也就是这里的servletB。

例3: 比如

servletA的url-pattern:*.action ,

servletB的url-pattern为 /* ,这个时候,如果我访问的url为http://localhost/test.action,这个时候容器就会优先进行路径匹配,而不是去匹配扩展名,这样就去调用servletB。

Servlet的生命周期

从创建到消亡,基本可以分为三个过程:

Servlet 通过调用 init () 方法进行初始化。
Servlet 调用 service() 方法来处理客户端的请求。
Servlet 通过调用 destroy() 方法终止(结束)。

最后被Jvm的垃圾回收机制进行回收。

init() 方法

init 方法被设计成只调用一次。它在第一次创建 Servlet 时被调用,在后续每次用户请求时不再调用。因此,它是用于一次性初始化,就像 Applet 的 init 方法一样。

Servlet 创建于用户第一次调用对应于该 Servlet 的 URL 时,但是您也可以指定 Servlet 在服务器第一次启动时被加载。

当用户调用一个 Servlet 时,就会创建一个 Servlet 实例,每一个用户请求都会产生一个新的线程,适当的时候移交给 doGet 或 doPost 方法。init() 方法简单地创建或加载一些数据,这些数据将被用于 Servlet 的整个生命周期。

init方法的定义

public void init() throws ServletException {
  // 初始化代码...
}

service() 方法

service() 方法是执行实际任务的主要方法。Servlet 容器(即 Web 服务器)调用

service() 方法来处理来自客户端(浏览器)的请求,并把格式化的响应写回给客户端。

每次服务器接收到一个 Servlet 请求时,服务器会产生一个新的线程并调用服务。service() 方法检查 HTTP 请求类型(GET、POST、PUT、DELETE 等),并在适当的时候调用 doGet、doPost、doPut,doDelete 等方法。

格式如下:

public void service(ServletRequest request, 
                    ServletResponse response) 
      throws ServletException, IOException{
}

service() 方法由容器调用,service 方法在适当的时候调用 doGet、doPost、doPut、doDelete 等方法。所以,您不用对 service() 方法做任何动作,您只需要根据来自客户端的请求类型来重写 doGet() 或 doPost() 即可。

doGet() 和 doPost() 方法是每次服务请求中最常用的方法。下面是这两种方法的特征。

doGet() 方法

GET 请求来自于一个 URL 的正常请求,或者来自于一个未指定 METHOD 的 HTML 表单,它由 doGet() 方法处理。

public void doGet(HttpServletRequest request,
                  HttpServletResponse response)
    throws ServletException, IOException {
    // Servlet 代码
}

doPost() 方法

POST 请求来自于一个特别指定了 METHOD 为 POST 的 HTML 表单,它由 doPost() 方法处理。

public void doPost(HttpServletRequest request,
                   HttpServletResponse response)
    throws ServletException, IOException {
    // Servlet 代码
}

destroy() 方法

destroy() 方法只会被调用一次,在 Servlet 生命周期结束时被调用。destroy() 方法可以让您的 Servlet 关闭数据库连接、停止后台线程、把 Cookie 列表或点击计数器写入到磁盘,并执行其他类似的清理活动。在调用 destroy() 方法之后,servlet 对象被标记为垃圾回收。

  public void destroy() {
    // 终止化代码...
  }

最后

以上就是负责指甲油为你收集整理的gin 接收 html 写入数据表_HTML学习--Tomcat的全部内容,希望文章能够帮你解决gin 接收 html 写入数据表_HTML学习--Tomcat所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(31)

评论列表共有 0 条评论

立即
投稿
返回
顶部