`
yangzb
  • 浏览: 3511103 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

把JSP预编译成class文件进行JSP文件的保护

    博客分类:
  • Java
阅读更多

 在Weblogic中发布Web Application工程时,为了保护JSP文件避免未经授权的访问和窥视,可以用weblogic.jspc把JSP文件precompile成为servlet文件,放到WEB-INF/classes目录下。基于Servlet的声明,WEB-INF不作为Web应用的公共文档树的一部分。因而,WEB-INF目录下的资源不是为客户直接服务的,这样就可以一定程度上保证JSP的安全。
  具体的实现步骤如下(Weblogic for linux):
  1、用weblogic.jspc编译JSP文件
  (1)在Linux下的工作目录下,创建如下的shell文件,文件名为jspc.sh
  #!/bin/sh
  JAVA_HOME=/opt/IBMJava2-131
  WBL_LIB=/u11/bea/wlserver6.1/lib/weblogic.jar
  CLASSPATH=${JAVA_HOME}/lib:.:${WBL_LIB}
  TARGET_DIR=../mofa/WEB-INF/classes # 这是JSP编译后的servlet文件的存放目录
  WEBAPP_DIR=../mofa # 这是你要发布的Web Application的目录
  ${JAVA_HOME}/bin/java -classpath ${CLASSPATH} weblogic.jspc -k -g -compileAll -d ${TARGET_DIR} -webapp ${WEBAPP_DIR}
  在上面蓝色字体的部分是要根据用户自己的配置进行修改。
  (2)设置jspc.sh文件的可执行属性
   # chmod +x jspc.sh
  (3)在当前目录下,执行jspc.sh文件,进行JSP文件的编译,编译后class文件,应该在WEB-INF/classes/jsp_servlet目录下。
  2、便已成功后,从Web Application的目录中把所有的JSP移走或删除。
  3、编辑weblogic.xml文件,把jsp-descriptor标签内的内容清空,加入如下的内容:
   <jsp-descriptor>
   <jsp-param>
   <param-name>precompile</param-name>
   <param-value>false</param-value>
   </jsp-param>
   <jsp-param>
   <param-name>pageCheckSeconds</param-name>
   <param-value>-1</param-value>
   </jsp-param>
   </jsp-descriptor>
  4、编辑web.xml文件,在其中添加如下内容:
  <servlet>
   <servlet-name>JSPClassServlet</servlet-name>
   <servlet-class>weblogic.servlet.JSPClassServlet</servlet-class>
  </servlet>
  <servlet-mapping>
   <servlet-name>JSPClassServlet</servlet-name>
   <url-pattern>*.jsp</url-pattern>
  </servlet-mapping>
  5、在Weblogic上发布这个Web Application。
  6、访问相应的JSP文件,如果能够访问成功,说明整个过程没有问题
  

分享到:
评论

相关推荐

    jsp批量编译为class文件

    将jsp批量转换为class文件. 运行命令 java -jar jspcp.jar "路径1" "路径2" 路径1:webapp路径,一定是WEB-INF目录的父目录 路径2:编译后的java和class文件存储路径 路径如果有空格,一定用""包裹

    将jsp生成java然后反编译为class然后打入jar

    当我们在服务器上运行一个JSP文件时,服务器会将其转换成一个Servlet(Java类),然后编译为.class文件,这个过程被称为JSP编译。下面我们将详细探讨这一过程以及如何将生成的Java类反编译为.class文件并打包到.jar...

    基于weblogic的jsp预编译代码示例

    预编译过程将JSP文件转换为Servlet源码,然后编译成.class文件,减少了运行时的解析和编译时间。 一、JSP预编译的重要性 JSP预编译的主要好处是提高应用响应速度。在没有预编译的情况下,JSP首次被请求时会经历...

    补丁、打包编译后的文件,自动生成class、jsp、js等文件目录(附教程)

    这类工具可以扫描源代码目录,自动编译所有改动过的文件,并将生成的class文件、编译后的JSP文件以及处理过的JavaScript文件按特定的目录结构组织好,便于后续的打包操作。 PatchUtil.java可能是一个实现了自动...

    myeclipse将class反编译成java源文件

    - 法律问题:在没有源代码授权的情况下反编译Class文件可能涉及版权问题,应谨慎处理。 **5. jar文件的处理** 如果反编译的是jar包中的Class文件,你可以先使用解压工具(如WinRAR或7-Zip)打开jar文件,然后提取出...

    让webshere(was)发布程序编译jsp为java文件,java文件位置

    标题 "让WebSphere (WAS) 发布程序编译JSP为Java文件,Java文件位置" 暗示了在IBM WebSphere Application Server (WAS) 中如何配置以查看或控制JSP编译过程,以及生成的Java源文件的位置。在Web应用程序的开发和调试...

    Tomcat的jsp编译参数

    在Tomcat的`conf/web.xml`配置文件中,你可以找到关于JSP编译的相关设置。其中,`javax.servlet.jsp.jstl.core.LogicalView`和`org.apache.jasper.Constants`这两个servlet定义了JSP的编译路径。默认情况下,JSP页面...

    .class文件反编译工具/软件

    在Java编程语言中,`.class`文件是Java字节码的载体,它是源代码经过编译后的结果。这些文件包含了程序的结构信息,但通常人类无法直接阅读,因为它们是机器可理解的二进制格式。为了理解`.class`文件中的内容,...

    <jsp:plugin>动作时,使用lomboz+Eclipse中编写程序,浏览器一直报 找不到.class文件

    通常,`WEB-INF/classes`目录用于存放编译后的JavaBean的`.class`文件,而这些文件可以通过类加载器自动加载。但当尝试加载Applet时,由于浏览器直接请求Applet的`.class`文件,它不会查找`WEB-INF`目录,导致找不到...

    Tomcat 源代码调试 - 看不见的 Shell 第二式之隐藏任意 Jsp 文件1

    2. **编译**:转换后的Java源文件随后会被编译成`.class`字节码文件,这是Java虚拟机能够执行的格式。在默认配置下,这些编译后的文件存储在`work`目录下,具体路径与Tomcat的`workDir`配置有关。 3. **实例化与...

    jsp文件运行的机制

    这个过程会在首次访问时发生,之后再次访问同一页面时,除非修改了JSP文件或手动清理了编译后的文件,否则将直接使用已有的.class文件进行执行,因此速度会更快。 #### 四、示例分析 考虑下面的JSP文件`hello.jsp`...

    jsp 自动编译机制详细介绍

    JSP编译发生在Wrapper级别,通过StandardWrapper进行控制。在每个容器中,都有一个后台线程执行backgroundProcess方法,以处理各种后台任务。JspServlet,作为Servlet实例,实现了PeriodicEventListener接口,它的...

    java动态编译 ,写了一个jsp在页面上编辑java代码,然后servlet动态编译并执行main方法

    5. **生成并加载类文件**:成功编译后,会产生`.class`文件,这个文件需要被加载到JVM中。Java的`ClassLoader`可以实现这一点,通常使用自定义的类加载器来加载动态生成的类。 6. **执行`main`方法**:一旦类被加载...

    jsp配置文件设定

    JSP配置文件的设定对于任何JSP应用程序来说都至关重要,它涉及到服务器如何处理JSP页面,以及如何与数据库进行数据交互。下面将详细探讨JSP配置文件的设定及其在数据读取中的应用。 首先,我们来理解JSP配置文件的...

    jsp源码jar包文件(part2)

    2. **JSP转换过程**:当JSP页面被请求时,Web服务器首先将其转换为一个JavaServlet,然后编译成.class文件。这个过程称为JSP编译,产生的Servlet负责处理客户端的请求并生成响应。 3. **JSP指令**:JSP提供了三种...

    jsp问答题复习.doc

    (3)、包含方式:使用include指令包含文件,最终服务器执行的是将两个文件合成后由JSP编译器编译成的一个Class文件,所以被包含文件的内容应是固定不变的,若改变了被包含文件,则主文件的代码就发生了改变,因此...

    用jspSmart实现文件上传到数据库的实例

    // 假设已经有了数据库连接conn和预编译SQL语句的PreparedStatement对象prepStmt byte[] fileBytes = new byte[1024]; int bytesRead; try (BufferedInputStream in = new BufferedInputStream(inputStream)) { ...

    用servlet将jsp文件内容转为html

    - JSP文件在服务器端被编译成Servlet类,然后由服务器执行这些Servlet类来生成动态HTML页面。 #### 二、实现原理 - 要实现将JSP文件的内容转换为HTML并保存的功能,可以通过以下步骤进行: 1. 创建一个Servlet类...

    解决JSP中文乱码问题

    如果 Java 和 JSP 编译成 class 文件过程中,使用的编码方式与源文件的编码不一致,就会出现乱码。例如,如果 Java 文件使用 GBK 编码,而编译时使用的是 ISO-8859-1 编码,就会出现乱码。 Java 程序于其他媒介交互...

Global site tag (gtag.js) - Google Analytics