1. 部署并启动 tomcat 服务器.
1). 解压 apache-tomcat-6.0.16.zip 到一个非中文目录下
2). 配置一个环境变量. java_home(指向 JDK 安装的根目录) 或 jre_home
3). 通过双击 apache-tomcat-6.0.16\bin 目录下的 startup.bat, 启动服务器
4). 可以在浏览器中输入 localhost:8080 来检验 Tomcat 安装是否正确.
5). 若已经启动了一个 Tomcat 应用, 若再启动同一个 Tomcat 应用, 会抛出异常:
java.net.BindException: Address already in use: JVM_Bind:8080
因为端口已经被占用了.

2. Tomcat: 开源的 Servlet 容器.

3. 可以通过修改 server.xml 文件中的配置信息来修改 Tomcat 服务器的端口号:

<Connector port="8989" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

把 port 的值改为其他的端口号即可.

4. 为了可以在任意目录下启动 Tomcat 服务器
4.1 把 D:\apache-tomcat-6.0.16\bin 添加到 path 下

添加成功后, 若在任意目录下通过 startup 启动 Tomcat 服务器, 会有提示:

The CATALINA_HOME environment variable is not defined correctly
This environment variable is needed to run this program

即: 要求设置 CATALINA_HOME 这个环境变量

5. 设置 CATALINA_HOME 环境变量:
5.1 通过阅读 startup.bat 批处理文件, 可知 CATALINA_HOME 环境变量下有一个 bin 目录,
而 bin 目录又有一个 catalina.bat 文件, 由此可知 CATALINA_HOME 指向的应该是 Tomcat
安装的根目录

于是把 Tomcat 的根目录设为 CATALINA_HOME 环境变量.

此时即可以在 任意 目录下通过 startup.bat、shutdown.bat 启动、关闭 Tomcat 服务器.

6. 继续阅读 startup.bat 文件, 发现启动 tomcat 服务器的是 catalina.bat 文件

在命令行窗口直接输入 catalina, 提示如下:

commands:
debug Start Catalina in a debugger
debug -security Debug Catalina with a security manager
jpda start Start Catalina under JPDA debugger
run Start Catalina in the current window
run -security Start in the current window with security manager
start Start Catalina in a separate window
start -security Start in a separate window with security manager
stop Stop Catalina
version What version of tomcat are you running?

catalina 命令有如上的可选参数.

run: 在 catalina 同一个命令行窗口下启动服务器.
start: 开启一个新窗口启动服务器
stop: 关闭服务器.

7. 第一个 WEB 应用程序: 开发, 并部署到 Tomcat 服务器下运行

1). 在 Eclipse 新建一个 Java Project
2). 在 Java 项目下创建 WEB 开发的目录结构

-WebContent
-WEB-INF
-classes (编译后的 class 文件必须放在该目录下.)
-lib
-web.xml (从 apache-tomcat-6.0.16\webapps\docs\WEB-INF 中复制过来,
可以不做修改)
html 页面
JSP 页面
图片...

3). 在 src 下新建一个 Person 类

package com.atguigu.test;

public class Person {

public String getPersonInfo(){
return "person info...";
}

}

4). 手工的 Person 类对应的 class 文件(含包)复制到 classes 目录下

可以通过修改默认的输出目录达到自动把编译好的 class 放到 classes 目录下:

5). 在 WebContent 目录下新建一个 JSP 文件:

<%@page import="com.atguigu.test.Person"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>

<%
Person person = new Person();
System.out.print(person.getPersonInfo());
%>

6). 把 WebContent 目录复制到 Tomcat 的 webapps 目录下, 并改名为: helloworld

7). 在浏览器的地址栏中输入: http://localhost:8989/helloworld/hello.jsp 即可
看到命令行的打印信息

8). 配置任意目录下的Web应用程序:
在 conf 目录下依次创建 catalina\localhost 目录,然后在 localhost 目录下为 test
这个Web应用程序建立 test.xml 文件,编辑这个文件输入以下内容

<?xml version="1.0" encoding="UTF-8"?>
<Context
docBase="E:\\Java\\Source\\atguigu\\java-1\\firstWebApp\\WebContent"
reloadable="true"/>

