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. React Native笔记

    ① 做UI快 ② 还是有很多限制,不如原生Native ③ 入门简单,能让前端快速开发App ④ iOS&Android大部分代码通用 ⑤ code-push能做热更新,但是用不好依旧坑

  2. Heroku发布前准备

    group :development, :test do gem 'byebug', platform: :mri gem 'sqlite3', '~> 1.3.13' end group :p ...

  3. 2018-2019-2 《网络对抗技术》Exp0 Kali安装

    2018-2019-2 <网络对抗技术>Exp0 Kali安装 ---20165110 一.实验要求 1.下载 2.安装Kali 3.连接网络 4.共享文件 5.更新软件源 二.实验步骤 ...

  4. Laravel 学习笔记

    1. 简介 2. 运行环境要求 2.1 PHP版本 >= 5.5.9 2.2 Mcrypt PHP 扩展 --------------------------php的加密扩展,提供多种加密算法 ...

  5. shell中脚本调试----学习

    1.使用dos2unix命令处理在windows下开发的脚本 将windows下编辑的脚本放置到linux下执行的情况如下: [root@ks ~]# cat -v nginx.sh #!/bin/b ...

  6. Mapbox Studio Classic 闪退问题解决方案

    之前安装过Mapbox Studio Classic 0.38,好久没有用了,今天用的时候发现不停的闪退,经过一番折腾,发现删除 %USERPROFILE%\.mapbox-studio 目录下所有文 ...

  7. Git多账号配置,同一电脑多个ssh-key的管理

    为什么有这种需求? 在我们开发过程中,可能会遇到使用同一台机器,既要向公司git服务器提交代码,也要向gitlib或者gitee等 git仓库提交代码,2个仓库设置的用户名信息,不一样,此时需要用到多 ...

  8. 移动端h5调试方法

    charles代理 使用技巧如下: http://www.jianshu.com/p/fdd7c681929c 1.手机wifi连接代理 以iphone为例,长按住wifi, 进入下一页,可看到 HT ...

  9. NOIP2018游记-退役之战

    \(Day\ 0\) 从火车站下来坐地铁\(1\)小时,再乘公交车到酒店,还要帮队里一个断腿大佬搬东西,累死我了.. 到酒店就快\(5\)点了,想打个牌也没时间. 酒店的房间很不错,空间大又干净,后来 ...

  10. Pixel Recurrent Neural Networks翻译

    Pixel Recurrent Neural Networks 目前主要在用的文档存放: https://www.yuque.com/lart/papers/prnn github存档: https: ...