之前也学习过servlet,但是并没有真正理解它,现在回过头来继续深挖。
何谓servlet?它是一个java方面的重要的网络技术,是需要与服务器联系的技术。
也就是说,servlet是从javase(向javaEE进阶一项重要的技术。
在servlet之前是谁扮演与服务器联系并获取服务器上的信息资源的角色呢,CGI,俗称"网关"。
在之前的javase技术中我们的程序都是在自己的IDE编程环境中运行,并且获得我们自己定义的数据。而servlet则迈出了重要的一步,与现实世界通信,获取网络上的资源,是不是已经开始激动了呢?随着我开始学习这门重要的技术吧。
首先,与服务端通信我们需要一台服务器,Tomcat是个不错的选择。
下载地址:http://tomcat.apache.org/download-60.cgi。可能版本比较低了,可能根据自己的需要来下载版本较高的来使用。
配置环境:(与JDK的环境变量配置类似)
(1)变量名: CATALINA_BASE 变量值: D:\Downloads\apache-tomcat-6.0.48(Tomcat解压到的目录)
(2)变量名: CATALINA_HOME 变量值: D:\Downloads\apache-tomcat-6.0.48
(3)变量名: CATALINA_TMPDIR 变量值: D:\Downloads\apache-tomcat-6.0.48\temp
(4)变量名: Path 变量值:D:\Downloads\apache-tomcat-6.0.48\bin
然后到自己的浏览器中输入网址:Http://localhost:8080/
应该可以看到Tomcat的欢迎界面。
第一个Servler的HelloWorld:
新建一个servlet的类。注意不是新建一个class来实现servlet的抽象类接口。(是否可以,大家可以试一下)
在doGet和doPost方法中的代码如下:
在doGet方法:
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the GET method");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
在doPost方法:
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println(" <BODY>");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the POST method");
out.println(" </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
打开eclipse的Browser浏览器中输入网址:http://localhost:8080/zza/ServletTest
点击run as server 运行结果如下:
结果显示如上,这里有几个问题:
1.为什么要输入这样的网址?
2.servlet的代码为什么看起来和我们之前的java代码不太一样?
3.为什么这里调用的是Get方法而不是post方法?
大家可以先思考一下,我们后面再慢慢讲。
需要注意的是:
1.如何在eclipse中部署Tomcat服务器?
Windows->Preferences->server->选择自己想要的Tomcat的版本,选择安装目录即可。
2.Tomcat需要什么版本的eclipse。
需要JAVAee版本的eclipse,所以javase版本的eclipse是不行的。
3.如何配置servlet的运行环境。
需要servlet的jar包。