Java Servlet是什么?

Servlet的本质就是一个Java接口,之所以能生成动态的Web内容,是因为对客户的一个HTTP请求,Servlet通过接口这个规范重写了其中的方法,然后Web服务器通过这些反馈给客户端。所以Servlet并不直接和客户端打交道,我们需要一个Web服务器如Tomcat,是Web服务器完成与客户的监听、消息的传输等工作。Servlet的运行需要在web.xml中进行描述和注册。如配置Servlet的类,初始化的参数,不同的URL映射到对应的Servlet,还有过滤等功能。所以Servlet类似其他CGI技术。

Servlet的方法

Servlet由javax.servlet和javax.servlet.http两个包构成(在Tomcat安装目录的lib有servlet-api.jar)。servlet包中定义了Servlet类必须实现和拓展的通用接口和类,http包定义了采用HTTP通信的HttpServlet类。

Servlet接口有5个方法:

init(ServletConfig config)初始化一个Servlet类实例,在一个生命周期中此方法只被调用一次。

service(ServletRequest req,ServletResponse res),用于处理用户请求,可以执行多次,每个请求都会执行一次service()方法。所以重写这个方法需要保证线程安全性。因为一个Servlet实例可以同时服务多个客户请求。

destroy()终止Servlet服务,一个生命周期执行一次。

getServletConfig()获取ServletConfig对象,包含初始化参数和ServletContext对象。

getServletInfo()返回一个String对象,包含Servlet相关信息。

Servlet程序的编译运行

可以直接将编译好的文件放入tomcat安装目录下的webapps,可以先用ROOT文件夹。然后重写web.xml文件对Servlet进行配置。

web.xml文件的主要标识:

<servlet-name>是名字,可以随便起,要和<servlet-mapping>里面的名字一致。

<servlet-class>是要调用的Class文件,默认是在/classes文件夹下,一定要与对应的Class文件名一致。

<init-param>Servlet初始化的参数,有<param-name>和<param-value>这两个对应了一个key-value参数。通过更改这里的参数就不需要修改Servlet的代码。

<load_on_startup>用于指定加载Servlet的优先权,数字小的先加载。

<servlet-mapping>是对Servlet的访问路径的映射,<servlet-name>与前面的名字一致,通过<url-pattern>的URL路径来标识地址栏输入的路径。为什么需要有servlet-mapping呢?因为通过它可以使用通配符来调用对应的servlet-class。

放好编译文件,写好XML配置文件,就可以打开Tomcat服务器,然后通过浏览器调用Servlet程序了。浏览器地址后缀是<url-pattern>的内容。

当然更方便的是使用Eclipse等IDE集成Tomcat来实现这些功能。

下面是一份参考的写法:

 <servlet>

 <servlet-name>HelloWorld</servlet-name>
<servlet-class>HelloWorld</servlet-class>
<init-param>
<param-name>user</param-name>
<param-value>alex</param-value>
</init-param>
<init-param>
<param-name>address</param-name>
<param-value>http://www.baidu.com</param-value>
</init-param>
<load-on-startup>1</load-on-startup> </servlet> <servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>

