Tomcat配置和Web应用程序开发

引自友人blog: [url]http://blog.csdn.net/senton[/url]
◆tomcat是一个专门用于web服务的服务器软件.
1.运行 :
设置完毕后就可以运行tomcat服务器了,进入tomcat的bin目录,windows下用startup启动tomcat,相应的关闭tomcat的命令为shutdown和shutdown.sh。启动后可以在浏览器中输入[url]http://localhost:8080/[/url]测试。你可以测试其自带的jsp和servlet示例。
[url]http://www.it315.org/a.html[/url]
浏览器发给服务器的信息为:GET /a.html HTTP/1.1
服务器会去根目录下找a.html文件。此根目录是“TOMCAT安装目录\webapps\ROOT”。
如果/代表“C:\abc”
那么就去找C:\abc\a.html文件。
虚拟目录:
[url]http://www.it315.org/xxx/a.html[/url]
如果把上面的“/xxx”映射成了“d:\”
那么就去找D:\a.html文件。
127.0.0.1:代表本地
localhost:通常情况下配置为本地,实质上不是。可以在windows\system32\drivers\etc\hosts文件改。
[url]http://www.it315.org:8080[/url]会解析[url]www.it315.org[/url],首先把[url]www.it315.org[/url]在hosts里面所对应的IP地址,找不到再去 找dns
一个站点下可以有多个虚拟目录,每个虚拟目录就是一个独立的WEB应用程序。每个web应用程序都有自己的配置信息。
jar -cvf fileName.war 被打包的文件
jar -cvf fileName.war -C 被打包的文件夹 被打包的文件夹中的文件
servlet是被web服务器去调用的。
◆HTTP请求、响应和头信息:
1.客户端发送的请求消息为文本流,由以下内容组成:
请求行
包括方法、统一资源表示符、HTTP协议版本。
头信息
典型的请求消息类似以下内容:
GET image/bar01.jpg HTTP/1.1
User-Agent:Mozilla/4.0 (compatible;MSIE 4.0 : Windows 2000)
Accept:image/gif,image/jpeg,text/*,*/*
第一行使用GET方法获取bar01.jpg文件,并指定正在使用的是HTTP协议1.1版本,后续行包括头信息,User-Agent头指示客户端使用的浏览器,Accept头提供有关客户端可以接受的MIME类型列表,在头信息之后,客户端发送一个空白行,指示消息请求结束,如果有表单等内容则将表单内容作为实体在空白行后面一起提交。
2.请求消息由服务器经一步处理,并生成相应的相应消息,响应消息由以下元素组成:
状态行
头信息
实体内容(即网页中要显示的内容)
以下是一个典型的响应消息示例:
HTTP/1.1 200 OK
Server:JavaWebServer
Last-modified:Tuesday,07-Sep-04 1:14:34 GMT
Content-length:100
Content-type:text/plain
<html>
………………
………………
</html>
第一行为状态行,其中的状态码200表示已成功处理请求,因此描述为“OK”,404是找不到网页时常遇到的状态码,接下来一直到空白行之前都是头信息。包括服务器使用的软件,文件最后修改时间,长度及内容的类型等信息,空白行是实体内容。
     WEB应用程序:
基于java的WEB应用程序由Servlet、Jsp、图象、HTML、JavaBean、Applet等组成。要部署一个WEB应用程序一种简便的方法就是将所有与WEB应用程序关联的文件打包成一个.war文件,与Servlet规范兼容的所有Web容器都支持.war文件。
一个WEB应用程序都有一个顶层目录,一般由以下部分组成:
1. 静态文件:包括HTML文件和图象等。
2. JSP页面文件
3. WEB-INF文件夹:注意,该目录不能被引用。由以下部分组成:
     classes目录:Servlet类、JavaBean类和其他所有类文件。
     lib目录:包含WEB应用程序所需的所有.jar文件。例如数据库连接包等。
     tags目录:包含自定义标记提供实现的tag文件
     web.xml:Web应用的部署描述符文件。该文件包含有关WEB应用程序(如要显示的默认页、要加载的Servlet等)的元数据信息
     设置WEB站点的虚拟子目录:
