JavaWeb学习总结(三)—Servlet
1. 什么是Servlet
* Servlet是JavaWeb三大组件之一(Servlet、Filter、Listener) ,Servlet是用来处理客户端请求的动态资源,按照一种约定俗成的称呼习惯,通常我们也把实现了servlet接口的java程序,称之为Servlet
Servlet的任务有:
- 获取请求数据
- 处理请求
- 完成响应
Servlet接口的5个方法:
aaarticlea/png;base64,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" alt="" />
其中生命周期方法有三个:
- l void init(ServletConfig);
- l void service(ServletRequest,ServletResponse);
- l void destroy();
2.实现Servelt的方式
- 实现Servlet接口(不方便)
- 继承GenericServlet类(不方便),GenericServlet是Servlet接口的实现类
- 继承HttpServlet类(方便),HttpServlet是GenericServlet的子类,它专注HTTP请求
HttpServlet指能够处理HTTP请求的servlet,它在原有Servlet接口上添加了一些与HTTP协议处理方法,它比Servlet接口的功能更为强大。因此开发人员在编写Servlet时,通常应继承这个类,而避免直接去实现Servlet接口。
HttpServlet在实现Servlet接口时,覆写了service方法,该方法体内的代码会自动判断用户的请求方式,如为GET请求,则调用HttpServlet的doGet方法,如为Post请求,则调用doPost方法。因此,开发人员在编写Servlet时,通常只需要覆写doGet或doPost方法,而不要去覆写service方法。
3 在Myeclipse中实现一个Servlet接口,了解Servlet的生命周期
3.1.新建一个类并实现接口:
aaarticlea/png;base64,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" alt="" />
代码如下:
package com.web.study; import java.io.IOException; import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse; public class ServletDemo1 implements Servlet { public void destroy() {
System.out.println("destory是生命周期方法,我在服务关闭时将被调用");
} public ServletConfig getServletConfig() {
System.out.println("ServletConfig是用来获取Servlet的配置信息的,对应于web.xml中的配置");
return null;
} public String getServletInfo() {
return null;
} public void init(ServletConfig arg0) throws ServletException {
System.out.println("init是生命周期方法,我只被调用一次");
} public void service(ServletRequest arg0, ServletResponse arg1)
throws ServletException, IOException {
System.out.println("service是生命周其方法,每次服务请求我都会被调用"); } }
3.2.配置web.xml
<servlet>
<servlet-name>ServletDemo1</servlet-name>
<servlet-class>com.web.study.ServletDemo1</servlet-class>
</servlet> <servlet-mapping>
<servlet-name>ServletDemo1</servlet-name>
<url-pattern>/ServletDemo1</url-pattern>
</servlet-mapping>
在浏览器中访问“http://localhost:8080/testWEB/ServletDemo1”即可访问该Servlet。
并且我们可以看见控制台的输出:
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXcAAAAoCAIAAACKDS0/AAAIbUlEQVR4nO1d27GkOAwlH8fjfEhjU+B7E9mqzsf7QbexLeno2EA/Znxqaoo2st46zeUOzPLPv/+ljGVpD+Qpa9E6PoUtLfF5EFZbKqb1oayvIW0pbTHF7VA4oMd3M1ZqQ5QSaQkp694dc+0qeuq95cZQ6JcmLKyhNW3px1Al11BFrW0zygHLlFJ6rE+BXFw13lddlssacmIEyyDL7B8Bs1Qft7QsL77AqKfxsR4EERez481h2FJY2/Eb0aOhVFsRWXFqi8+o81Tsx8vCsYzQkwpe2PUcLLN4TKfhPpaJi8MUu4xKhdZ6BmAZrS6TZT4Lm2Xkn2qfYBmp4UAXy5RGa4II5amoyYvuXEM1/8N6JBQlOYiorK/hCCqGlwloV9Wzk8uuZ40H0YSX2v2Pww7C7m4iO7kV1rGqWOvZh/9wUsR1BLVUpbHWJbLyuD13rY+n55tel8kyn8XQtUxzDMho4m0I+GeTvxqTZT6LmmUmfhShvpSYqDFZ5rOYLDPx52OyzGcxWWbiz8dkmc/irSyz2HA3dlkZdqNxxjo+78OFu4C2rPASzZYSdf07B/s7vfrj8W6W4dfHJnyXxPLNWfBRPSb5scsHZgsJ1TGQFpJwB9y2MmZ52OUJCVzriffge69lln6WIbfgzsOzYVlxh0SdK+zYGYCgeKPYHz5A1TpZBcYTjIFGmrgWX30tQ45rFmYWk00N0hmLUFzP1TAtMAH2gp9S8hRIFKAwIPAplrk81RMuvvRapmtIXNYYbuibWMadxmGADFvZxrkFi82BOsyNQLk+XJRhjBVr4jwqltniEnoe5OmV53FHk5HK1WlxuazX27s7/iSVWKdc2lWFGYLuYsYx4HAm7sP11zJrUP59uNtDzRjL7Rd6mL9LVQesSWBGJS+ODckbWKYrt5awlUBrOy43dphU5WbbrdrEfXiyzGMNe3nKa5N9Mcb4qt1BH6r8sSo3SMM9lcbCssPI7ndtqXrcfiUtqq7iUeFh+az6Rvqg6sSarVNysetjF3obYOJyVNcyjzU0PwE91pC5Qj0rf2JSr2Wexnq+T/jxk2qxobL7pVprL95l+QOCvXCQpGZV+flZtf5WlUs+KpNmURhZ9F7P8crErfBZpng3S7yWZfgewgJnWIZcZASAq4wYkwReppdlSMoDqbYiki4BD3v9cQG8GlM4MYBPskyHl59gGesb9Q6WYTLT9ZVORs17aPkJhrbJ2GSZvxZ3sMxrbYvNnZn7WIYnguZUs5GxxX8c3kXq6fXTGjDeHOZlSzjbHSbrMVIg/Z+4GzvLbHFpELfiZm7cDpGwPiz5JzblbnEiLrCRl0PXMg19kHatRlRHlOxanukk6/Gek1F0JcQSlgzCK8EeYrtdcJVMonkP3vSv8rrmCgiAIbTMMeuNXUtYjcK1eNOEgI1dUQy4oSq3IlUdYFKnCg9jrCUmLsF888PExMS9mCwzMTFxLybLTExM3IufZJmxmzXp0lvO2A3VGWbljMMnd12o546bHYxO8sbQsP5U335y7ygxCrt2dd1d+p5bTr/KMvx6183ORrKr5O792gGW6fWBV8ugN13kxoaIma8K/kulpABGXt0IHJBb3G5UXQJbLqw4zoYMBwN4hfGrLDPQdokeG3KL2nOWErJ+rqQMU3p4piEaPXyq+Twv9fgx4fAxDmeD8d9yVa6XWZJiqn4+gaoh3BuqaZx5ty48fpVl+PXeUSEXU105qZNpd3IaSTABdmkblseeNCkimxuMh+UP9oEBiNF1Q0Z3sjdAjwHNQIDMPNbM4FdZ5vK2aIqnVvRkVZgV/iwQONMQpQY+z651MGwy7UCza530p0sM5MHtPRC4a9pdtzKZRK5kQV03SCcZvJVl7nvrlYULM9WrXG278+PKyFwVZu9UWGfldtDrlk45QqqMHCcr4QNDRcpYdmW82GE1UjUEK4dSAGcAQzXB4MeuZdxElOmQeTmTKdUZyyXSOvZnuNJXhWl1JNDPiDUFAjHiqNWzXbH3BmjZUuWtcp+sTqnEbY/SQ7eduj72+ZxZ5ngDVQgh/0eo5Yupiv8ddV8N6+N1vnzUaQnro/yQrLdepZTKx57CejxpadhVAhjtKvVsUwCyhKQtt8yMBkvMaqOx5gDaLM18fpZ6OJd69oDDTCwLnCtX2HWg1AN8BpUiA+EdYNzA/gx87HM7vysvz/8Wj8EuH7p+rKEa+J0e9pUt7k9GVk9pb7F5WZ58hrt8bPuxhsxCyC79vZoFmCFR1WJDVkO78qTzvb3L6OyCSxN4EWyXU23lDZSvd5JxOLLiqtvWRuwz8A0HKDvQ+huHnCVl5gc86UW+likfs67mvkb17LV2k+WgFvlaCMEyW1SvU7BdWCQnWnqqZRncEoJFfgWfOqkzCzAdA2Ln3cBRgIFxXWKUM3Mi66XGorpHLjIm8Lol09gCVVAlcT6ZbJPQ7sts8XXtYLBAyieVW7nPV9KIC5nEswy223ktY21k1F7CMmq7uwMwxjJMZgZYxtV8nmWAw7zRUifvJD4mNch0yeLiSMmutrrU0qnKfIZlqvEvCAL9Vshgmf2E9n4r/Sem2vDTMv5t1H0s03QGMNScAi0FrPPd7Ppwif5GBoO0606mOyrWujtX2Gc3mW4+gedqBqQbIBYmFaDZVAG+vXFEvcgsUzpQXYRop9q3WDVXLY811EvorVel/nKT5VKToK7gsbBMelMbXpUUYJrG1Yxb2QKvnwQOje/XMr38drwOGoOvPiMjk99IyhKAQMjaJS3AZiL46LrSfqZtfu832eUxrg0QwIVUzTHrjV1enrE4VuYLe4Vxw81YUx11i5sQJhtqq1iSTFxNawFz0rq1C8OK3dJpRaF6i8MBwgP4MZaZmJj4OUyWmZiYuBf/A+cFNXD9oh9+AAAAAElFTkSuQmCC" alt="" />
如果再刷新浏览器访问,可以看见service方法又被调用:
aaarticlea/png;base64,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" alt="" />
默认情况下,服务器会在某个Servlet第一次收到请求时创建它。也可以在web.xml中对Servlet进行配置,使服务器启动时就创建Servlet。
修改xml,增加一条<load-on-startup>0</load-on-startup>,0代表servlet的启动顺序,0是最高的
<servlet>
<servlet-name>ServletDemo1</servlet-name>
<servlet-class>com.web.study.ServletDemo1</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
重启tomcat,可以看见控制台输出中已经调用了init的方法。
aaarticlea/png;base64,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" alt="" />
<url-pattern>的用法:
Normal
0 7.8 磅
0
2 false
false
false EN-US
ZH-CN
X-NONE MicrosoftInternetExplorer4 1. <url-pattern>是<servlet-mapping>的子元素,用来指定Servlet的访问路径,即URL。它必须是以“/”开头! 2. Normal
0 7.8 磅
0
2 false
false
false EN-US
ZH-CN
X-NONE MicrosoftInternetExplorer4 可以在<servlet-mapping>中给出多个<url-pattern>,例如:
<servlet-mapping>
<servlet-name>AServlet</servlet-name>
<url-pattern>/AServlet</url-pattern>
<url-pattern>/BServlet</url-pattern>
</servlet-mapping>
Normal
0
7.8 磅
0
2
false
false
false
EN-US
ZH-CN
X-NONE
MicrosoftInternetExplorer4
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Calibri","sans-serif";
mso-bidi-font-family:"Times New Roman";}
那么这说明一个Servlet绑定了两个URL,无论访问/AServlet还是/BServlet,访问的都是AServlet。
Normal
0
7.8 磅
0
2
false
false
false
EN-US
ZH-CN
X-NONE
MicrosoftInternetExplorer4
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Calibri","sans-serif";
mso-bidi-font-family:"Times New Roman";}
3.还可以在<url-pattern>中使用通配符,所谓通配符就是星号“*”,星号可以匹配任何URL前缀或后缀,使用通配符可以命名一个Servlet绑定一组URL,例如:
aaarticlea/png;base64,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" alt="" />
Normal
0
7.8 磅
0
2
false
false
false
EN-US
ZH-CN
X-NONE
MicrosoftInternetExplorer4
4. GerericServlet
源码:
public abstract class GenericServlet implements Servlet, ServletConfig,
java.io.Serializable {
private static final long serialVersionUID = 1L;
private transient ServletConfig config;
public GenericServlet() {}
@Override
public void destroy() {}
@Override
public String getInitParameter(String name) {
return getServletConfig().getInitParameter(name);
}
@Override
public Enumeration<String> getInitParameterNames() {
return getServletConfig().getInitParameterNames();
}
@Override
public ServletConfig getServletConfig() {
return config;
}
@Override
public ServletContext getServletContext() {
return getServletConfig().getServletContext();
}
@Override
public String getServletInfo() {
return "";
}
@Override
public void init (ServletConfig config) throws ServletException {
this.config = config;
this.init();
}
public void init () throws ServletException {}
public void log(String msg) {
getServletContext().log(getServletName() + ": " + msg);
}
public void log(String message, Throwable t) {
getServletContext().log(getServletName() + ": " + message, t);
}
@Override
public abstract void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException;
@Override
public String getServletName() {
return config.getServletName();
}
}
Normal
0
7.8 磅
0
2
false
false
false
EN-US
ZH-CN
X-NONE
MicrosoftInternetExplorer4
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Calibri","sans-serif";
mso-bidi-font-family:"Times New Roman";}
GenericServlet
GenericServlet是Servlet接口的实现类,但它是一个抽象类,它唯一的抽象方法就是service()方法
GenericServlet实现了Servlet方法:
* 实现了String getServletInfo()方法
* 实现了void destory()方法,空实现
* 实现了void init(ServletConfig)方法,用来保存ServletConfig参数
* 实现了ServletConfig getServletConfig()方法
GenericServlet实现了ServletConfig接口:
* 实现了ServletContext getServletContext()方法
* 实现了String getInitParameter()方法
* 实现了String getServletName()方法
* 实现了Enumeration getInitParameterNames()方法
GenericServlet添加了init()方法:
* 该方法会被init(ServletConfig)方法调用
* 如果希望对Servlet进行初始化,那么应该覆盖init()方法,而不是init(ServletConfig)方法
5.HttpServlet
HttpServlet是GenericServlet的子类,它专注HTTP请求
HttpServlet类的方法:
* 实现了void service(ServletRequest,ServletResponse)方法,实现内容是:
> 把ServletRequest强转成HttpServletRequest
> 把ServletResponse强转成HttpServletResponse
> 调用本类添加的void service(HttpServletRequest,HttpServletResponse)方法
* 添加了void service(HttpServletRequest,HttpServletResponse)方法,内容是:
> 调用request的getMethod()获取请求方式
> 如果请求方式为GET,那么调用本类添加的doGet(HttpServletRequest,HttpServletResponse)方法
> 如果请求方式为POST,那么调用本类添加的doPost(HttpServletRequest,HttpServletResponse)方法
* 添加了doGet(HttpServletRequest,HttpServletResponse)方法,内容是响应405,表示错误,所以我们应该去覆盖这个方法
* 添加了doPost(HttpServletRequest,HttpServletResponse)方法,内容是响应405,表示错误,所以我们应用去覆盖这个方法
如果是通过继承HttpServlet类来自定义Sevlet的话,那么:
* 不要去覆盖void service(ServletRequest,ServletResponse)
* 不要去覆盖void service(HttpServletRequest, HttpServletResponse)
* 而应该去覆盖doGet()或doPost()方法。
从中可以总结出Servlet的一个运行流程:
1). 服务器创建Servlet:
* 当Servlet第一次被请求时,或服务器启动时,服务器会创建Servlet实例。
* 服务器默认是在servlet第一次被请求时创建Servlet实例,如果希望服务器启动时就创建Servlet实现需要在web.xml中配置
* 服务器只为一个类型的Servlet创建一个实例对象,所以Servlet是单例的;
2). 服务器初始化Servlet:
* 当服务器创建Servlet实例后会马上调用Servlet的init(ServletConfig)方法,完成对Servlet的初始化;
* init(ServletConfig)只会被调用一次
* 服务器会在调用init()方法时传递ServletConfig参数
3). 服务器使用Servlet处理请求:
* 当Servlet被请求时,服务器会调用Servlet的service(ServletRequest,ServletResponse)方法
* service(ServletRequest,ServletResponse)方法每处理一次请求,就会被调用一次,所以它可能会被调用N次
* 因为Servlet是单例的,所以可能在同一时刻一个Servlet对象会被多个请求同时访问,所以这可能出现线程案例问题
* Servlet不是线程案例的,这有助与提高效率,但不能让Servlet具有状态,以免多个线程争抢数据
4). 服务器销毁Servlet
* 服务器通常不会销毁Servlet,通常只有在服务器关闭时才会销毁Servlet
* 服务器会在销毁Servlet之前调用Servlet的destory()方法
* 可以在destory()方法中给出释放Servlet占有的资源,但通常Servlet是没什么可要释放的,所以该方法一般都是空的
Normal
0
7.8 磅
0
2
false
false
false
EN-US
ZH-CN
X-NONE
MicrosoftInternetExplorer4
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.0pt;
font-family:"Calibri","sans-serif";
mso-bidi-font-family:"Times New Roman";}
JavaWeb学习总结(三)—Servlet的更多相关文章
- JavaWeb学习笔记三 Servlet
Servlet 是运行在服务端的Java小程序,是sun公司提供一套规范(接口),用来处理客户端请求.响应给浏览器的动态资源.但servlet的实质就是java代码,通过java的API,动态的向客户 ...
- JavaWeb学习总结(三)——Tomcat服务器学习和使用(二) 包含https 非对称秘钥 NB
JavaWeb学习总结(三)--Tomcat服务器学习和使用(二) 一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命 ...
- JavaWeb学习总结(三)——Tomcat服务器学习和使用
收藏 JavaWeb学习总结(三)——Tomcat服务器学习和使用 http://www.cnblogs.com/xdp-gacl/p/3744053.html
- javaweb学习总结(六)——Servlet开发(二)
一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些 ...
- javaweb学习总结(六)——Servlet开发(二)(转)
转载自 http://www.cnblogs.com/xdp-gacl/p/3763559.html 一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文 ...
- JavaWeb学习总结-04 Servlet 学习和使用
一 Servlet 1 Servlet概念 Servlet时运行在服务器端的Java程序. Servlet的框架核心是 javax.servlet.Servlet 接口. 所有自定义的Servlet都 ...
- javaweb学习总结(六)——Servlet开发(三) 常见问题疑问
[1]response.getWriter().write()与out.print()的区别http://blog.csdn.net/javaloveiphone/article/details/81 ...
- JavaWeb学习篇之----Servlet
今天来继续学习JavaWeb的相关知识,之前都是都介绍一些基本知识,从今天开始我们来说一下如何在服务器编写程序,这里就需要来介绍一下Servlet的相关知识了.Servlet就是一个能够运行在服务器端 ...
- JavaWeb学习笔记之Servlet(一)
1. 引子: 当我们开始进入JavaWeb开发的学习时,我们就必须要和Servlet和HTTP这两个词进行打交道了,尤其是Servlet.即使到了后面使用JSP (我们知道JSP其本身就是一个Serv ...
- javaweb学习总结(五)——Servlet开发(一)
一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...
随机推荐
- C++中this指针的用法详解
转自 http://blog.chinaunix.net/uid-21411227-id-1826942.html 1. this指针的用处: 一个对象的this指针并不是对象本身的一部分,不会影响s ...
- python 补充-decode和encode
1. decode与encode转码 在Python3中默认编码就是uncode,encode转成Byte类型 在Python2中默认编码就是ascii window下默认编码是GBK decode( ...
- SQL数据类型大全 《转自网络》
数据类型是数据的一种属性,表示数据所表示信息的类型.任何一种计算机语言都定义了自己的数据类型.当然,不同的程序语言都具有不同的特点,所定义的数据类型的种类和名称都或多或少有些不同.SQLServer ...
- YTU 2019: 鞍点计算
2019: 鞍点计算 时间限制: 1 Sec 内存限制: 64 MB 提交: 66 解决: 30 题目描述 找出具有m行n列二维数组Array的"鞍点",即该位置上的元素在该行 ...
- cmake用法(转)
转自:http://blog.csdn.net/dbzhang800/article/details/6314073 新工作中使用到了cmake,所以找点资料学习一下,这篇讲的确实不错,转过来保存一下 ...
- spoj 7001. Visible Lattice Points GCD问题 莫比乌斯反演
SPOJ Problem Set (classical) 7001. Visible Lattice Points Problem code: VLATTICE Consider a N*N*N la ...
- C#中调用存储过程:带输入输出参数
using (SqlConnection conn = new SqlConnection(this.GetConnectionString(this.WMPDBName))) { SqlComman ...
- c#启动EXE文件(简单的)
在程序执行中会遇到启动本软件的exe问,或者启用其它的exe文件,已达到执行某些操作的作用.下面是两种最常见的启动exe文件. 1.调用系统dll使用其提供的方法. 引用的dll, [DllImpor ...
- iOS深入学习:(UITableView系列3:insertRow)
前面一篇博客,我使用了reloadData来刷新界面,但是这样没有动画效果,那么我这里通过insertRowsAtIndexPaths:withRowAnimation设置动画效果,希望对大家有所帮助 ...
- Cheatsheet: 2013 09.10 ~ 09.21
.NET Lucene.Net – Custom Synonym Analyzer Using FiddlerCore to Capture Streaming Audio Immutable col ...