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. 【问题记录】mysql设置任意ip访问

    # 给username用户授予可以用任意IP带密码password访问数据库 GRANT ALL PRIVILEGES ON *.* TO 'username'@'%'IDENTIFIED BY 'p ...

  2. Swift中文教程(七)--协议,扩展和泛型

    Protocols and Extensions 协议(接口)和扩展 Swift使用关键字protocol声明一个协议(接口): 类(classes),枚举(enumerations)和结构(stru ...

  3. asp.net web.config配置节说明

    web.config 文件查找规则:      (1)如果在当前页面所在目录下存在web.config文件,查看是否存在所要查找的结点名称,如果存在返回结果并停止查找.      (2)如果当前页面所 ...

  4. iOS左滑手势失效

    iOS7之后,苹果优化了一个小功能,就是对于UINavagationController堆栈里的UIViewController,只要轻轻在视图控制器的左边缘右滑一下,该视图控制器就会pop出栈(前提 ...

  5. 安装SQLserver 2014(For AlwaysOn)

    SQLserver 2014 AlwaysOn在SQLserver 2012的基础之上,进行了非常大程度的添加.如能够通过"加入 Azure 副本向导"简化了用于 AlwaysOn ...

  6. DB2 中like的通配符以及escape关键字定义转义字符的使用

    DB2 LIKE谓词查询语句中支持 百分号(%).下划线(_)的使用,不支持方括号([])(注:它会把方括号当成实际的值而非通配符),当我们需要在LIKE 查询条件中将百分号(%).下划线(_)作为实 ...

  7. 解决:Adb connection Error:远程主机强迫关闭了一个现有的连接

    最近刚入手了一台G12,用它来调试程序的时候,eclipse的console总是出现如下的错误“Adb connection Error:远程主机强迫关闭了一个现有的连接” 问题出现的原因:这是ddm ...

  8. iOS --创建文件夹 ,删除文件夹

    //创建文件夹 --> 返回 文件夹 - (NSString *)pathToPatientPhotoFolder { NSString *documentsDirectory = [NSSea ...

  9. Laravel开发:Laravel核心——Ioc服务容器

    服务容器 在说 Ioc 容器之前,我们需要了解什么是 Ioc 容器. Laravel 服务容器是一个用于管理类依赖和执行依赖注入的强大工具. 在理解这句话之前,我们需要先了解一下服务容器的来龙去脉:  ...

  10. Android JNI开发之NDK环境搭建

    参考:http://www.cnblogs.com/yejiurui/p/3476565.html 谷歌改良了ndk的开发流程,对于Windows环境下NDK的开发,如果使用的NDK是r7之前的版本, ...