1. 将本地计算机上C:\WebDemo目录映射成为web站点的/demo虚拟子目录可以如下配置:打开Tomcat安装目录/conf/server.xml文件,在<host>元素中间加上一行:
<Context path=”/demo” decBase=”C:\WebDemo” debug=”0”>
启动Tomcat,在IE地址栏中输入[url]http://127.0.0.1:8080/demo[/url]就能看到C:\WebDemo下面的所有文件了。例如此目录下有demo.html文件,单击它就能看到demo.html中的内容了。
2. 也可以使用jar命令将C:\WebDemo目录打包成C:\WebDemo.jar文件。步骤如下:
1) 启动命令行窗口,进入C:\WebDemo目录
2) 执行如下命令:jar –cvf WebDemo.war .
注意后面的点,它代表当前目录,上面的命令将C:\WebDemo中所有内容压缩成WebDemo.war文件,但不包含C:\WebDemo目录本身。
3) 将WebDemo.war移到Tomcat安装目录/webapps目录下,重启Tomcat,在IE地址栏中输入[url]http://127.0.0.1:8080/WebDemo[/url]就能看到C:\WebDemo下面的所有文件了。例如此目录下有demo.html文件,单击它就能看到demo.html中的内容了。
注意:此步骤在执行jar命令时如果此目录的WEB-INF文件夹中没有web.xml文件,Tomcat将使用默认的web.xml文件内容,如果有则以此web.xml文件为准,所以此web.xml文件必须书写正确(包括语法和配置)。
3. 也可以直接把C:\WebDemo拷到Tomcat安装目录/webapps目录下,但是必须有一个WEB-INF目录,如果WEB-INF目录下有web.xml文件,此web.xml文件必须书写正确(包括语法和配置)。
     下面是一个简单的servlet文件编写、编译、注册和运行的过程:
1.首先新建一个WebRoot目录,此目录下文件结构如下:
WebRoot
|—WEB-INF文件夹
|—classes文件夹
|            |-HelloServlet.class文件 
|-web.xml文件
2.编写一个servlet文件,示例代码如下:
//导入一些要用到的类
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//继承HttpServlet
public class HelloServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
//重写父类中的service方法
@Override
protected void service(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
//从HttpServletResponse中获得一个输出流
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<body>Hello World</body>");
out.println("</html>");
out.close();
}
}
3.编译(必须要把 Tomcat安装目录/common/lib/servlet-api.jar设置到classpath中),没错误后把HellpServlet.class放到上面的classes目录下。
4.写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
[url]http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd[/url]">
<!—注册servlet-->
<servlet>
<servlet-name>AnyName</servlet-name>―――――――――|
<servlet-class> HelloServlet</servlet-class>                             |            
</servlet>                                                                                    |名字
|必须
<!—指定映射到此servlet的url-->|一致
<servlet-mapping>                                                                        |
<servlet-name>AnyName</servlet-name>―――――――――|
<url-pattern>/demo/test.html</url-pattern>
</servlet-mapping>
</web-app>
5.运行,启动Tomcat,在IE栏中输入[url]http://127.0.0.1:8080/demo/test.html[/url]回车,
网页中显示出了HelloWorld,如果有错可能由于一下原因:Tomcat没启动,大小写有误等等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/467119.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

centos关闭防火墙

centos6.5 查看防火墙状态 &#xff1a; service iptable status 临时关闭防火墙 &#xff1a; servcie iptables stop 永久关闭防火墙 &#xff1a;chkconfig iptables off centos7 停止firewall&#xff1a; systemctl stop firewalld.service …

1024对话内核大神谢宝友

我看了CSDN的采访&#xff0c;感觉比较官方&#xff0c;不知道是不是编辑的原因把一些内容给隐藏了&#xff0c;所以我还是想完整的内容放出来给大家看看&#xff0c;这些问题&#xff0c;可能是很多后辈程序员非常关心的。今天是1024节&#xff0c;这个数字对于写在电脑前写代…

转义字符的应用

转义字符的应用 案列1&#xff1a;很多转义字符的作用是专门针对于打印机的,比如\b1、使用“Y”和“-”&#xff1b;2、打印Y&#xff0c;光标在Y后3、退格&#xff0c;这时光标落在Y字符处&#xff0c;由于是打印机&#xff0c;Y还是留了下来&#xff0c;就打出“”。案例2&am…

javascript 里Array的一些方法

1. join()方法&#xff1a;join()方法的用途是连接字符串值&#xff0c;join()方法只有一个参数&#xff0c;即数组项之间使用的字符串如&#xff1a;varaColors ["red","green","blue"];alert(aCloors.join("-"));//output "red…

链表_有序链表(给数组排序-应用)

//链结点 public class Link {public long dData;public Link next;public Link(long dd) {dDatadd; }public void displayLink() {System.out.print(dData" ");}} public class SortedList {private Link first;public SortedList(Link[] linkArr) {firstnull;fo…

很多人都不清楚HEX文件格式

Intel HEX文件是由一行行符合Intel HEX文件格式的文本所构成的ASCII文本文件。在Intel HEX文件中&#xff0c;每一行包含一个HEX记录。这些记录由对应机器语言码和/或常量数据的十六进制编码数字组成。Intel HEX文件通常用于传输将被存于ROM或者EPROM中的程序和数据。大多数EPR…

小学生算术

