关于JSP的预编译

来源:互联网 发布:java会议管理系统项目 编辑:程序博客网 时间:2024/04/30 14:23
关于JSP的预编译

在weblogic中使用jsp预编译功能时需要进行以下设置:

1、在weblogic.xml加入以下配置,

 <jsp-param>
  <param-name>precompile</param-name>
  <param-value>true</param-value>
 </jsp-param>

2、使用ant教本对web应用的jsp进行预编译,以下是一个完整的build.xml的例子,本例中,使用ant wljspc,

<project name="cms" default="application" basedir=".">
  
 <property name="source.dir" value="./source"/>
 <property name="src.dir"  value="${source.dir}/src"/>
 <property name="web-inf.dir" value="${source.dir}/WEB-INF"/>
 <property name="classes.dir" value="${web-inf.dir}/classes"/>
 <property name="lib.dir"  value="${web-inf.dir}/lib"/>
 
 <property name="bea.dir"  value="d:/tools/bea"/>
 <property name="jdk.dir"  value="${bea.dir}/jdk142_04"/>
 <property name="host_name"  value="168.2.1.56"/>
 <property name="host_port"  value="80"/>
 <property name="webapp_name"  value="cms"/>
 <property name="target_name"  value="myserver"/>
 <property name="weblogic_pwd"  value="weblogic"/>
 <property name="weblogic_uid"  value="weblogic"/>
 
 <property  name="cvsRoot"   value=":pserver:username@168.2.1.2:/cms"/>
 
     <path id="compile.classpath">
      <fileset dir="${web-inf.dir}/lib">
              <include name="**/*.jar"/>
              <include name="**/*.zip"/>
         </fileset>
         <fileset dir="${bea.dir}/weblogic81/server/lib">
              <include name="**/*.jar"/>
         </fileset>
         <fileset dir="${jdk.dir}/lib">
              <include name="**/*.jar"/>
         </fileset>
    </path>
   
     <target name="checkout" >
      <delete>
       <fileset dir="${source.dir}">
               <include name="**/*.java"/>
               <include name="**/*.jsp"/>
          </fileset>
      </delete>
    <cvs  command=" -q checkout -A  source"
     cvsRoot="${cvsRoot}"
          dest="./"
          passfile=".cvspass"
    />
 </target>

     <target name="compile">
         <delete dir="${classes.dir}"/>
         <mkdir dir="${classes.dir}"/>
         <javac srcdir="${src.dir}"
                 destdir="${classes.dir}/"
                debug="no">
              <classpath refid="compile.classpath"/>
         </javac>
         
         <copy todir="${classes.dir}">
              <fileset dir="${src.dir}/" excludes="**/*.java"/>
         </copy>
     </target>

     <target name="application" depends="compile">
         <delete file="${classes.dir}/ApplicationResources_zh.properties"/>
         <native2ascii  encoding="GBK"
           src="${src.dir}"
           dest="${classes.dir}"
               includes="ApplicationResources_zh.properties"
         />
     </target>
     
     <target name="rename_webapp">
      <delete dir="${webapp_name}"/>
         <mkdir dir="${webapp_name}"/>
      <copy todir="./${webapp_name}" preservelastmodified="true">
       <fileset dir="${source.dir}" excludes="${source.dir}/src/**/*.java"/>
      </copy>
     </target>
     
     <target name="deploy">
  <java classname="weblogic.Deployer" fork="true" maxmemory="384m">
   <arg value="-verbose"/>
   <arg value="-adminurl"/>
   <arg value="http://${host_name}:${host_port}"/>
   <arg value="-name"/>
   <arg value="${webapp_name}"/>
   <!--<arg value="-upload"/>-->
   <arg value="-stage"/>
   <arg value="-source"/>
   <arg value="${webapp_name}"/>
   <arg value="-targets"/>
   <arg value="${target_name}"/>
   <arg value="-password"/>
   <arg value="${weblogic_pwd}"/>
   <arg value="-user"/>
   <arg value="${weblogic_uid}"/>
   <arg value="-activate" />
   <classpath>
    <path refid="compile.classpath"/>
   </classpath>
  </java>
 </target>
 
 <target name="deploy_cvs_version">
  <antcall target="checkout"/>
  <antcall target="application"/>
  <antcall target="rename_webapp"/>
  <antcall target="wljspc"/>
  <antcall target="deploy"/>
 </target>
 
 <target name="wljspc">
         <java classname="weblogic.appc"
              classpathref="compile.classpath"
              >
              <arg line=" ${webapp_name} "/>
         </java>
 </target> 
 <target name="war">
  <jar destfile="${webapp_name}.war.${version}">
         <fileset dir="${webapp_name}"/>
      </jar>
     </target>
</project>

3、使用ant deploy部署的时候不能将选项-upload设置为有效,所以这里作了注释处理,否则,部署后的jsp文件在第一次被访问时仍然会被编译。