参考了其他人的博客,链接在文末。
概述
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器。
Tomcat简单的说就是一个运行JAVA的网络服务器,底层是Socket的一个程序,它也是JSP和Serlvet的一个容器。
为什么要使用Tomcat
举个简单的例子,我们在本地编写的HTML网页,在本地可以自己打开,那么要如何让其他人能够访问我们的网页呢?
答案是使用Web应用服务器,常见的有Apache,IIS,Nginx,Tomcat等。
(图片来自:https://segmentfault.com/a/1190000013122831)
Tomcat文件目录
解压了Tomcat后有下图中的几个目录
目录 | 用途 |
---|---|
bin | 存放了启动和关闭Tomcat的脚本文件 |
conf | 存放Tomcat服务器的各种配置文件(后面会介绍) |
lib | Tomcat服务器依赖的jar包 |
logs | Tomcat运行时的日志文件 |
temp | 存放Tomcat运行时的临时文件 |
webapps | 存放供外界访问的资源(HTML,JS,CSS等) |
work | Tomcat工作目录(存放jsp被访问后生成对应的server文件和.class文件) |
webapps
重点关注一下这个目录,此目录存放的是供外界访问的资源。在此目录下建立web应用。
例如:选择Tomcat默认的展示页
web应用的目录是有规范的
配置虚拟目录[转载]
转自:https://segmentfault.com/a/1190000013122831
试想一下如果web应用较多并且比较大,如果都放在webapps下可能导致磁盘空间不足,也不利于管理。那么如何让Tomcat读取放在其他盘符的文件夹呢?
- 在其他盘符下创建一个web站点目录,并创建WEB-INF目录和一个html文件。
- 找到Tomcat目录下/conf/server.xml文件
- 在server.xml中的节点下添加如下代码。path表示的是访问时输入的web项目名,docBase表示的是站点目录的绝对路径
<Context path="/web1" docBase="D:\web1"/>
web.xml中可以配置哪些内容?
转自牛客
web.xml用于配置Web应用的相关信息,如:监听器(listener)、过滤器(filter)、 Servlet、相关参数、会话超时时间、安全验证方式、错误页面等,下面是一些开发中常见的配置:
①配置Spring上下文加载监听器加载Spring配置文件并创建IoC容器:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
②配置Spring的OpenSessionInView过滤器来解决延迟加载和Hibernate会话关闭的矛盾:
<filter>
<filter-name>openSessionInView</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>openSessionInView</filter-name>
<url-pattern>/* </url-pattern>
</filter-mapping>
③配置会话超时时间为10分钟:
<session-config>
<session-timeout>10</session-timeout>
</session-config>
④配置404和Exception的错误页面:
<error-page>
<error-code>404</error-code>
<location>/error.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/error.jsp</location>
</error-page>
⑤配置安全认证方式:
<security-constraint>
<web-resource-collection>
<web-resource-name>ProtectedArea</web-resource-name>
<url-pattern>/admin/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
<security-role>
<role-name>admin</role-name>
</security-role>