您的位置:首页 > 运维架构 > Tomcat

Eclipse工程Tomcat Project与Web Project小记

2015-07-24 10:48 501 查看
最近学习了一下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。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: