1.Tomcat

  我们的浏览器其实就是一个Socket客户端能接受Socket服务端发来的消息

  一:市面上的web服务器

    javase的规范,包含IO流,线程,集合,socket编程。。。。

    WebLogic: BEA公司的产品。 收费的。支持JavaEE规范。

    WebSphere: IBM公司的产品。收费的。支持JavaEE规范

    JBoss: Redhat公司的产品。收费的。支持JavaEE规范

    Tomcat: 开源组织Apache的产品。免费的。支持部分的JavaEE规范。(servlet、jsp。jdbc,但 ejb, rmi不支持)

  二:基本使用

    (一)下载并安装

        1)下载:apache官网。www.apache.org     http://jakarta.apache.org(产品的主页)

        2)安装版:window (exe、msi) linux(rmp)

          压缩版:window(rar,zip) linux(tar,tar.gz)学习时候使用

        3)运行关闭Tomcat

          3.1 启动软件

            a)找到%tomcat%/bin/startup.bat ,双击这个文件

            b)弹出窗口,显示信息(不要关闭次窗口)

            c)打开浏览器,输出以下地址:http://localhost:8080

            d)看到一只猫画面,证明软件启动成功!

          3.3 关闭软件

          a)找到%tomcat%/bin/shutdown.bat,双击这个文件即可!

          b)打开浏览器,输出以下地址。看到“无法连接”(最好先清空浏览器缓存)

    (二)常见问题

      1)闪退问题

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

        解决办法; 到环境变量中设置JAVA_HOME的变量

        JAVA_HOME= C:\Program Files\Java\jdk1.6.0_30  (注意别配置到bin目录下)

      2)端口占用的错误

        原因: tomcat启动所需的端口被其他软件占用了!

        解决办法:

          a)关闭其他软件程序,释放所需端口

          b)修改tomcat软件所需端口

         找到并修改%tomcat%/conf/server.xml文件

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

connectionTimeout="20000"

redirectPort="8443" />

      3)CATALINA环境变量问题

        原因: tomcat软件启动后,除了查找JAVA_HOME后,还会再查找一个叫CATALINA_HOME变量,这个变量的作用是设置tomcat的根目录。

        解决办法:建议不要设置CATALINA_HOME变量。检查如果有的话,清除掉!!!

      4)使用:将文件放在webapps文件夹下就可以了:http://localhost:8081/myweb/test.html

  三:目录结构

    |-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语音来编写动态开发技术

    Servlet特点:

      1)普通的java类继承HttpServlet类,覆盖doGet方法

      2)Serlet类只能交给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>

   六:工具开发动态资源

    1)创建web project()

添加java应用的文件夹一般就是src不用改-》Context root->Content directory

建好后的Web Project

给eclicpse配置Tomcat

Window->Preferences->->Server->Runtime Environment-》添加想要的文件

将新建好的项目配置到Tomcat的webapps目录下

右键Tomcat Server->Open->Server Location选择第二个Use Tomcat installation修改Deploy path位置到webapps下就可以了

注意:如果Server Location是灰的看不了,就先将Server下的发布的项目移除

