Tomcat、Web入门

Tomcat

服务器软件的引入

web服务软件的作用就是把本地的资源共享给外部访问,安装有服务器软件的机器叫做Web服务器,Tomcat就是一个web服务器软件。

常见web服务软件:

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

下面模拟一个web服务功能:

import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * socket服务器端程序
 * @author APPle
 *
 */
public class Server {
    public static void main(String[] args) throws Exception {
        //1.创建ServerSocket
        ServerSocket server = new ServerSocket(8080);
        System.out.println("服务器已经启动成功....");
        while(true){
            //2.接收客户端的连接
            Socket socket = server.accept();
            //3.读取本地的test.html文件
            FileInputStream in = new FileInputStream(new File("e:/contact.xml"));

            //4.构建数据输出通道
            OutputStream out = socket.getOutputStream();

            //5.发送数据
            byte[] buf = new byte[1024];
            int len = 0;
            while( (len=in.read(buf))!=-1 ){
                out.write(buf, 0, len);
            }   
            //6.关闭资源
            out.close();
            in.close();
        }
    }
}

启动该程序,然后在浏览器中输入http://localhost:8080便可以在浏览器上输出信息。
程序:叫做服务端程序
浏览器:叫做客户端程序
这里服务端程序使用Java写的,而浏览器并不一定是Java写的,但是网络通信的原理最终会转成二进制代码来执行,因此与语言无关。

Tomcat的使用

1、到apache官网下载解压
2、启动

  • a)找到%tomcat%/bin/startup.bat ,双击这个文件
  • b)弹出窗口,显示信息(不要关闭次窗口)
  • c)打开浏览器,输出以下地址http://localhost:808
  • d)看到一只猫画面,证明软件启动成功!

3、关闭
- 找到%tomcat%/bin/shutdown.bat,双击这个文件即可!

安装Tomcat常出现的问题

闪退

  1. 原因:
    tomcat软件是java语言开发的。 tomcat软件启动时,会默认到系统的环境变量中查找一个名称叫JAVA_HOME的变量。这个变量的作用找到tomcat启动所需的jvm。
  2. 解决办法
    到环境变量中设置JAVA_HOME的变量

端口占用的错误

  1. 原因:
    tomcat启动所需的端口(默认是8080)被其他软件占用了!
  2. 解决办法
    第一种:关闭其他软件程序,释放所需端口
    第二种:修改tomcat软件所需端口
    找到并修改%tomcat%/conf/server.xml文件
<Connector port="8081" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />

Tomcat目录结构

Tomcat目录结构

更多Tomcat学习

请点我

web入门

静态资源和动态资源的区别

静态资源: 当用户多次访问这个资源,资源的源代码永远不会改变的资源。(用js页面改变但是html源码不会变,因此不是静态资源)
动态资源:当用户多次访问这个资源,资源的源代码会发生改变。

动态资源开发技术

Servlet : 用java语言来编写动态资源的开发技术。
Servlet特点:
1)普通的java类,继承HttpServlet类,覆盖doGet方法
2)Servlet类只能交给tomcat服务器运行!!!!(开发者自己不能运行!!!)

Tomcat支持一个web应用的默认目录

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

手动开发一个web应用

1、 编写一个servlet程序,继承HttpServlet

package gz.itcast.servlet;

import java.io.IOException;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * 第一个servlet程序
 * @author APPle
 *
 */
public class HelloServlet extends HttpServlet{//需要手动导入Tomcat的servlet.jar包,因为这是ee规范,se包里面没有这个类

    @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目录下。(将编译好的.class文件及其目录一起拷过去)

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服务器,运行访问http://localhost:8080/myweb/hello

web应用在Tomcat中的目录

工具开发

使用myeclipse创建如上的一个web工程如下:
myeclipse创建web工程
index.jsp直接删去即可

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值