初识Java Servlet
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的更多相关文章
- 初识JAVA,对servlet的理解
一.WEB开发的简单理解 Web开发是一个指代网页或站点编写过程的广义术语.网页使用 HTML.CSS 和 JavaScript编写.这些页面可能是类似于文档的简单文本和图形.页面也能够是交互式的,或 ...
- Java入门——初识Java
Java入门——初识Java 摘要:本文主要对Java这门编程语言进行简单的介绍. Java简介 说明 Java语言历时十多年,已发展成为人类计算机史上影响深远的编程语言,从某种程度上来看,它甚至超出 ...
- 初识Java
Java是一种简单的.面向对象的.分布式的.解释的.安全的.可移植的.性能优异的多线程语言.它以极强的安全性.平台无关性.硬件结构无关性.语言简洁.面向对象的特点,在网络编程语言中占据了无可比拟的优势 ...
- java servlet 几种页面跳转的方法及传值
java servlet 几种页面跳转的方法及传值 java web 页面之间传值有一下这几种方式1.form 表单传递参数2.url地址栏传递参数3.session4.cookie5.appli ...
- Java Servlet与Web容器之间的关系
自从计算机软件开发进入网络时代,就开始涉及到通讯问题.在客户/服务器(也叫C/S应用)时期,每个软件都有自己的客户端和服务器端软件.并且客户端和服务器端之间的通讯协议差别也很大.后来随着互联网的发展, ...
- java servlet调用带有多个返回结果集的存储过程
一.mysql存储过程 这里我先说下我这个功能实现的逻辑及途中遇到的一些问题.这个存储过程一共带两个输入参数,一共关联到两张表的查询,每个参数都对应查询表中的一个判断,所以一共返回了两个结果集(当然要 ...
- java servlet+mysql全过程(原创)
前段时间写过一篇 servlet+oracle的文章,但是那是因为公司有可能接那么一个项目,然后我当时也比较闲,所以随便学了下,那玩意是白去研究了,因为公司后面并没接到那项目. 这次学servlet用 ...
- java servlet+oracle 新手可看
最近公司领导告诉接下去接的一个产品,可能会涉及到oracle数据库,以前用得最多的是mssql,前些时间学了下mysql也算少许用过.oracle没接触过.应为我之前做过.net开发,所以数据访问接口 ...
- Java Servlet完全教程
Servlet 是一些遵从Java Servlet API的Java类,这些Java类可以响应请求.尽管Servlet可以响应任意类型的请求,但是它们使用最广泛的是响应web方面的请求. Servle ...
随机推荐
- 20175314 实验三 敏捷开发与XP实践
20175314 实验二 Java面向对象程序设计 一.实验内容 XP基础 XP核心实践 相关工具 二.实验步骤 (一)代码格式化 创建"175314.exp3"项目,在该项目下创 ...
- java基础 ----- 程序的调试
--- -- 什么是程序调试 当程序出错时,我们希望可以这样 逐条语句执行程序 ----- 观察程序的执行情况 ------ 发现问题 ----- 解决问题 但是,程序一闪就运行结束 ...
- systemd 编写服务管理脚本---学习
转载:https://www.cnblogs.com/sparkdev/p/8521812.html 我们运行 linux 服务器的主要目的是通过运行程序提供服务,比如 mysql.web serve ...
- golang 安装tensorflow
TF_TYPE="cpu" # Change to "gpu" for GPU support //设置环境变量 TARGET_DIRECTORY='/u ...
- ASP.NET Core Web多语言项目
公司效益好了,准备和国外做生意,这个时候就需要多语言了. > 1. 这是一个ASP.NET Core Web多语言项目,主要展示项目的不同: > 2. 第一种:www.xxx.com/en ...
- 磁盘管理 lvm减容扩容
参考https://blog.csdn.net/wk022/article/details/50543922 新增磁盘/dev/sdb fdisk /dev/sdb 分两个分区 (n p 1 /n ...
- docker log driver
驱动程序 描述 none 容器没有日志可用,docker logs 什么都不返回 json-file 日志格式化为 JSON.这是 Docker 默认的日志驱动程序. syslog 将日志消息写入 s ...
- Spring-MVC运行原理
一. Spring-MVC的对象初始化,即 bean放入context的beanFactory中. 1. 对象的初始化工作主要在org.springframework.web.servlet.Fram ...
- memcache集群
实现memcache集群 一:memcache本身没有redis锁具备的数据持久化功能,比如RDB和AOF都没有,但是可以通过做集群的方式,让各memcache的数据进行同步,实现数据的一致性,即 ...
- mysql从的配置文件
mysql 从的配置文件 [client]port = 3306socket = /data/mysql/data/mysql.sock#default-character-set=utf8[mysq ...