java web

IDEA servlet-api.jar(2015-1-6)

idea从14升级到15后,发现
1
import javax.servlet.AsyncContext;
Copied!
找不到, 右击工程,open module setting,找到图中的位置,在classPath里添加tomcat的servlet-api.jar即可。

tomcat允许跨域(2016-1-12)

  1. 1.
    全局方式
在/tomcat/conf/web.xml中,添加这样一个filter
1
<filter>
2
<filter-name>CorsFilter</filter-name>
3
<filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
4
<async-supported>true</async-supported>
5
</filter>
6
<filter-mapping>
7
<filter-name>CorsFilter</filter-name>
8
<url-pattern>/*</url-pattern>
9
</filter-mapping>
Copied!
其中async-supported不是必须的,如果你用到了AsyncContext,这里又是全局的filter,就需要设置允许async。
全局方式对虚拟目录也能生效。
2.非全局方式
在web app的web.xml里加上面这个filter就好了,记得要把url-pattern这一项改成对应的格式。

tomcat虚拟目录

最简单的非侵入式的方式是:在tomcat/conf/Catalina/localhost目录下添加一个xml文件,内容如下:
1
<?xml version="1.0" encoding="UTF-8"?>
2
<Context reloadable="true" docBase="/home/cwh/Software/learn_software" crossContext="true">
3
</Context>
Copied!
其中,
  • reloadable表示在启动tomcat后,目录内容改变时,是否允许不重启tomcat,仅刷新就得到新的内容,可以则为true
  • docBase即虚拟目录代表的本地目录
  • crossContext表示是否允许跨域,
然后把xml命名成虚拟目录名,比如test,则可以通过url:http://localhost:8888/test 访问docBase下的文件
如果需要以目录的形式访问文件,需要在conf/web.xml中配置listing为true
如果需要支持中文文件,需要在server.xml中配置Context的URLEncoding为UTF-8
最近更新 1yr ago