</pre><pre> 小学生算术 描述 很多小学生在学习加法时&#xff0c;发现“进位”特别容易出错。你的任务是计算两个三位数在相加时需要多少次进位。你编制的程序应当可以连续处理多组数据&#xff0c;直到输入两个0结束。 输入 输入两个正整数m和n.(m,n都是三位…

如何在asp.net中实现listbox item值上下移动?(转)

全部.net为&#xff1a;1 <form id"myform"runat"server">2 <div>3 <asp:ObjectDataSource ID"ObjectDataSource1"runat"server"OldValuesParameterFormatString"original_{0}"4 …

洛谷1345 [Usaco5.4]奶牛的电信

题目描述 农夫约翰的奶牛们喜欢通过电邮保持联系&#xff0c;于是她们建立了一个奶牛电脑网络&#xff0c;以便互相交流。这些机器用如下的方式发送电邮&#xff1a;如果存在一个由c台电脑组成的序列a1,a2,...,a(c)&#xff0c;且a1与a2相连&#xff0c;a2与a3相连&#xff0c;…

有意思,USB资料分享

前几天&#xff0c;有个同学在微信问我 「发哥&#xff0c;能不能给我分享一些USB的资料吗&#xff1f;」-- 然后就有了今天的文章。我对USB印象很深&#xff0c;源于两个事情第一件事情是&#xff0c;我有一个大学同学&#xff0c;他的名字里面有一个「发」字&#xff0c;我们…

在已经排好序的线性表中插入一个数,还是升序

在已经排好序的线性表中插入一个数&#xff0c;还是升序#include<stdio.h> #define Maxsize 100 typedef struct s {int elem[Maxsize];int last; }Seqlist; int Locate(Seqlist l,int e)//查找 {int i0;while(i<l.last&&l.elem[i]<e)i;if(il.last)return …

java学习笔记IO之字节输入输出流

IO字节输入输出流 OutputStream:字节输出流 该抽象类是所有字节输出流的超类&#xff1b; 定义了一些共性的成员方法&#xff1a; 1.写入一个字节 void write(int b);//b表示字节 2.写入字节数组 void write(byte[] b);//写入一个字节数组 3.写入字节数组的一部分 void write(…

firefox 和 ie 事件处理的细节,研究,再研究-----书写同时兼容ie和ff的事件处理代码...

在ie中&#xff0c;事件对象是作为一个全局变量来保存和维护的。 所有的浏览器事件,不管是用户触发 的&#xff0c;还是其他事件&#xff0c; 都会更新window.event 对象。 所以在代码中&#xff0c;只要轻松调用 window.event 就可以轻松获取 事件对象&#xff0c; 再 event.s…

不知道的,还以为是555牌香烟

你认为历史上最成功的芯片是什么&#xff1f;就是出货很多很多那种。Intel的酷睿系列&#xff1f;NO&#xff01;AMD&#xff1f;错&#xff01;别猜了&#xff0c;原来是它&#xff01;这就是电工的神器——555定时器&#xff0c;从诞生到现在&#xff0c;销量过百亿&#xff…

异形卵

【问题描述】 我们探索宇宙是想了解浩瀚星空的奥秘&#xff0c;我们却很少意识到宇宙深处藏匿的危险&#xff0c;他们无时无刻不紧盯着我们的地球。如果外星人拜访我们&#xff0c;结果可能与哥伦布当年踏足美洲大陆不会有什么两样&#xff0c;这是历史&#xff0c;也是现实。…

C语言书籍推荐

C语言书籍推荐 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的。 一、基础 1、《C语言入门很简单》 《零起点学通C语言&#xff08;多媒体范例教学&#xff09;》 《C语言从入门到精通》 2、《C程序设计语言 第2版新版》 《C程序设计语言&#xff08;第2版…

SQLServer技巧

-2.批量更新&#xff1a; UPDATE p_ProductTab SET PC4p.pc4 from (select productid030301102000,pc4423523 union all select productid030301102001,pc4sdgser) as pWHERE p_ProductTab.productidp.productid -1.保留2位小数 Convert(decimal(18,2),字段) 长度为18位&…

Linux操作寄存器前为什么要ioremap

1. 原因这里只考虑有 MMU 的芯片&#xff0c;Linux 为了实现进程虚拟地址空间&#xff0c;在启用 MMU 后&#xff0c;在内核中操作的都是虚拟地址&#xff0c;内核访问不到物理地址。如果在驱动里直接访问物理地址&#xff0c;等于访问了一个非法地址&#xff0c;会导致内核崩溃…

Loading页的实现代码

用了几种Loading页的代码&#xff0c;还是算这个好用了。真的佩服牛人们的思想。有的说用DIV来实现遮盖后面的东西&#xff0c;当FORM加载完后&#xff0c;执行CLOSE()d的JS函数。我试验了几次&#xff0c;效果不是那么好。也主要是由于我吧东西都放在我本地&#xff0c;感觉不…