Servlet_1th_第一个Servlet程序

一、Servlet简介
1)Servlet是在Web服务器上的一个Java应用程序,当用户访问Web服务器的时候,它为用户提供服务(为用户传递一个html文档)。
2)用来完成B/S架构下,客户端请求的响应处理。
3)平台独立,性能优良,能以线程方式运行。
4)Servlet API为Servlet提供了统一的编程接口。
5)Servlet一般在容器中运行。
6)常见的Servlet容器:
Tomcat是一个Web Server,也是一个Servlet容器。


二、Servlet运行过程

1)浏览器发送请求到服务器
2)服务器根据请求的url,去调用相应的servlet类。
3)通过servlet中的打印流对象将生成的HTML数据输出给服务器。
4)服务器将servlet生成的数据再输出给客户端浏览器。

三、Servlet程序演示效果:

1、建立web项目
最好切换到Package Explorer的视图,然后新建一个Dynamic Web Project,名字随便起,这里起为first。

2、建包
在建好的Web项目的src目录下建包com.hpe.servlet,在该包下新建一个Java文件:FirstServlet.java。
写下如下代码:

package com.hpe.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class FirstServlet extends HttpServlet {

	@Override
	protected void service(HttpServletRequest arg0, HttpServletResponse arg1) 
			throws ServletException, IOException {
		System.out.println("我的第一个Servlet程序运行啦!");
	}
	
}


3、配置servlet
1)为什么要配置?
服务器根据客户端请求的url去调用相应的servlet类。虽然在第2步中已经写好了一个servlet类,但服务器并不知道这个类的存在,所以配置是为了将这个servlet类告诉服务器。

2)配置过程
①在WEB-INF目录下,有一个web.xml,这是servlet程序的配置文件,通过这个文件服务器就能找到servlet程序。
内容如下所示:


  first
  
    index.html
    index.htm
    index.jsp
    default.html
    default.htm
    default.jsp
  

②将其中的内容进行删减如下:


  

③接下来要配置一个servlet,让服务器知道我们写的这个servlet类


  
  
  
  	one	
  	com.hpe.servlet.FirstServlet		
  
  

④让服务器知道哪个url是对应这个servlet程序的:


  
  
  
  	one	
  	com.hpe.servlet.FirstServlet		
  
  
  
  
  	one
  	/111			
  	/222
  	/oneoneone
  
  

客户端只要发一个"/111"请求,服务器就知道找one这个servlet,然后就能找到这个名字对应的类。

注意:一个web.xml文件中可以写多个标签,即可以配置多个servlet类。

配置过程完成。


4、部署Servlet程序

第一种:命令行启动Tomcat服务器方式。

第二种:eclipse中启动Tomcat服务器。

下面先介绍第一种:

1)命令行启动Tomcat服务器方式:

①将Web项目

在C:\apache-tomcat-8.0.17\webapps\目录下新建一个文件夹test用于存放servlet程序和web.xml配置文件。

将eclispe中Package Explorer视图下的META-INF和WEB-INF文件拷贝到C:\apache-tomcat-8.0.17\webapps\test目录下;

将eclispe中Package Explorer视图下的build文件下classes文件拷贝到C:\apache-tomcat-8.0.17\webapps\test\WEB-INF目录下。

然后启动Tomcat服务器:


如下启动完成:

Servlet_1th_第一个Servlet程序_第1张图片

可以看到服务器端口号变成了8888,默认是8080,这里已经在C:\apache-tomcat-8.0.17\conf中的server.xml文件中修改了端口号。

在浏览器中输入如下url:


当服务器会根据url,在C:\apache-tomcat-8.0.17\webapps\test\WEB-INF\web.xml中去找名字为"111"的servlet程序,并调用其servlet类中的service方法,所以在控制台会打印如下信息:

Servlet_1th_第一个Servlet程序_第2张图片

每刷新一次页面,都会向服务器发送请求,服务器就会根据url调用servlet程序从而打印这句话。

此外,在浏览器输入http://localhost:8888/test/222、http://localhost:8888/test/oneoneone同样会调用到servlet程序,这是因为在web.xml的标签中给名字为"one"的servlet程序指定了/111/222/oneoneone

总结:

①同一个servlet程序可以对应多个url地址

/111中的"/"是相对于webapps的根路径而言的,

③要写一个Servlet程序,需要继承Servlet接口,而Servlet有3个已知的实现类FacesServlet、GenericServlet、HttpServlet。但我们是要写一个在HTTP服务器端运行的Servlet程序,所以没必要直接实现Servlet接口,可以从其实现类HttpServlet继承即可。


下面将介绍在eclipse中启动Tomcat服务器的方式,可以对之前的FirstServer.java做一些改动,便于观察效果:

package com.hpe.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class FirstServlet extends HttpServlet {
	private static int count = 0; 
	@Override
	protected void service(HttpServletRequest arg0, HttpServletResponse arg1) 
			throws ServletException, IOException {
//		System.out.println("我的第一个Servlet程序运行啦!");
		count++;
		System.out.println("我的第一个Servlet程序运行第" + count +"次啦!");
	}
}


第二种:从eclipse中启动Tomcat服务器:

在前一篇博文的基础上,将Web项目first添加到Tomcat服务器,然后启动:

Servlet_1th_第一个Servlet程序_第3张图片

服务器启动完成,我们使用的依然是8888端口:

Servlet_1th_第一个Servlet程序_第4张图片


右键Run As — Run On Server,运行servlet程序,或直接点击运行按钮,运行效果如下:

Servlet_1th_第一个Servlet程序_第5张图片

多次刷新页面:

Servlet_1th_第一个Servlet程序_第6张图片

这是在eclipse中将web项目发布到Tomcat服务器中,然后启动Tomcat服务器,手动运行servlet的例子。






你可能感兴趣的:(Servlet,java,web,web,server,servlet)