web.xml是web应用的部署文件,包括tomcat中conf/web.xml中的默认配置以及web应用WEB-INF/web.xml下的定制配置
主要分为以下几类
使用添加初始化参数,可以使用javax.servlet.ServletContext.getInitParameter()方法获取参数值
<context-param>
<param-name>name</param-name>
<param-value>value</param-value>
</context-param>
用于配置web应用会话,包括超时时间、cookie配置以及会话追踪模式。
<session-config>
<session-timeout>30</session-timeout>
<cookie-config>
<name>jessionid</name>
<domain>myApp.com</domain>
<path>/</path>
<!-- 安全性配置,只有mode为cookie时才会生效 -->
<http-only>true</http-only>
<!-- 安全性配置,只有mode为cookie时才会生效 -->
<secure>true</secure>
<max-age>3600</max-age>
</cookie-config>
<!-- 会话追踪模式 -->
<tracking-mode>COOKIE</tracking-mode>
</session-config>
Servlet支持三种会话追踪模式:COOKIE、URL、SSL
<servlet>
<servlet-name>ad</servlet-name>
<servlet-class>com.zhanghe.servlet.MyMainServlet</servlet-class>
<init-param>
<param-name>name</param-name>
<param-value>value</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<!-- 上传文件配置 -->
<multipart-config>
<max-file-size>1024</max-file-size>
<max-request-size>2048</max-request-size>
<!-- 文件超过该大小后将写入磁盘 -->
<file-size-threshold>0</file-size-threshold>
<!-- 标识该Servlet是否启用 -->
<enabled>true</enabled>
<!-- 安全角色的引用 -->
<security-role-ref>
<!-- 代码中使用的角色名称 -->
<role-name>admin</role-name>
<!-- 对应tomcat-user.xml中服务器配置角色名称 -->
<role-link>manager</role-link>
</security-role-ref>
</multipart-config>
</servlet>
<servlet-mapping>
<servlet-name>ad</servlet-name>
<url-pattern>*.*</url-pattern>
<url-pattern>/myapp/*</url-pattern>
</servlet-mapping>
监听器要实现javax.servlet.ServletContextListener接口,执行顺序与web.xml的配置顺序一致,停止时与启动顺序相反
<listener>
<listener-class>com.zhanghe.listener.MyListener</listener-class>
</listener>
过滤器,用于过滤资源请求及响应
<filter>
<filter-name>myFilter</filter-name>
<filter-class>com.zhanghe.filter.MyFilter</filter-class>
<init-param>
<param-name>name</param-name>
<param-value>value</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>myFilter</filter-name>
<!-- 也可以设置servlet-name -->
<url-pattern>/myApp/*</url-pattern>
</filter-mapping>
设定某类型的扩展名文件使用何种应用程序打开
<mime-mapping>
<extension>doc</extension>
<mime-type>application/msword</mime-type>
</mime-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<error-page>
<error-code>404</error-code>
<localtion>/404.html</localtion>
</error-page>
<error-page>
<error-type>java.lang.Exception</error-type>
<localtion>/error.html</localtion>
</error-page>
<locale-encoding-mapping-list>
<locale-encoding-mapping>
<locale>zh</locale>
<encoding>UTF-8</encoding>
</locale-encoding-mapping>
</locale-encoding-mapping-list>
为web应用增加页面的访问权限
最近准备对xx系统做一些优化工作,这里先从tomcat参数方面入手,后面再针对mysql和具体sql去做一下优化。下面基于之前介绍的tomcat参数优化来做整体介绍。
可以看到目前tomcat是基本没做优化的,基本为默认参数。
2.1、注释AJP协议
这个影响倒不是很大。
2.2、设置JVM
这里要根据服务器内存,然后自己规划下就行。
2.3、核心参数
这里的参数比较重要,影响会比较大。
可以看到通讯模式改为了NIO。
1、内存--设置JVM参数
JAVA_OPTS="-XX:PermSize=256M -XX:MaxPermSize=512m -Xms2048m -Xmx4096m -Duser.timezone=Asia/Shanghai"
说明:
2、禁用AJP协议
注释 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
ajp协议是tomcat为了动静资源处理分离时,通过该协议可以将css、js等静态资源请求转发到Apache的http服务器处理,提高并发量。但是在优化tomcat时,没有用到Apache服务器,则需要将其禁用。
3、将BIO通讯模式修改为NIO通讯模式
<Connector connectionTimeout="20000" port="8066" protocol="org.apache.coyote.http11.Http11NioProtocol" redirectPort="8448"/>
其中,原来的protocol="HTTP/1.1"表示遵循http1.1协议,同时,也是一个最原始的未经优化的通信协议,修改之后的 protocol="org.apache.coyote.http11.Http11NioProtocol" ,表示以 NIO模式启动。
4、并发--启用外部连接池
maxThreads:tomcat起动的最大线程数,即同时处理的任务个数,默认值为150
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="400" minSpareThreads="4"/> <Connector connectionTimeout="20000" port="8066" executor="tomcatThreadPool" protocol="org.apache.coyote.http11.Http11NioProtocol"/>
5、配置缓存
<Connector port="xxx" compression="on" compressionMinSize="2048" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" connectionTimeout="20000" disableUploadTimeout="true" />
说明:
6、优化连接器--最终模板
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="400" minSpareThreads="4"/> <Connector port="8080" executor="tomcatThreadPool" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" enableLookups="false" maxPostSize="10485760" URIEncoding="UTF-8" useBodyEncodingForURI="true" maxConnections="1000" acceptCount="1000" minProcessors="100" maxProcessors="1000" disableUploadTimeout="true" compression="on" compressionMinSize="2048" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" SSLEnabled="false" />
说明:
到这里tomcat的一些参数就设置好了,后面在分享一下mysql的优化参数模板。感兴趣的朋友可以关注一下~
直都在做App开发,但是对java web方面的了解比较少,最近有时间,所以自己就寻思动手从零开始搭建一个java web项目。该项目主要是给app,提供接口服务,简称项目为‘mserver’。好了,接下来,我们就开始简单的搭建项目。
一.开发所需工具。(根据你的电脑以及系统选择合适的版本下载)
1.JDK 。下载链接。
JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境,JAVA工具和JAVA基础的类库。
2.eclipse开发工具。下载链接。
PS:我们在下载软件的过程中,可能会有多个不同的下载文件,例如,zip、msi等,那么这两个有什么区别吗?
3.Tomcat服务器。下载链接。
4.Mysq数据库。下载链接 。
如果你不习惯使用命令去操作数据库,那么推荐你使用SQLyog工具,下载链接。
PS:下载安装好JDK 后,需要配置环境变量。(以Win7电脑为例,配置环境变量)
(1).依次点击,计算机→属性→高级系统设置→高级→环境变量;
(2).打开系统变量,新建JAVA_HOME 变量,变量值填写jdk的安装目录(本人是 D:\Java\jdk1.7.0);
(3).在系统变量中找到Path变量,点击编辑,
在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
(注意原来Path的变量值末尾如果没有‘;’,先输入';'后再输入上面的代码);
(4).在系统变量中新建 CLASSPATH 变量
变量值填写 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一点);
经过以上几步,环境变量就配置完成了。但是,我们还得验证一下是否配置成功,运行cmd 输入 java -version,如出现以下截图显示的显示,说明配置成功。
二. 创建项目。
1.打开eclipse,先配置一下Tomcat服务器。
(1).打开windows-> preferences,找到Server下方的Runtime Environment,单击右方的Add按钮:
(2). 选择已经安装的Tomcat版本,点击Next,
(3).找到下载安装后的Tomcat,点击Finish。
经过以上几步,就可以看到,红色框中出现刚才你添加的Tomcat服务器。
2.创建项目。
(1). 打开eclipse,在Workspace空白的地方,右键,New,选择‘Dynamic Web project’,点击Next,
(2).输入项目名称,选择服务器,其他的默认就可以,点击Finish就可以了!
稍等一会,你的Eclipse中会出现两个项目,如下图所示,表示创建项目成功了。
此时,你可以'run'项目,运行后,可能会报404,这是因为你的web项目底下没有可访问的资源。那么就在项目的‘WebContent’目录底下,创建一个比较简单的jsp文件index.jsp,具体代码,如下
创建成功后,点击运行,然后在浏览器中输入“http://localhost:8080/mServer/index.jsp”,便可以看到,
经过上面两大步骤,我们的mServer接口项目已经创建成功了,我们就可以开始进行接口开发了!
*请认真填写需求信息,我们会在24小时内与您取得联系。