java深入探究03的更多相关文章

  1. Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例

    java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java ...

  2. Java泛型解析(03):虚拟机运行泛型代码

    Java泛型解析(03):虚拟机运行泛型代码      Java虚拟机是不存在泛型类型对象的,全部的对象都属于普通类,甚至在泛型实现的早起版本号中,可以将使用泛型的程序编译为在1.0虚拟机上可以执行的 ...

  3. java io系列03之 ByteArrayOutputStream的简介,源码分析和示例(包括OutputStream)

    前面学习ByteArrayInputStream,了解了“输入流”.接下来,我们学习与ByteArrayInputStream相对应的输出流,即ByteArrayOutputStream.本章,我们会 ...

  4. JAVA自学作业03

    JAVA自学作业03 1.请用最有效率的方式计算2*8的结果 使用位运算是最有效率的. System.out.println(2<<3); 2.请交换两整数的值 int x = 10; i ...

  5. Java自动化测试框架-03 - TestNG之Test Group篇 - 我们一起组团打怪升级(详细教程)

    简介 其实这篇文章的group宏哥在上一篇中就提到过,但是就是举例一笔带过的,因此今天专门有一篇文章来讲解Group的相关知识.希望大家茅塞顿开 ,有着更进一步认识和了解测试组. 一.Test Gro ...

  6. 086 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 03 面向对象基础总结 01 面向对象基础(类和对象)总结

    086 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 03 面向对象基础总结 01 面向对象基础(类和对象)总结 本文知识点:面向对象基础(类和对象)总结 说明 ...

  7. 056 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 03 一维数组的应用

    056 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 03 一维数组的应用 本文知识点:数组的实际应用 程序开发中如何应用数组? 程序代码及其运行结果: 不同数据类 ...

  8. 033 01 Android 零基础入门 01 Java基础语法 03 Java运算符 13 运算符和表达式知识点总结

    033 01 Android 零基础入门 01 Java基础语法 03 Java运算符 13 运算符和表达式知识点总结 本文知识点:运算符和表达式知识点总结 前面学习的几篇文都是运算符和表达式相关的知 ...

  9. 032 01 Android 零基础入门 01 Java基础语法 03 Java运算符 12 运算符和if-else条件语句的综合案例——闰年问题

    032 01 Android 零基础入门 01 Java基础语法 03 Java运算符 12 运算符和if-else条件语句的综合案例--闰年问题 本文知识点:运算符和if-else条件语句的综合案例 ...

随机推荐

  1. Mqtt协议IOS端移植2

    MqttFramework.h #import <Foundation/Foundation.h> #import "MQTTClient.h" #import &qu ...

  2. 从头认识Spring-1.15 对SpEl的值的操作(1)-数值运算

    这一章节我们来讨论一下对SpEl的值的运算. 1.domain 烤炉类:(不变) package com.raylee.my_new_spring.my_new_spring.ch01.topic_1 ...

  3. ApplicationContextRunner如何简化自动配置测试

    1. 概览 众所周知,自动配置是Spring Boot的关键功能之一, 但测试自动配置可能会很棘手. 在以下部分中,我们将展示ApplicationContextRunner如何简化自动配置测试. 2 ...

  4. JavaScript_DOM编程艺术第二版[阅]

    前两年迫于项目的需要,只是拿来JQuery用到项目中,并没有实质上理解javascript(貌似其他人也是这么干的)~ 随着最近几年,得益于Nodejs, React, Vue等,javascript ...

  5. Android学生管理系统

    现在要做这么一个小的demo,可以添加.展示,并且在添加完了之后刷新列表内容. 要点: 在代码中给线性布局添加View 让控件滚动,放到ScrollView中 保存数据就是把数据保存到本地,然后恢复的 ...

  6. C语言中的main函数以及main函数是如何被调用的

    main函数是C语言中比较特殊的函数,C程序总是从main函数开始执行,main函数的原型是: int main(int argc, char *argv[]); 其中argc是命令行参数的个数,ar ...

  7. ubuntu 下使用polipo转换HTTP代理

    ***默认是用Socks5协议的,对于Terminal的get,wget等走http协议的地方是无能为力的,所以需要转换成http代理,加强通用性,这里使用的转换方法是基于Polipo的. sudo ...

  8. Teradata架构

    Teradata在整体上是按Shared Nothing 架构体系进行组织的,他的定位就是大型数据仓库系统,定位比较高,他的软硬件都是NCR自己的,其他的都不识别:所以一般的企业用不起,价格很贵.由于 ...

  9. centOS6.2 最小安装下的无线网络配置

    一.安装wireless_tools,http://www.linuxfromscratch.org/blfs/view/svn/basicnet/wireless_tools.html 二.vi / ...

  10. Python 基本数据类型和序列类型

    python 3.6.4 中,有9种数据类型: int, float, bool, complex, list, tuple, string, set, dict (1).int 整型,不可变 (2) ...