J2EE笔记2的更多相关文章

  1. J2EE笔记

    J2EE的优势 J2EE允许公司把一些通用的.很繁琐的服务端任务交给中间件供应商去完成.这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开发时间.高级中间件供应商提供以下这些复杂的中间件服务 ...

  2. J2EE笔记3

    7. MVC 设计模式. 6. 和属性相关的方法: 1). 方法 void setAttribute(String name, Object o): 设置属性 Object getAttribute( ...

  3. 从头学一次J2EE笔记

    1.在Servlet3.5规范之前,Java Web 应用的绝大部分组件都通过web.xml 文件来配置管理, Servlet3.0 规范可通过Annotation来配置管理Web组件,因此web.x ...

  4. J2EE进阶(一)随堂笔记

    进公司搞研发,基本上用的都是J2EE框架.若想在公司混个不错的地位,首先技术上必须过关.由于需求所致,自己学习了J2EE一段时间,主要是Struts2,MyBatis(Hibernate的前身),远远 ...

  5. J2EE学习笔记-第二章(Web应用初步)

    首先要理解一些概念的词语,到底这些是什么(当我读懂了后,会逐一填补完整,现在我真的有点混淆) web组件-相当于功能性的组件,就像是零件,汽车的轮胎,汽车的门,所有组件组合后,才能成为一辆车,有时候也 ...

  6. j2ee学习笔记 Filter过滤器

    作用:过滤response和request对象的内容 使用: Filter是J2EE的一个接口,自定义Filter需要实现该接口,并重写所有的方法. Filter提供的方法: init() doFil ...

  7. 23种设计模式+J2EE设计模式学习笔记-初识设计模式

    设计模式简介: 设计模式是一套被反复使用的.多数人知晓的.经过分类编目的.代码设计经验的总结.(个人理解:设计模式是不关乎业务,逻辑实现,针对普遍问题的一种解决方案). 设计模式的类型: 传统23种设 ...

  8. <J2EE学习笔记>关于Servlet的讲义

    题外话:接触java又是半年之前的事情了,当初好好学了java却把cpp给忘了,到现在又把手里发热的cpp给放下重新捡起来java,究竟这两种OOP语言我能不能清晰分开记住呢 以下全部课件来自于同济大 ...

  9. j2ee开发之Spring2.5框架学习笔记

    Spring 2.5框架学习笔记 1.是一个开源的控制反转IOC和面向切面AOP的容器框架 2.IOC控制反转 public class PersonServiceBean { private Per ...

随机推荐

  1. 泛函编程(16)-泛函状态-Functional State

    初接触泛函状态觉着很不习惯.主要是在使用State数据类型时很难理解其中的原理,特别是泛函状态变迁机制(state transition mechanism):怎么状态就起了变化,实在难以跟踪.我想这 ...

  2. ASP.NET检测到有潜在危险的 Request.Form 值解决方案汇总

    ASP.NET检测到有潜在危险的 Request.Form 值解决方案汇总 当我们在网站中使用CKEditor等富文本编辑器时,大多都会遇到这样的到警告 这是因为ASP.NET默认开启对页面提交内容的 ...

  3. HTML 5 中的标准属性

    HTML 全局属性 HTML 属性赋予元素意义和语境. 下面的全局属性可用于任何 HTML 元素. (5)= HTML5 中添加的属性. 属性 描述 accesskey 规定激活元素的快捷键. cla ...

  4. Ieditor

    Interfaces Description IActiveViewEvents (esriCarto) Provides access to events that occur when the s ...

  5. atitit.跨架构 bs cs解决方案. 自定义web服务器的实现方案 java .net jetty  HttpListener

    atitit.跨架构 bs cs解决方案. 自定义web服务器的实现方案 java .net jetty  HttpListener 1. 自定义web服务器的实现方案,基于原始socket vs   ...

  6. 通用javascript方法

    //将序列化成json格式后日期(毫秒数)转成日期格式 YYYY-MM-DD HH:MI:SS function ChangeDateFormat(cellval, type) { var date ...

  7. OC中结构体作为对象属性

    在OC中结构体有时候也作为对象的属性 类的定义 #import <Foundation/Foundation.h> typedef struct{ int year; int month; ...

  8. iOS学习笔记10-UIView动画

    上次学习了iOS学习笔记09-核心动画CoreAnimation,这次继续学习动画,上次使用的CoreAnimation很多人感觉使用起来很繁琐,有没有更加方便的动画效果实现呢?答案是有的,那就是UI ...

  9. CocoaPods的安装(图文并茂)OS X 10.11 系统

    这里是前言,可以跳过前言部分直接跳到后面"这里正式安装"开始看步骤: 系统:OS X EI Capitan 版本:10.11.2 开发工具:XCode:7.2 先给一个挺不错的关于 ...

  10. gradle研究

    gradle介绍:http://www.oschina.net/p/gradle gradle官网:https://gradle.org gradle的  eclipse 插件:http://www. ...