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

Tomcat的安装及服务器的配置

2014-02-10 09:21 330 查看
1.WEB容器只是在动态WEB中才存在。



一个客户端现在使用的是一个WEB浏览器,之后通过网络提交到服务器端上去,随后在服务器端使用WEB服务插件进行接收,接收的时候如果请求的内容是静态请求,则将请求直接给了WEB服务器,之后WEB服务器从文件系统中取出用户所需要的内容,发送给用户,这就是一个回应的过程。

如果现在用户发来的请求是一个动态请求的话,那么则要将请求发给WEB容器处理,而且之前也已经强调过了,动态的内容并不是固定的,也就是说WEB容器本身是专门用来处理拼凑代码功能的。拼凑之后还是通过WEB服务器发还给客户端,WEB容器是可以连接数据库的。

问题:什么是动态请求?什么是静态请求?

回顾:之前的所有通过HTML、JAVASCRIPT编写的代码,包括XML代码都是可以直接在本地运行的,很明显,这种操作都是静态的,而动态的呢,CGI、ASP、PHP、JSP等,都是动态页面。

2.Tomcat简介

1).Tomcat 是Apache软件基金会的Jakarta项目中的一个核心项目;

2).Tomcat技术先进、性能稳定、而且免费;

3).是一个符合JAVA EE标准的最小的WEB容器;

4).直接从Apache下载:www.apache.org下载。

5).Tomcat是一个免费的WEB容器。

3.Tomcat需要JDK的支持,Tomcat本身确实非常的小,但是Tomcat运行时必须要指定所使用的JDK,但是有时候有可能一台电脑上会同时安装多个JDK,那么此时最方便的做法是通过一个JAVA_HOME来指定自己所需要的是哪一个JDK。

在进行安装的时候有一个特别需要注意的地方:防火墙必须关闭。



如果要连接数据库,则需要数据库的驱动程序,所有的数据库驱动程序都是以jar包的形式给出的。80端口是默认的端口。

修改服务器端口:可以直接修改conf/server.xml文件。修改Connector属性即可。

<Connector port="8080" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443" />

可将port字段修改为你需要的端口。

记住:在项目开发时,只要是与配置有关的XML文件一修改,服务器必须重新启动,因为只有重新启动之后才可以将新的配置文件读取出来。

4.虚拟目录的配置(核心重点)【项目的发布需要配置虚拟目录,所有的配置都在server.xml中完成】

在进行程序的项目开发中,往往会建立一个自己的文件夹保存所有的程序,但是,既然属于JAVA EE的WEB开发,很明显,现在如果要想让用户使用程序,必须依靠WEB容器的支持---Tomcat,所以要想让Tomcat找到这些程序,就必须配置虚拟目录了。

但是,一个虚拟目录本身是有严格要求的。

在虚拟目录所在的文件夹之中,必然包含WEB-INF/web.xml。

比较麻烦的是,现在的web.xml文件也是有严格要求的,可是要求你知道吗?

找到Tomcat的一个文件夹:*:\Tomcat\webapps\ROOT

此时,虚拟目录已经配置成功,但是此时有一个问题:Tomcat现在根本就不知道有这样的一个目录,所以还需要在配置文件中编写此目录的映射,从server.xml中更改。

要配置虚拟目录,只需要在server.xml的最下方,加入一行:

<Context path=”/mldn” docBase=”D:\mldnwebdemo”/>

Path表示的localhost后面的目录,即以后浏览器中输入的路径地址;而docBase表示的是映射到硬盘上的绝对路径,即此虚拟目录对应的真实路径,而且要注意的是此路径下必须要有一个WEB-INF的目录,而且必须要在第一级子文件夹之中。

配置完成之后,服务器同样需要重新启动。

HTTP错误的状态码:

1.404:表示的是路径错误,4XX表示的都是客户端的请求错误。

2.500:表示的是服务器错误,5XX表示的都是程序错误。

根据不同的版本,也许有的版本不会出现这种问题,而有的会出现,所以解决的方法是可以通过修改web.xml文件完成。 Conf/web.xml完成。

<servlet>

<servlet-name>default</servlet-name>

<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>

<init-param>

<param-name>debug</param-name>

<param-value>0</param-value>

</init-param>

<init-param>

<param-name>listings</param-name>

<param-value>true</param-value> //将false改为true。

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

5.下面编写一个页面,来看一看服务器的运行效果,之后将其定义成首页。

<html>

<head>

<title>www.baidu.com</title>

</head>

<body>

<h1>欢迎光临!</h1>

<h2>我是斜雨!</h2>

</body>

</html>

此时的文件的名称是index.xml,所以发现一旦运行服务器的路径:http://localhost/skewrain,则可以直接找到index.htm。原来index.xml就是服务器的首页,一旦输入虚拟目录之后,就可以直接调用此页面进行访问。如果将其改为其他名称,比如:a.xml,则会进入到一个目录,目录中有这个文件的列表,点击它,则可以进行访问。

如果希望更换首页,则必须了解首页的配置。【修改conf/web.xml文件的最下方】

<welcome-file-list>

<welcome-file>index.html</welcome-file>

<welcome-file>index.htm</welcome-file>

<welcome-file>index.jsp</welcome-file>

</welcome-file-list>

从此段代码可以看出,现在默认配置的首页是index.html、index.htm、index.jsp。所以之前的程序中,由于页面的名称是index.htm,所以就将其定义成首页。

如果想改,最好不要去修改公共的配置,而去修改每一个独立的虚拟目录中的配置。

<welcome-file-list>

<welcome-file>main.htm</welcome-file>

</welcome-file-list>

此时修改的是D:\org\WEB-INF\web.xml文件,修改之后服务器一定要重新启动,才能读取新的配置。

此时,只能算是基本上认识了服务器的配置,而且以上的几个配置也是很重要的。

6.下面编写第一个JSP文件,此文件的功能依然是输出“Hello World!”。

【JSP是嵌套在HTML代码中的JAVA程序。】

<html>

<head>

<title>www.baidu.com</title>

</head>

<body>

<%

out.println("<h1>Hello World!!!</h1>");

%>

</body>

</html>

out.println()的功能就是输出。

但是也可以发现一点,如果此时在一个JSP之中编写了大量的JAVA代码,则对于程序的可读性是很差的。当你在JSP文件之中看不到诸如“<%%>”之类的符号时,才算比较正式。



如果要想知道这些编译的过程,可以观察work目录。

JSP程序依然是通过class文件运行的。

第一次需要编译,而第二次不需要编译,可以直接使用了。

所以,每当改变页面文件(jsp文件)的时候,都会重新生成新的*.java和*.class文件。

那么,如果假设现在的电脑过慢,而导致文件无论怎么修改都不起作用的时候,就可以将这个work目录下的内容删除干净了。

7.动态WEB的最大特点是交互性,交互性依靠的是表单,所以下面观察一下如何让表单与服务器具有交互性。

定义表单:

<html>

<head>

<title>www.baidu.com</title>

</head>

<body>

<form action="input.jsp" method="post">

请输入要显示的内容:<input type="text" name="info">

<input type="submit" value="显示">

</form>

</body>

</html>

如果现在在input.jsp中要想接收请求的内容,则可以使用如下的方式,此方式返回的是字符串类型的数据:

request.getParameter(“参数名称”);———》返回String类型。

Input.jsp的内容如下所示:

<html>

<head>

<title>www.baidu.com</title>

</head>

<body>

<%

String str = request.getParameter("info");

out.println("<h1>"+str+"</h1>");

%>

</body>

</html>

进入:localhost:8888/skewrain目录下,点击input.htm的结果如下图所示:



输入“www.baidu.com”,点击“显示”按钮,产生的结果如下图所示:



但是有一点需要注意,这个程序由于存在了JSP,所以一定要有WEB容器的支持,那么就必须通过浏览器输入地址访问。

提醒:WEB容器的处理图中,我们发现,如果现在一个页面是静态页面,则处理速度会很快,而如果是动态页面,则肯定需要经过WEB容器处理,很明显,可以得出一个结论,能使用静态页面的就使用静态页面,因为速度快。如果一个JSP文件之中,一个java代码都没有,还是将其定义成HTML最方便。

对于request.getParameter()操作一定要掌握,因为需要使用它完成接收的操作。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: