Servlet总结(二)

作者:tcj

最近刚把J2SE的主要知识点看完,现在准备系统的学习一下Servlet。主要学习资料是尚学堂的视频。写的绝大部分内容都参考了其中的视频。我觉得这个资料还是非常好的。下面介绍一下一个Servlet的HelloWorld程序。(本人觉得学习任何东西先从HelloWorld开始是一个很好的习惯,符合人们的认知规律)。

1.HelloWorldServlet.java

import java.io.IOException;
import java.io.*;

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


public class HelloWorldServlet extends HttpServlet{
	
	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest req, HttpServletResponse resp)//Tomcat帮忙调用,不是自己调用
			throws ServletException, IOException {
		PrintWriter out = resp.getWriter();
		out.println("<html><head><title></title><body>hello world!</body></head></html>");
		out.flush();
		out.close();
	}
	

}


关于这个HelloWorld程序作几点说明:

1)首先要把servlet-api.jar导入进去(右键工程名->Build Path ->Configure Build Path -> Add External Jars)。

2)这个程序没有main()方法,必须部署到Servlet容器中(这里是Tomcat)才能执行,doGet()方法是Tomcat帮助你调用,其中的两个参数HttpServletRequest req,HttpServletResponse resp,如果你查J2EE  6.0 AP的话就可以知道HttpServletRequest、HttpServletResponse是两个接口,这里父类引用指向子类对象,实际上传的两个参数应该是

Tomcat帮你封装好的实现了这两个接口的对象--包装好的客户端请求对象(包括客户端的IP地址、form表单的参数)和到客户端的应答对象。(应该是有多态的存在)。PrintWriter流在前面的IO总结中已经提到,这里不做说明。

3)怎么部署到Tomcat?

先说明一下不用IDE自己在Tomcat下新建一个工程。

a.在Tomcat下的webapps文件夹下新建一个文件夹,改为你的工程名,这里我的是“myproject”.


b.在myproject文件下新建WEB-INF文件夹(必须全大写,规定),然后在WEB-INF文件夹下新建一个web.xml,一个classes文件夹(存放编译好的servlet,即.class文件)和一个lib文件夹(存放工程用到的jar包)。


c.配置你的web.xml,典型配置如下:


刚开始的话<servlet></servlet>等标签不是必须的,有一个<web-app>即可。


说明这个之后,再来介绍将Servlet部署到Tomcat下。

第一步.我们把这个程序编译好的HelloWorldServlet.class文件复制到我们的工程中的classes文件夹下



第二步,还要告诉Tomcat什么时候调用doGet()方法。配置web.xml如上图。

<servlet>和<servlet-mapping>中<servlet-name>可以任意,但必须一致。

<servlet-class>应该写类的全名(包名+类名),这里是裸体类,如果放在包中也要写包名。

<url-pattern>必须以“/"开头,代表web应用程序的访问路径,这里是”localhost:8080/myproject/“

(一个小技巧:在Tomcat的config文件夹下配置context.xml为<context reloading = "true">,会帮你监控WEB-INF下的文件,如果改变了就自动reloading)

最后,打开Tomcat,浏览器中输入localhost:8080/myproject/tcj就可以了。


补充说明(重要):

Servlet接口及其子类GenericServlet没有考虑到Http这个协议相关

的细节


我们如果要写响应客户端HTTP请求的程序,就必须继承

HttpServlet这个类,并且重写里面的方法(一般为doGet()或者

doPost()方法)。


其实,这个过程比较繁琐,在IDE中部署项目是非常简单方便的。但是,对于新手来说,作为一种方法,以及了解Tomcat的目录结构有一定的帮助,所以记录了下来,与大家分享。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值