一、Servlet概述
Servlet是一个接口,位于 javax.servlet.Servlet,它规定了每个Servlet所必须实现的方法。通常我们把实现了Servlet接口的java程序也叫做Servlet。SUN公司提供了实现Servlet接口的两个类:GenericServlet、HttpServlet。通常编写Servlet时不会去直接实现接口Servlet,而是选择继承类HttpServlet。
二、建立Dynamic Web Project
1、在选项栏File->New中选择Dynamic Web Project(如果没有这一选项,可以在File->New->Other中直接搜索Dynamic Web Project,如果还是没有这一选项,则需要安装插件,安装过程可以参考这篇文章),点击后如下图所示:
给自己的项目起个名字并在Target runtime中选择自己已经配置好的Tomcat服务器,点击Next。
2、点击Next后如下图,继续Next
3、勾选“Generate web.xml deployment descriptor”后点Finish。
项目建立后结构如下所示:
三、建立Servlet
建立Servlet大致需要3步:继承HttpServlet->重写doGet()或doPost()方法->在web.xml中注册建立的Servlet。
1、找到上一步建立的项目中Java Resources中的src,右键选择建立Servlet文件,如下图
填写包名和类名后Finish即可(点Next的话可以编辑此Servlet到访问此Servlet的URL的映射,这里就不编辑了,而是选择直接编辑web.xml)。Finish之后打开Servelet.java后可以看到eclipse已经为我们写好了代码,可以直接运行,我们可以根据需要在此基础上修改代码(这篇文章没有修改FirstServlet.java里的代码)。
2、打开web.xml注册ServeletDemo,在web.xml中添加如下代码:
<servlet>
<servlet-name>FirstServlet</servlet-name>
<servlet-class>com.fsq.FirstServlet</servlet-class> <!--根据自己的包名做相应的改动-->
</servlet>
<servlet-mapping>
<servlet-name>FirstServlet</servlet-name>
<url-pattern>/servlets/FirstServlet</url-pattern>
</servlet-mapping>
编辑后的web.xml如下:
在<servlet></servlet>中注册了刚刚创建的Servlet,对应的类为com.fsq.FirstServlet,然后在<servlet-mapping></servlet-mapping>中添加Servlet到浏览器地址栏url的映射,通过上面的映射,我们可以在浏览器地址栏中输入http://localhost:8080/ServletDemo/servlets/FirstServlet来访问FirstServlet(前提是Tomcat已打开),也可以直接在Eclipse中右键项目名->Run As->Run on Server来访问,访问成功后截图如下:
其实映射可以添加多个,这样就可以在浏览器中使用不同的url访问同一个Servlet。我们可以在刚才的web.xml继续添加映射(注意编辑web.xml保存后要重新启动Tomcat):
<servlet-mapping>
<servlet-name>FirstServlet</servlet-name>
<url-pattern>/index.jsp</url-pattern>
</servlet-mapping>
添加后我们就可以通过地址栏url:http://localhost:8080/ServletDemo/index.jsp来访问
继续编辑web.xml,添加映射:
<servlet-mapping>
<servlet-name>FirstServlet</servlet-name>
<url-pattern>/1.html</url-pattern>
</servlet-mapping>
<!-- 通过URL:http://localhost:8080/ServletDemo/1.html访问 -->
<servlet-mapping>
<servlet-name>FirstServlet</servlet-name>
<url-pattern>/hello.php</url-pattern>
</servlet-mapping>
<!-- 通过URL:http://localhost:8080/ServletDemo/hello.php访问 -->
<servlet-mapping>
<servlet-name>FirstServlet</servlet-name>
<url-pattern>/hello.asp</url-pattern>
</servlet-mapping>
<!-- 通过URL:http://localhost:8080/ServletDemo/hello.asp访问 -->
这时在地址栏键入相应的地址就可以访问FirstServlet,如下图:
还可以通过添加映射:
<servlet-mapping>
<servlet-name>FirstServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
来使用任意的名字来访问FirstServlet: