Tomcat服务器

概述

不论是我们一开始做的java桌面程序、控制台程序以及socket gui界面程序(这个我还没学),都是服从Javase规范的。接下来我们要学习的将是Javaweb程序,服从javaee规范。
目前的软件有两种,一是C/S(客户端—服务器)模式,向像我们常用的QQ这一类的软件,这类软件要求我们必须下载客户端,而且还随着服务器的迭代而升级。另外一种就是B/S(浏览器–服务器)模式,比如你现在浏览的CSDN我的博客,也就是大多数的网站都是这种模式的,所以我们只需要有一个浏览器就行了。而且有一个和C/S程序相反的优点,就是我们不必在服务器升级之后升级浏览器了。
Javaweb的程序就是B/S结构的。

服务器端

什么是服务器?

  • 从物理的概念上来讲,服务器就是一台PC机,但是配置相对较高

  • 具有什么功能的服务器就称作什么服务器,比如邮件服务器,web服务器

web服务软件

web服务软件的作用

作用:把本地资源共享给外部进行访问

网络通讯的基础

网络通讯的基础是:网络通讯的数据和具体的开发语言无关

常见的web服务器

WebLogic: BEA公司的产品       收费   支持JavaEE规范。
WebSphere: IBM公司的产品     收费   支持JavaEE规范
JBoss: Redhat公司的产品       收费的  支持JavaEE规范
Tomcat: 开源组织Apache的产品  免费   支持部分的JavaEE规范。(支持servlet、jsp、jdbc,但ejb, rmi不支持)

Tomcat

中小型软件开发,用Tomcat足够我们使用了,而且还是免费的。
下载安装完成Tomcat后,我们来学习一下如何启动和关闭Tomcat。

1.启动:
%tomcat%/bin/startup.bat,双击启动,在浏览器中输入http://localhost:8080时出现Tomcat(一只猫)的画面。启动成功。
2.关闭:
%tomcat%/bin/shutdown.bat双击关闭

常见的问题

  • 闪退
tomcat软件是java语言开发的。,tomcat软件启动时,会默认到系统的环境变量中查找JAVA_HOME的变量。这个变量的作用是找到tomcat启动所需的jvm
解决办法; 到环境变量中设置JAVA_HOME的变量JAVA_HOME= C:Program FilesJavajdk-xxx(注意不要配置到bin目录下)
  • 端口占用的错误
原因: tomcat启动所需的端口被其他软件占用了
解决办法: 
    a)关闭其他软件程序,释放所需端口
    b)修改tomcat软件所需端口
       找到并修改%tomcat%/conf/server.xml文件
        <Connector port="8081" protocol="HTTP/1.1" 
          connectionTimeout="20000" 
          redirectPort="8443" />
  • CATALINA环境变量问题
原因: tomcat软件启动后,除了查找JAVA_HOME后,还会再查找一个叫CATALINA_HOME变量,这个变量的作用是设置tomcat的根目录,不配置的话自动找到原本的目录
解决办法:建议不要设置CATALINA_HOME变量。检查如果有的话,清除掉

webapps
如果你想了解一下Tomcat的使用,那么你就可以将需要共享到网络上的资源文件放在webapps文件夹中(一个文件不能共享,必须将文件放进一个文件夹中)

Tomcat目录结构

|-bin: 存放tomcat的命令。
    catalina.bat 命令:
        startup.bat  -> catalina.bat start  
        shutdown.bat - > catalina.bat stop
|- conf: 存放tomcat的配置信息。其中server.xml文件是核心的配置文件
|-lib:支持tomcat软件运行的jar包。其中还有技术支持包,如servlet,jsp
|-logs:运行过程的日志信息
|-temp: 临时目录
|-webapps: 共享资源目录。web应用目录。(注意不能以单独的文件进行共享)
|-work: tomcat的运行目录。jsp运行时产生的临时文件就存放在这里

Web应用的目录结构

|- WebRoot :   web应用的根目录
    |- 静态资源(html+css+js+image+vedio)
    |- WEB-INF : 固定写法。
        |-classes: (可选)固定写法。存放class字节码文件
        |-lib: (可选)固定写法。存放jar包文件。
        |-web.xml    

注意:
    1)WEB-INF目录里面的资源不能通过浏览器直接访问
    2)如果希望访问到WEB-INF里面的资源,就必须把资源配置到web.xml的文件中

开发动态资源

  • 静态资源:当用户多次访问这个资源,资源的源代码永远不会改变的资源
  • 动态资源:当用户多次访问这个资源,资源的源代码可能会发生改变的资源

动态资源开发技术

  • Servlet : 用java语言来编写动态资源的开发技术
    特点:
1)普通的java类,继承HttpServlet类,覆盖doGet方法
2)Servlet类只能交给tomcat服务器运行(开发者自己不能运行)(重要)
  • 手动编写步骤
//1)编写一个servlet程序,继承HttpServlet
public class HelloServlet extends HttpServlet{

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        //解决中文乱码问题
        resp.setContentType("text/html;charset=utf-8");
        //向浏览器输出内容
        resp.getWriter().write("这是第一个servlet程序。当前时间为:"+new Date());
    }
}
//2)找到HelloServlet类的class字节码,然后把拷贝到tomcat的一个web应用中WEB-INF/classes目录下
//3)在当前web应用下的web.xml文件配置Servlet
<!-- 配置一个servlet程序 -->
    <servlet>
        <!-- servlet的内部名称 ,可以自定义-->
        <servlet-name>HelloServlet</servlet-name>
        <!-- servlet类名: 包名+简单类名-->
        <servlet-class>gz.itcast.d_servlet.HelloServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <!-- servlet的内部名称,和上面的名称保持一致!!!-->
        <servlet-name>HelloServlet</servlet-name>
        <!-- servlet的访问名称: /名称 -->
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
//(4)启动tomcat服务器,运行访问
    访问servlet:  http://localhost:8080/myapps/hello
  • 工具开发步骤(Myeclipse)
1)创建web project (javaweb工程)
2)在WebRoot下建立静态资源文件,
3)在src下建立动态资源文件
      3.1 new -> Servlet( servlet的代码生成器)
      3.2 写pacakge  -> class名 -> 修改mapping  url 
4)关联tomcat服务器
    4.1 window-> Preferences - > MyEcplise -> servers -> Tomcat 6.x (注意一定要enable)

5)部署web project应用。(拷贝web应用到tomcat的webapps目录下)
6)启动tomcat服务器
7)访问servlet         

下面这个链接是用idea创建Javaweb项目的过程:IntelliJ IDEA 创建Web项目(全教程)

原文地址:https://www.cnblogs.com/roobtyan/p/9576718.html