Eclipse工程Tomcat Project与Web Project小记

最近学习了一下Servlet,在eclipse下搭建了Apache Tomcat,然后被Web项目和Tomcat项目给搞混淆了,经过多次测试后终于弄懂了一点点,顺便记录一下。这里只是粗略记录一下Tomcat的配置与Tomcat和Web的创建过程,详细的例子和代码写法度娘吧
一、基本概念
环境:
eclipse,
jdk,
tomcat

Tomcat是Servlet容器,同时也是轻量级的Web服务器。这是它的两个身份!
Apache Server、Microsoft IIS、Apache Tomcat都是Web服务器。
Tomcat作为Web服务器时,主要负责实现HTTP传输等工作。
tomcat作为Servlet容器时,主要负责解析Request,生成ServletRequest、ServletResponse,将其传给相应的Servlet(调用service( )方法),再将Servlet的相应结果返回。
在Servlet规范中,把能够发布和运行JavaWeb应用的Web服务器称为Servlet容器,他的最主要特称是动态执行JavaWeb应用中的Servlet实现类中的程序代码。

Servlet与Tomcat的区别与联系:
1.servlet的命名:server+applet
Servlet的框架是由两个Java包组成的:javax.servlet与javax.servlet.http。
在javax.servlet包中定义了所有的Servlet类都必须实现或者扩展的通用接口和类。
在javax.servlet.http包中定义了采用Http协议通信的HttpServlet类

2.Tomcat
它实现了servlet API.也就是说,它的内部,定义了servlet中接口的实现类,并且在它运行时,将一些实现类自动地实例化。Tomcat 是Web应用服务器,是一个Servlet/JSP容器.Tomcat 作为Servlet容器,
负责处理客户请求,把请求传送给Servlet,并将Servlet的响应传送回给客户.而Servlet是一种运行在支持Java语言的服务器上的组件. Servlet最常见的用途是扩展Java Web服务器功能,提供非常安全的,可移植的,易于使用的CGI替代品。
它的处理流程如下:
1、Web客户向Servlet容器(Tomcat)发出Http请求
2、Servlet容器分析客户的请求信息
3、Servlet容器创建一个HttpRequest对象,将客户请求的信息封装到这个对象中
4、Servlet容器创建一个HttpResponse对象
5、Servlet容器调用HttpServlet对象的service方法,把HttpRequest对象与HttpResponse对象作为参数
传给 HttpServlet对象
6、HttpServlet调用HttpRequest对象的有关方法,获取Http请求信息
7、HttpServlet调用HttpResponse对象的有关方法,生成响应数据
8、Servlet容器把HttpServlet的响应结果传给Web客户

二、Tomcat的配置和工程的创建
1.下载Tomcat:http://tomcat.apache.org/download-80.cgi
2.Eclipse配置Tomcat:tomcat是可以独立在后台运行的,linux下终端相应路径下**/tomcat/bin/startup.sh即可启动。
eclipse下配置默认是已经配置好jdk环境的,eclipse->windows->preferences->左边server->tuntime environment,右边点击add
这里写图片描述
选择对应版本的Tomcat,点击next
这里写图片描述

Tomcat installation directory选择下载的Tomcat的路径,finish,OK即可。
返回eclipse在菜单栏有Tomcat选项,工具栏有三个tomcat的图标分别表示Start,Stop,Restart选项。点击start即可在console开到tomcat的启动信息,至此Tomcat配置成功,如下图。
这里写图片描述

3.TomcatProject创建:File->New->Project->Java下的Tomcat Project->Next->输入ProjectName->Finish
这里写图片描述
右键工程,new->class->继承HttpServlet类,然后重写doGet和doPost方法(sourse->override/implement…),有可能HttpServlet不能import,则需要自己下载java.servlet的jar包再导入。
这里写图片描述
在java类中写代码:

package com.wandou;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

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

/**
 *Title:
 *@author 豌豆先生 jitsiang@163.com
 *@date 2015年7月22日
 *@version 
 */
//如果用注解的话就不需要在web.xml文件中配置了
//@WebServlet(name = "ServletDemo", urlPatterns = {"/ServletDemo"})

public class ServletDemo extends HttpServlet {
    private static final long serialVersionUID = 382354197754278695L;  

    @Override  
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)  
            throws ServletException, IOException {  

         Map<String,String> data = getData();

        String username = req.getParameter("username");
        String password = req.getParameter("password");
    //  boolean success = validateUser(username, password);

        resp.setContentType("text/html;charset=UTF-8");  
        PrintWriter out = resp.getWriter();  
        out.println("<html><head>");  
        out.println("<title>First Servlet Hello</title>");  
        out.println("</head><body>");  
        out.println("Hello!Servlet!");  
        out.println("<h2>Hello " + data.get("username") + ", " + data.get("message") + "</h2>");
        out.println("<h2>The time right now is : " + new Date() + "</h2>");
        out.println("</body></html>");  
        out.close();  

        super.doGet(req, resp);  
    }  
    //This method will access some external system as database to get user name, and his personalized message
    private Map<String, String> getData()
    {
        Map<String, String> data = new HashMap<String, String>();
        data.put("username", "Guest");
        data.put("message",  "Welcome to my world !!");
        return data;
    }
}

在WEB-INF目录下新建web.xml文件

<?xml version="1.0" encoding="UTF-8"?>  
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"  
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  

    <servlet>  
        <servlet-name>Servlet</servlet-name>  
        <servlet-class>com.wandou.ServletDemo</servlet-class>  
        <load-on-startup>0</load-on-startup>  
    </servlet>  
    <servlet-mapping>  
        <servlet-name>Servlet</servlet-name>  
        <url-pattern>/show</url-pattern>  
    </servlet-mapping>  
</web-app>

工程文件结构:
这里写图片描述

在浏览器输入:http://localhost:8080/WebDemo即可得到输出(注意:保证Tomcat运行)
这里写图片描述

至此,Tomcat工程演示成功,Tomcat Project是不能Run as ->Run on Server的。

三、Web项目创建与实例
Web项目直接新建Dynamic Web Project,然后工程右键新建other->web下的Servlet,选择默认重写方法doGet和doPost

这里写图片描述
这里写图片描述

其他.java程序和web.xml文件和tomcat project一样,Web Project项目可以run as -> run on server
这就是Tomcat Project和web Project的区别。,配置Apache Tomcat如下图,后可以自动启动Tomcat,如果server下没有Tomcat则需要选择Manuall define a new server添加新的tomcat。

这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值