初识Java Servlet的更多相关文章

  1. 初识JAVA,对servlet的理解

    一.WEB开发的简单理解 Web开发是一个指代网页或站点编写过程的广义术语.网页使用 HTML.CSS 和 JavaScript编写.这些页面可能是类似于文档的简单文本和图形.页面也能够是交互式的,或 ...

  2. Java入门——初识Java

    Java入门——初识Java 摘要:本文主要对Java这门编程语言进行简单的介绍. Java简介 说明 Java语言历时十多年,已发展成为人类计算机史上影响深远的编程语言,从某种程度上来看,它甚至超出 ...

  3. 初识Java

    Java是一种简单的.面向对象的.分布式的.解释的.安全的.可移植的.性能优异的多线程语言.它以极强的安全性.平台无关性.硬件结构无关性.语言简洁.面向对象的特点,在网络编程语言中占据了无可比拟的优势 ...

  4. java servlet 几种页面跳转的方法及传值

    java servlet 几种页面跳转的方法及传值   java web 页面之间传值有一下这几种方式1.form 表单传递参数2.url地址栏传递参数3.session4.cookie5.appli ...

  5. Java Servlet与Web容器之间的关系

    自从计算机软件开发进入网络时代,就开始涉及到通讯问题.在客户/服务器(也叫C/S应用)时期,每个软件都有自己的客户端和服务器端软件.并且客户端和服务器端之间的通讯协议差别也很大.后来随着互联网的发展, ...

  6. java servlet调用带有多个返回结果集的存储过程

    一.mysql存储过程 这里我先说下我这个功能实现的逻辑及途中遇到的一些问题.这个存储过程一共带两个输入参数,一共关联到两张表的查询,每个参数都对应查询表中的一个判断,所以一共返回了两个结果集(当然要 ...

  7. java servlet+mysql全过程(原创)

    前段时间写过一篇 servlet+oracle的文章,但是那是因为公司有可能接那么一个项目,然后我当时也比较闲,所以随便学了下,那玩意是白去研究了,因为公司后面并没接到那项目. 这次学servlet用 ...

  8. java servlet+oracle 新手可看

    最近公司领导告诉接下去接的一个产品,可能会涉及到oracle数据库,以前用得最多的是mssql,前些时间学了下mysql也算少许用过.oracle没接触过.应为我之前做过.net开发,所以数据访问接口 ...

  9. Java Servlet完全教程

    Servlet 是一些遵从Java Servlet API的Java类,这些Java类可以响应请求.尽管Servlet可以响应任意类型的请求,但是它们使用最广泛的是响应web方面的请求. Servle ...

随机推荐

  1. 随select动,将value值显示在后面的input里

    <!doctype html><html lang="en"> <head> <meta charset="UTF-8" ...

  2. zip 格式解析

    1.格式 https://pkware.cachefly.net/webdocs/APPNOTE/APPNOTE-6.2.0.txt 官方文档 https://blog.csdn.net/hp9103 ...

  3. spring boot 常见的第三方集成

    spring boot基于1.x. 一 集成redis 1.1 配置 spring.redis.host = localhost spring.redis.port = 6379 spring.red ...

  4. 手游开发之lua的class函数详解

    众所周知,lua没有类这个概念但其通过table实现了面向对象的“类”.在cocos2dx引擎下提供了class(className, ...)函数方法名,因为在脚本开发中这个接口基本都会用来创建一个 ...

  5. UVA 679 二叉树

    题目链接:https://vjudge.net/problem/UVA-679 参考自:刘汝佳的紫书 思路: 我们发现,对于每一颗子树,假如小球是第奇数次到达这颗子树的根节点时,那么此时应该向左子树走 ...

  6. SCRUM管理之KPI与OKRs结合

    以下内容是本人在担任ScrumMaster中的实际应用,供大家交流学习参考. 目录 1绩效考核原则 4 2绩效考核范围 4 3绩效计算 4 3.1KPI 4 3.1.1KPI指标评分表 4 3.1.2 ...

  7. php tp3.2生成二维码

    public function qrcode() { // 二维码链接 $href = 'http://' . $_SERVER['HTTP_HOST'] . '/?g=diapp&m=reg ...

  8. VBA读写ini 配置文件

    Option Explicit 'read Private Declare Function GetPrivateProfileString Lib "kernel32" Alia ...

  9. select下拉option跳转页面

    <select class="dropdown" name="list" onchange="window.location=this.valu ...

  10. 512MB内存VPS服务器安装宝塔WEB客户端建站 - 环境部署篇

    原本以为我们很多网友用VPS搭建网站不会用WEB面板,而采用一键包或者自己部署编译环境,但是最后发现其实目前我们使用WEB面板的还是挺多的,无论是免费还是付费的都有不少人使用.比如当初一直免费的AMH ...