Servlet
来源:互联网 发布:金融互助网站源码 编辑:程序博客网 时间:2024/05/18 18:00
Servlet运用javax.servlet和javax.servlet.http两个包里面的接口和类。每个Servlet必须实现javax.servlet.Servlet接口,大多数servlet通过继承两个特殊的类javax.servlet.GenericServlet和javax.servlet.http.HttpServlet来实现这个接口。与协议独立的就继承javax.servlet.GenericServlet类,Http servlet就
继承javax.servlet.http.HttpServlet类。
Servlet没有main()函数。Servlet里面的方法是通过服务器处理请求来唤醒的。每次,当服务器转发请求给一个servlet,相应的这个servlet的service()方法被唤醒。
一般的Servlet需要重写它的service()方法来处理适当的请求。service()方法接收两个参数,一个请求对象和一个响应对象。请求对象告诉servlet关于请求的消息,而响应
对象用来返回一个响应。
一般的servlet处理请求的过程
相比之下,Http Servlet通常不重写service()方法。而是重写doGet()方法来处理Get请求,doPost()方法来处理Post请求。一个Http Servlet可以复写这两个方法中的一个或者两个。Http Servlet中的service()方法负责建立和分配do***()方法,所以通常不用重写。
Http servlet处理请求的过程
Web application中的Servlet的注册(部署)
在Web项目中的WEB-INF/web.xml文件中进行配置,基本的格式为:
<?xmlversion="1.0" encoding="ISO-8859-1"?>
<!DOCTYPEweb-app
PUBLIC "-//Sun Microsystems, Inc.//DTDWeb Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<servlet>
<servlet-name>
hi
</servlet-name>
<servlet-class>
HelloWorld
</servlet-class>
</servlet>
</web-app>
其中<web-app>与</web-app>之间的内容是关于服务器的信息,<servlet></servlet>之间来对servlet进行配置。<servlet-name></servlet-name>是对servlet进行注册,
具体的实现类是在 <servlet-class> </servlet-class>之间的类。
<?xml version="1.0"encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<servlet>
<servlet-name>
hi
</servlet-name>
<servlet-class>
HelloWorld
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>
hi
</servlet-name>
<url-pattern>
/hello.html
</url-pattern>
</servlet-mapping>
</web-app>
<servlet-mapping></servlet-mapping>里面的内容告诉服务器,名称为hi的这个servlet只处理/hello.html这个特定的URL。
Servlet的生命周期
多个线程同时访问一个Servlet实例
当多个线程同时访问一个Servlet实例对Servlet里面的变量进行操作时,为了解决可能存在的不同步的问题,必须加锁。
- Servlet
- servlet
- Servlet
- servlet
- Servlet
- servlet
- servlet
- Servlet
- Servlet
- servlet
- Servlet
- servlet
- servlet
- servlet
- Servlet
- servlet
- servlet
- servlet
- 关于存储、数据库与架构
- js target特性
- FZU 2124 吃豆人 (BFS)
- S3C6410 系统时钟介绍
- Poj 3320(two pointers)
- Servlet
- 用Activity的onTouchEvent方法实现监听手指上下左右滑动
- 巴什博奕小结 HDU2188 HDU1846 HDU2149
- 补一个简单的数据结构——带权并查集
- 杭电2588-GCD
- 关于AES加密(上)
- django book学习笔记
- 奇偶剪枝
- [leetcode刷题系列]Plus One