配置Web站点的虚拟目录
2015-09-26 10:31
375 查看
在tomcat中,web站点的根目录默认为ROOT目录,然而它的思想其实是“映射”。
在apache-tomcat-7.0.57\conf中的server.xml中,有项< Contex path=”” docBase=”ROOT” reloadable=”true”/>。在tomcat7中找不到,于是我们把这项添加到< /Host >前
截取部分:
接着,在apache-tomcat-7.0.57\web.xml修改:
把listings的value改为true
在我的机子上没有修改也可以映射成功,因情况而定。
在前面,我们把docBase即web站点的根目录映射到了D盘的myWeb目录,在其目录下创建classes和WEB-INF【包含web.xml】
内容如下:
把我们编译好的HelloServlet.java的class文件放在新建的classes目录下
然后,在根目录下创建test.html(内容自己输入并保存)。
最后打开startup.bat,在浏览器输入http://localhost:8080/test.html
显示test.html的内容。
我们如果把test.html删掉,配置文件会去找HelloServlet,显示它的内容。
注:
如果在myWeb中的web.xml内的 < url-pattern>/test.html< /url-pattern>没有加‘/’,会导致startup.bat而无法打开服务器。
总之这个小尝试耗费了我许多时间,哪一项配置出了一点瑕疵都会出现让人困惑的错误。
测试线程安全:
ThreadServlet.java
在dos下编译好的ThreadServlet.class拷贝到D:\myWeb\WEB-INF\classes,并修改web.xml的ThreadServlet
启动服务器,在浏览器输入:http://localhost:8080/it315/test.html
得到:
说明,多个线程并发执行同一个servlet的service方法,出现线程安全问题。
在apache-tomcat-7.0.57\conf中的server.xml中,有项< Contex path=”” docBase=”ROOT” reloadable=”true”/>。在tomcat7中找不到,于是我们把这项添加到< /Host >前
截取部分:
<!-- Access log processes all example. Documentation at: /docs/config/valve.html Note: The pattern used is equivalent to using pattern="common" --> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> <Context path="" docBase="D:\myWeb" reloadable="true"/> </Host> </Engine> </Service> </Server>
接着,在apache-tomcat-7.0.57\web.xml修改:
把listings的value改为true
<init-param> <param-name>listings</param-name> <param-value>true</span></param-value> </init-param>
在我的机子上没有修改也可以映射成功,因情况而定。
在前面,我们把docBase即web站点的根目录映射到了D盘的myWeb目录,在其目录下创建classes和WEB-INF【包含web.xml】
内容如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <servlet> <servlet-name>anyName</servlet-name> <servlet-class>HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>anyName</servlet-name> <url-pattern>/test.html</url-pattern> </servlet-mapping> </web-app>
把我们编译好的HelloServlet.java的class文件放在新建的classes目录下
然后,在根目录下创建test.html(内容自己输入并保存)。
最后打开startup.bat,在浏览器输入http://localhost:8080/test.html
显示test.html的内容。
我们如果把test.html删掉,配置文件会去找HelloServlet,显示它的内容。
注:
如果在myWeb中的web.xml内的 < url-pattern>/test.html< /url-pattern>没有加‘/’,会导致startup.bat而无法打开服务器。
总之这个小尝试耗费了我许多时间,哪一项配置出了一点瑕疵都会出现让人困惑的错误。
测试线程安全:
ThreadServlet.java
在dos下编译好的ThreadServlet.class拷贝到D:\myWeb\WEB-INF\classes,并修改web.xml的ThreadServlet
ThreadServlet.java import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class ThreadServlet extends HttpServlet { private int count=0; public void service(ServletRequest req, ServletResponse res) throws ServletException, java.io.IOException{ count++; try{ Thread.sleep(500); }catch(Exception e){ System.out.println(e.getMessage()); } System.out.println("这是第"+count+"次访问,这次访问的线程名 为:"+Thread.currentThread().getName()); } }
启动服务器,在浏览器输入:http://localhost:8080/it315/test.html
得到:
说明,多个线程并发执行同一个servlet的service方法,出现线程安全问题。
相关文章推荐
- CAS 自定义数据源
- 再论时间延迟(Timing)
- TOMCAT内存溢出及大小调整
- POJ 3320 Jessica's Reading Problem (尺取法_滑动窗口,阅读最少页数)
- 经典笔试面试题总结(一)
- UltraPullToRefreshWithLoadMore (为UltraPullToRefresh添加上拉加载更多功能)
- HDU - 1074 Doing Homework(状态压缩)
- POJ 1331
- 实时系统的介绍
- 女人和和尚的对话
- 黑马程序员——Java基础(三)之运算符、键盘录入、流程控制语句
- linux/ubuntu下su进入toor用户提示“认证失败”的解决方案
- 推荐十款超赞的Google Chrome扩展插件
- MATLAB cell & struct
- 一周总结
- 一周总结
- html5元素拖拽效果
- 基于CSS3的WEBAPP横向滑动模式演化
- C语言中 .h文件和.c文件的区别
- 拖动文件到窗体上,并显示文件路径