tomcat 服务器快速使用
Apache官网下载Tomcat服务器软件:解压版与安装版!
Tomcat目录结构
一级目录 | 文件 | 作用 |
---|---|---|
bin | 可执行文件的存放目录 | |
startup.bat | 启动文件 启动时候会加载bootstrap.jar |
|
shutdown.bat | 关闭 | |
conf | 存放服务器自身配置的目录 | |
Web.xml | 项目部署描述配置文件, 描述项目的 | |
server.xml | 服务器端口配置、部署项目的维护都在此文件修改! 服务器自身配置文件,通常不建议修改! |
|
lib | 存放所有jar文件 Tomcat服务器,web服务器,servlet服务器 servlet-api.jar |
|
logs | 日志 | |
webapps | 存放所有项目的目录! | |
work | jsp的工作目录 |
解压版本,使用步骤:
- 解压
- 发布网站资源:在%tomcat%\webapps目录下新建文件夹mysite,index.html放在该文件夹下
- 启动服务器 %tomcat%\bin\startup.bat 文件
- 访问:http://localhost:8080/mysite/index.html
常见错误
启动一闪而过
错误内容:
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program
解决:
配置环境变量:我的电脑→右键属性→高级→环境变量→新建JAVA_HOME=本机jdk安装目录
端口占用
错误内容:java.net.BindException: Address already in use: JVM_Bind:8080
严重: StandardServer.await: create[8005]:
java.net.BindException: Address already in use: JVM_Bind
解决:
修改占用端口!
<Server port="8025" shutdown="SHUTDOWN">
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
8090 为访问的端口,此时访问应该这样:
http://localhost:8090/a/1.txt
Tomcat发布项目的方式
使用虚拟路径发布项目:修改server.xml文件
如果希望Tomcat服务器,管理非webapps目录下的资源,可以使用虚拟路径。
项目路径:C:\myprj
修改配置文件,server.xml:
在Host节点下,新增子节点:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path=”/xxx 虚拟路径” docBase=”虚拟路径映射的项目绝对路径” />
</Host>
访问:
http://localhost:8080/xxx/1.html 项目资源
通过修改服务器配置的方式,发布项目,合适吗?
- 需要重启
- 修改服务器配置,不便于服务器的维护!
(推荐使用) 通过新增一个*.xml文件,实现虚拟路径发布项目
项目路径:C:\myprj
发布方式:
新建一个xml文件: %tomcat%\conf\catalina\localhost\abc.xml
(需要新建catalina与localhost目录)
访问:
http://localhost:8080/xxx/1.html 项目资源
好处:
- 没有修改服务器自身的配置来实现项目的发布
- 发布后不需要重启;(开闭原则)
发布多个网站
现在访问:http://localhost:8080/day08/1.html
希望访问的网站是:http://www.123456.com
配置多个网站的步骤:
1.修改server.xml文件,增加Host节点
// name="localhost" 指定网站的名称
// appBase=" C:\my_webapps " 指定站点目录
<Host name="www.123456.com" appBase=" C:\my_webapps "
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
2.新建一个网站的站点目录:
C:\my_webapps
3.配置www.123456.com域名映射到本地ip
路径:
C:\WINDOWS\system32\drivers\etc\hosts
增加内容:
127.0.0.1 www.123456.com
4.访问,测试:
http://www.123456.com:8080/day08/1.html
相关知识
URL 详解
通过URL访问服务器:
http://localhost:8080/mysite/page/1.html
字段 | 解析 |
---|---|
http | 通讯协议,浏览器与服务器之间通讯默认使用http协议! |
:// | 分隔符 |
localhost |
域名 本机域名 localhost, 免费 非本机域名 www.itcast.cn, 收费 IP 本机IP 127.0.01.1 局域网IP: 192.168.10.251 域名与IP的映射:本机解析,DNS域名解析服务器 |
8080 | 端口号,8080是Tomcat服务器默认端口! 常用端口: 80:http协议默认的端口! 8080:tomcat默认 21:ftp协议端口 3306:mysql数据库默认端口 1521:oracle数据库默认端口 |
/mysite/page/1.html | 资源路径,相对于目录%tomcat%\webapps\下 |
查看本地ip地址
开始>运行>输入cmd>输入ipconfig
1.web开发能做什么
1.1软件的类型
C/S结构的软件:
如:贪吃蛇、基于控制台的项目
B/S(borwser / Server)结构的软件:
比如:打卡应用、员工考核系统(KPI)、OA系统。
比如:高考报考系统, 京东商城、 淘宝网、 OA办公自动化系统、电子商城, 银行系统。
1.2web资源的类别
Internet上供外界访问的Web资源分为:静态资源、动态资源
静态web资源开发技术:Html、 javascript 、 css.
常用动态web资源开发技术:JSP/Servlet、ASP、PHP等
在Java中,动态web资源开发技术统称为Javaweb。
Web开发首先必须要准备一台服务器把本地资源提供给外界访问。
2.服务器
2.1什么是服务器?
服务器就是一个应用程序,该应用程序可以把本地的资源提供给外界访问。
2.2自定义一个服务器
public static void main(String[] args) throws Exception {
// 服务端
ServerSocket server = new ServerSocket(9000);
// 等待用户连接
Socket socket = server.accept();
// 文件输入流
InputStream in = new FileInputStream("E:\\site\\1.html");
// 输出流
OutputStream out = socket.getOutputStream();
byte[] b = new byte[1024];
int len = -1;
while ((len = in.read(b)) != -1) {
out.write(b,0,len);
}
in.close();
socket.close();
}
2.3常见的服务器
1. WebLogic
- WebLogic是Oracle公司的产品,是目前应用最广泛的Web服务器,支持J2EE规范
- WebLogic最早由 WebLogic Inc. 开发,后并入BEA 公司,最终BEA公司又并入 Oracle公司
- BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应 用的Java应用服务器。
但是。
收费:
现在的weblogic是按照服务器的CPU个数来卖的(有时候CPU功率太强大的话,单个CPU也会被算做两个CPU,具体的要到时候看了),一般来说单个CPU的weblogic集群版是卖37500美金. 一般的应用一年10w左右块。
J2EE的13种核心技术
一、JDBC(Java Database Connectivity)
JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题,另外,JDBC对数据库的访问也具有平台无关性。
二、JNDI(Java Name and Directory Interface)
JNDI API被用于执行名字和目录服务。它提供了一致的模型来存取和操作企业级的资源如DNS和LDAP,本地文件系统,或应用服务器中的对象。
三、EJB(Enterprise JavaBean)
J2EE技术之所以赢得媒体广泛重视的原因之一就是EJB。它们提供了一个框架来开发和实施分布式商务逻辑,由此很显著地简化了具有可伸缩性和高度复杂的企业级应用的开发。EJB规范定义了EJB组件在何时如何与它们的容器进行交互作用。容器负责提供公用的服务,例如目录服务、事务管理、安全性、资源缓冲池以及容错性。但这里值得注意的是,EJB并不是实现J2EE的唯一途径。正是由于J2EE的开放性,使得有的厂商能够以一种和EJB平行的方式来达到同样的目的。
四、RMI(Remote Method Invoke)
调用远程对象上的方法。它使用了序列化方式在客户端和服务器端传递数据。RMI是一种被EJB使用的更底层的协议。
五、Java IDL/CORBA
在Java IDL的支持下,开发人员可以将Java和CORBA集成在一起。他们可以创建Java对象并使之可在CORBA ORB中展开,或者他们还可以创建Java类并作为和其它ORB一起展开的CORBA对象的客户。后一种方法提供了另外一种途径,通过它Java可以被用于将你的新的应用和旧的系统相集成。
六、JSP(Java Server Pages)
JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
七、Java Servlet
Servlet是一种小型的Java程序,它扩展了Web服务器的功能。作为一种服务器端的应用,当被请求时开始执行,这和CGI Perl脚本很相似。Servlet提供的功能大多与JSP类似,不过实现的方式不同。JSP通常是大多数HTML代码中嵌入少量的Java代码,而servlets全部由Java写成并且生成HTML。
八、XML(Extensible Markup Language)
XML是一种可以用来定义其它标记语言的语言。它被用来在不同的商务过程中共享数据。
XML的发展和Java是相互独立的,但是,它和Java具有的相同目标正是平台独立性。通过将Java和XML的组合,您可以得到一个完美的具有平台独立性的解决方案。
九、JMS(Java Message Service)
JMS是用于和面向消息的中间件相互通信的应用程序接口(API)。它既支持点对点的域,又支持发布/订阅(publish/subscribe)类型的域,并且提供对下列类型的支持:经认可的消息传递,事务型消息的传递,一致性消息和具有持久性的订阅者支持。JMS还提供了另
一种方式来对您的应用与旧的后台系统相集成。
十、JTA(Java Transaction Architecture)
JTA定义了一种标准的API,应用系统由此可以访问各种事务监控。
十一、JTS(Java Transaction Service):
JTS是CORBA OTS事务监控的基本的实现。JTS规定了事务管理器的实现方式。该事务管理器是在高层支持Java Transaction API (JTA)规范,并且在较底层实现OMG OTS specification的Java映像。JTS事务管理器为应用服务器、资源管理器、独立的应用以及通信资源管理器提供了事务服务。
十二、JavaMail
JavaMail是用于存取邮件服务器的API,它提供了一套邮件服务器的抽象类。不仅支持SMTP服务器,也支持IMAP服务器。
十三、JAF(JavaBeans Activation Framework)
JavaMail利用JAF来处理MIME编码的邮件附件。MIME的字节流可以被转换成Java对象,或者转换自Java对象。大多数应用都可以不需要直接使用JAF。
2. WebSphere
- 另一个常用的Web服务器是IBM公司的WebSphere,支持J2EE规范,启动界面如图
- 下载地址:http://www-01.ibm.com/software/websphere/
3. Tomcat
- 在小型的应用系统或者有特殊需要的系统中,可以使用一个
免费的Web服务器:Tomcat,该服务器支持全部JSP以及
Servlet规范,启动界面如图