Tomcat + Servlet 部署实施示例

学习整理了使用Tomcat承载Servlet的一些东西,略作整理,避免后续重头再来。

 

一、什么是Servlet ?

Servlet是Java在服务器端的程序,通俗的讲就是:Servlet通过web服务器响应客户端的请求 -- 接受请求信息,处理后返回信息。

1.Servlet如何工作 ?

   第一个客户端向web服务器发出访问请求时,当然请求带有某种“标签”(其实就是url中ip:port后面的那部分),标识需要web服务器中的某个Servlet做出响应;

   web服务器根据客户端请求时带的“标签”,找到对应的Servlet;

   创建一个Servlet实例,进入此Servlet的生命周期;

   首先,自动自行其中的init()方法做初始化工作;

   然后,调用其中的service(request,response)方法;

   最后,通过response返回给web服务器客户端请求处理后的结果,web服务器再返回给客户端;

2.Servlet的生命周期

   首先,第一个被创建时,init()被执行,Servlet生命周期开始;

   然后,每次有客户端请求就执行一次service(request,response);

   最后,有三种方式会使得当前Servlet执行destroy() -- reload web服务器/关闭web服务器/关机;

二、什么是Tomcat?

一句话,把上面介绍Servlet中的”web服务器“都换成Tomcat再去理解一遍。

事实上,Tomcat不仅仅是充当web服务器的角色,它还有Servlet容器的作用 -- 负责Servlet的生命周期。

三、使用Tomcat装载Servlet

1.下载安装Tomcat

下载可以直接去Tomcat官网去下载 -- http://tomcat.apache.org/; 左边有Download选项,进入其中选择对应的Tomcat版本,有windows/linux,32bits/64bits之分;

笔者下载的是《apache-tomcat-6.0.41-windows-x64.zip》;

安装的话更简单,直接选择一个目录解压缩即可;其实笔者这里默认各位已经安装了JDK,如果JDK都没装过,这篇文章还是不要看了,没用的;

2.配置Tomcat

个人分两个部分:

a.配置环境变量--将Tomcat安装目录,配置为TOMCAT_HOME(D:\Software\tomcat-6.0.41);笔者默认各位已经配置了JAVA_HOME;

b.配置Tomcat的管理用户名密码,打开tomcat安装目录--以笔者为例D:\Software\tomcat-6.0.41\conf--找到tomcat-users.xml,在<tomcat-users>...</tomcat-users>中间配置类似如下信息 -- <user roles="manager" password="passwd" username="username"/> ,则你的tomcat管理台登录用户名为username,密码为passwd;

3.编写Servlet程序

这一段其实是比较重要的,包含的东西多一些,但是理解起来应该不困难,不需要智商高的人,一般智商的都能够理解;

有三种方法来实现Servlet -- 实现javax.servlet.Servlet接口/继承javax.servlet.GenericServlet类/继承javax.servlet.http.HttpServlet类;

下面附一个向客户端返回"Hello,world!"的案例(使用继承javax.servlet.http.HttpServlet类的方法) -->

package com.first;
import javax.servlet.http.*;
import java.io.*;
public class HelloWorld extends HttpServlet 
{
	//只要初始化无参数的init()即可,有参数的init(config)会调用init()
	//只在第一次Servlet实例被创建时执行一次,后续客户端访问不会被重复执行
	public void init() throws Exception {}
	//暂时不做详解
	public Servletconfig getServletconfig() {return null;} 
	//每次用户访问都会调用一次
	public void service(ServletRequest req, ServletResponse response) 
	{
		//此处可能对req做某种处理,此例中没有编写这些逻辑,仅做客户端与服务器端通讯通道的模拟
		//code......
		
		//需要在返回response值中获取一个pw,才能给客户端发信息
		PrintWriter pw = response.getWriter();
		//实际返回给客户端的内容
		pw.println("Hello,world!");
	 }
	//暂时不做详解
	public String getServletInfo() {return "";}
	//三种方式会被执行-->1.reload tomcat; 2.shutdown tomcat; 3. shundown system;
	public void destroy() {System.out.println("Destroy servlet!");}
 }


 

4.部署Servlet程序

a.在tomcat安装目录下找到webapps目录,后续所有的应用程序(在这里指的是servlet程序)都会在此目录下进行相应部署;

b.在webapps下创建一个目录,名字任意取,避免中文即可,这个名字会是日后客户端访问该服务器应用程序时URL的重要组成部分;笔者取名MyWebsite ;

c.在MyWebsite下,新建目录WEB-INF(不可任意取名,就是这个名字,擦干泪不要问为什么);

d.在WEB-INF目录下,新建两个目录classes和lib(理由同上),从上层ROOT目录下,拷贝一个web.xml过来;

e.编辑web.xml,找到其中的<servlet></servlet>对和</servlet-mapping></servlet-mapping>对进行编辑,见笔者的例子:

  <!--JSPC servlet mapping start-->

  <servlet>
     <!--任意的名称,用于此servlet在tomcat登记使用,但是要与下面的mapping中servlet-name对应起来-->
     <servlet-name>hello</servlet-name>
     <!--com.first是Servlet的包名,Hello是Servlet的类名-->
     <servlet-class>com.first.Hello</servlet-class>
  </servlet>
  <servlet-mapping>
     <!--同上-->
     <servlet-name>hello</servlet-name>
     <!--url即客户端浏览器访问此servlet需要输入的url,当然前面必须要其他必要的信息:IP:port/MyWebsite,任意定义-->
     <url-pattern>/hello</url-pattern>
  </servlet-mapping>
  <!--JSPC servlet mapping end-->

5.启动Tomcat

   进入tomcat安装目录下的bin目录,找到startup.bat(linux环境则是startup.sh),双击启动;

6.执行客户端访问

   本机打开浏览器,输入http://127.0.0.1:8080/MyWebsite/hello , 回车,页面就会显示“Hello,world!”了. 大功告成!!!

总结:

a.tomcat跟jdk不知道什么时候会出现什么版本兼容问题,所以建议还是使用主流的版本,我测试通过的是tomcat6.x和jdk6;

b.对于测试用浏览器,开始使用chrom浏览器,报莫名其妙的错误,改用IE一点儿事没有,也着实郁闷一番;

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值