学习扎记:一个最简单的Servlet——Hello World

简介:

第一个Servlet程序—Hello World!


Step1:编写HelloWorldServlet类


编写一个Servlet,实际上就是编写一个实现了javax.servlet.Servlet接口的类。

我的Tomcat安装的路径是H:\Java-tools\apache-tomcat-7.0.47

下面用%CATALINA_HOME%来代替

在%CATALINA_HOME%\webapps新建一个ex1目录,再在ex1目录下再建立一个子目录src

将编写好的HelloWorldServlet.java源文件放在子目录src下。详细代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package  org.lixiyu.ex1.servlet;
import  java.io.IOException;
import  java.io.PrintWriter;
import  javax.servlet.Servlet;
import  javax.servlet.ServletConfig;
import  javax.servlet.ServletException;
import  javax.servlet.ServletRequest;
import  javax.servlet.ServletResponse;
public  class  HelloWorldServlet  implements  Servlet
{
private  ServletConfig config;
public  void  destroy(){}
public  ServletConfig getServletConfig()
{
return  config;
}
/**
*该方法很少使用,因此返回null即可
*/
public  String getServletInfo()
{
return  null ;
}
/**
*ServletConfig对象由容器构造。容器在调用init()方法时,将其作为参数传给Servlet
*/
public  void  init(ServletConfig config)  throws  ServletException
{
this .config=config;
}
public  void  service(ServletRequest req,ServletResponse res)
throws  ServletException,IOException
{
//得到PrintWriter对象。Servlet使用输出流来产生响应
PrintWriter out=res.getWriter();
//向客户端发送字符数据
out.println( "Hello World" );
//关闭输出流
out.close();
}
}

大概实现过程:

在Servlet中,主要的方法是service(),客户端发出请求,Tomcat将调用Servlet实例的service()方法对请求进行处理。

 service()方法中,先通过ServletResponse类中的getWriter()方法调用得到一个PrintWrite类型的输出流对象out,然后调用out对象的println()方法向客户端发送字符串“Hello World”,最后关闭out对象。




Step2:编译HelloWorldServlet.java


打开命令提示符,转到所在目录%CATALINA_HOME%\webapps\ex1\src下,然后执行:

1
javac -d . HelloWorldServlet.java

在这之前要先配置servlet环境变量:将%CATALINA_HOME%\lib\servlet-api.jar加入到ClassPath环境变量下

191516693.jpg

否则会出现错误如下图所示

191632931.jpg


正确编译会生成一个org包

191842763.jpg




Step3:部署HelloWorldServlet


在Servlet容器运行时,Web应用程序的类加载器将首先加载classes目录下的,其次才是lib目录下的类。如果这两个目录下存在同名的类,起作用的将是calsses目录下的类。

在%CATALINA_HOME%\webapps\ex1目录下新建一个子目录WEB-INF(注意是大写)

再在WEB-INF目录下新建一个calsses目录

将生成的HelloWorldServlet.class文件连同所在org包一起放到WEB-INF\classes目录下

接下来,需要通过web.xml来对servlet进行部署

可以到%CATALINA_HOME%\webapps\ROOT\WEB-INF目录下复制一份web.xml存放到ex1\WEB-INF目录下。这个web.xml内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
<?xml version= "1.0"  encoding= "ISO-8859-1" ?>
<web-app xmlns= "http://java.sun.com/xml/ns/javaee"
   xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http: //java.sun.com/xml/ns/javaee
                       http: //java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
   version= "3.0"
   metadata-complete= "true" >
   <display-name>Welcome to Tomcat</display-name>
   <description>
      Welcome to Tomcat
   </description>
</web-app>

然后编辑这个文件,添加HelloWorldServlet配置,如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version= "1.0"  encoding= "ISO-8859-1" ?>
<web-app xmlns= "http://java.sun.com/xml/ns/javaee"
   xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http: //java.sun.com/xml/ns/javaee
                       http: //java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
   version= "3.0"
   metadata-complete= "true" >
   <display-name>Welcome to Tomcat</display-name>
   <description>
      Welcome to Tomcat
   </description>
<servlet>
<servlet-name>HelloWorldServlet</servlet-name>
<servlet- class >org.lixiyu.ex1.servlet.HelloWorldServlet</servlet- class >
</servlet>
<servlet-mapping>
<servlet-name>HelloWorldServlet</servlet-name>
<url-pattern>/helloworld</url-pattern>
</servlet-mapping>
</web-app>




Step4:访问HelloWorldServlet


确保Tomcat服务器已经启动。

通过浏览器访问,输入地址:http://localhost:8080/ex1/helloworld

193537659.jpg


本文转自lixiyu 51CTO博客,原文链接:http://blog.51cto.com/lixiyu/1330531,如需转载请自行联系原作者


相关文章
|
11月前
|
小程序 Java 应用服务中间件
【JavaWeb学习】—Servlet(十三)
【JavaWeb学习】—Servlet(十三)
|
5月前
|
API
servlet研究学习总结--OutputStream和PrintWriter的区别
servlet研究学习总结--OutputStream和PrintWriter的区别
216 1
|
6月前
|
前端开发 JavaScript Java
七个步骤, 编写一个 Servlet 的 HelloWorld 程序
七个步骤, 编写一个 Servlet 的 HelloWorld 程序
54 0
|
6月前
|
设计模式 存储 前端开发
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
|
应用服务中间件
【JavaWeb】使用Servlet实现输出 hello world
之前讲过如何使用IDEA创建Servlet项目. 因此创建项目这一步就不过多介绍了 有需要的可以看一下➡IDEA专业版和社区版创建Servlet项目
|
Java 应用服务中间件 Maven
利用Servlet编写第一个“hello world“(下)
利用Servlet编写第一个“hello world“(下)
|
Java 应用服务中间件 Maven
利用Servlet编写第一个“hello world“(中)
利用Servlet编写第一个“hello world“(中)
|
Java 应用服务中间件 API
利用Servlet编写第一个“hello world“(上)
利用Servlet编写第一个“hello world“(上)
|
XML Java 应用服务中间件
都2023年了,Servlet还有必要学习吗?一文带你快速了解Servlet(二)
都2023年了,Servlet还有必要学习吗?一文带你快速了解Servlet(二)
247 0
|
Java 应用服务中间件 UED
都2023年了,Servlet还有必要学习吗?一文带你快速了解Servlet(一)
都2023年了,Servlet还有必要学习吗?一文带你快速了解Servlet(一)
226 0