如何让发布的WEB应用不包含jsp文件

Yanbin_Q 2005-09-20 11:51:26
如何在WEB应用版本发布前把所有的jsp文件转换为servlet,要经过怎么配置,让发布的版本中不包含jsp文件,我不想让客户能看到我写的jsp源文件
...全文
377 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
YuLimin 2006-06-28
  • 打赏
  • 举报
回复
当然可以啊

参见:Tomcat中JSP预编译处理Jasper 2 JSP Engine
http://iamin.blogdriver.com/iamin/767607.html
onlyxu 2005-09-22
  • 打赏
  • 举报
回复
能举报楼上吗
humanity 2005-09-21
  • 打赏
  • 举报
回复
这个依赖实现,一个应用服务器可能 当 web.xml 中没有配置时,完全不到 lib 下去搜索 是否有一编译好的而只检查 work 目录 ,搂住可以尝试 Ant jspc 指令编译所有的 JSPs 然后打包 jar 放到 /WEB-INF/lib 下面去。
humanity 2005-09-21
  • 打赏
  • 举报
回复
如果你的 IDE 时 IBM WSAD, 或是 JDeveloper 那可以自动 Translating 所有的 JSP 成 .Java ,然后再 .class ,不过要针对目标应用服务器,你只要看看 Tomcat 运行后 %CATALINA_HOME%/work/Catalina/localhost/下面 每个应用程序的 jsp 如果没有编译过就会编译并生成一个 .class ,这就是 jsp 对应的 servlet 文件编译后的 .class 文件,你用工具或者 Ant 的 jspc 指令编译所有的 jsp ,然后把这些东西 打包 jar 。

因为我看到了 WebSphere 有个选项: preCompile JSPs, 发布时自动编译所有的 jsp ,所以我想如果我把这些东西编译了后打包成 jar 放到 lib 下,应用服务器会不会优先考虑呢?因为这个依赖服务器的实现,所以不敢肯定能行,还有个 自动编译的 设置,比较打开和关闭会不会不同呢。
Yanbin_Q 2005-09-21
  • 打赏
  • 举报
回复
我看了AdvantNet的一个软件ManageEngine Applications Manager 6的web.xml中有一大堆如下的配置,不知道它的用意是什么,猜想一下

<servlet-mapping>
<servlet-name>jsp.Popup_ThresholdDetails_jsp</servlet-name>
<url-pattern>/jsp/Popup_ThresholdDetails.jsp</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>jsp.PortDetails_jsp</servlet-name>
<url-pattern>/jsp/PortDetails.jsp</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>jsp.PostFeedback_jsp</servlet-name>
<url-pattern>/jsp/PostFeedback.jsp</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>jsp.ProxyConfiguration_jsp</servlet-name>
<url-pattern>/jsp/ProxyConfiguration.jsp</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>jsp.RCA_jsp</servlet-name>
<url-pattern>/jsp/RCA.jsp</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>jsp.RCABottom_jsp</servlet-name>
<url-pattern>/jsp/RCABottom.jsp</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>jsp.RCATop_jsp</servlet-name>
<url-pattern>/jsp/RCATop.jsp</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>jsp.RecentAlarms_jsp</servlet-name>
<url-pattern>/jsp/RecentAlarms.jsp</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>jsp.RegistrationStatus_jsp</servlet-name>
<url-pattern>/jsp/RegistrationStatus.jsp</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>jsp.ResourceDisplay_jsp</servlet-name>
<url-pattern>/jsp/ResourceDisplay.jsp</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>jsp.SMSActionForm_jsp</servlet-name>
<url-pattern>/jsp/SMSActionForm.jsp</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>jsp.ScriptMonitor_jsp</servlet-name>
<url-pattern>/jsp/ScriptMonitor.jsp</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>jsp.Scriptconf_jsp</servlet-name>
<url-pattern>/jsp/Scriptconf.jsp</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>jsp.SendTrapActionForm_jsp</servlet-name>
<url-pattern>/jsp/SendTrapActionForm.jsp</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>jsp.ServerLayout_jsp</servlet-name>
<url-pattern>/jsp/ServerLayout.jsp</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>jsp.ShowEJBDetails_jsp</servlet-name>
<url-pattern>/jsp/ShowEJBDetails.jsp</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>jsp.ShowHolisticApplication_jsp</servlet-name>
<url-pattern>/jsp/ShowHolisticApplication.jsp</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>jsp.ShowJDBCDetails_jsp</servlet-name>
<url-pattern>/jsp/ShowJDBCDetails.jsp</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>jsp.ShowKeyValues_jsp</servlet-name>
<url-pattern>/jsp/ShowKeyValues.jsp</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>jsp.ShowServletData_jsp</servlet-name>
<url-pattern>/jsp/ShowServletData.jsp</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>jsp.ShowThreadData_jsp</servlet-name>
<url-pattern>/jsp/ShowThreadData.jsp</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>jsp.ShowUrlPerformance_jsp</servlet-name>
<url-pattern>/jsp/ShowUrlPerformance.jsp</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>jsp.ShowWARDetails_jsp</servlet-name>
<url-pattern>/jsp/ShowWARDetails.jsp</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>jsp.ShowWASEJBDetails_jsp</servlet-name>
<url-pattern>/jsp/ShowWASEJBDetails.jsp</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>jsp.ShowWASJDBCDetails_jsp</servlet-name>
<url-pattern>/jsp/ShowWASJDBCDetails.jsp</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>jsp.ShowWASThreadDetails_jsp</servlet-name>
<url-pattern>/jsp/ShowWASThreadDetails.jsp</url-pattern>
</servlet-mapping>
cokeyang 2005-09-20
  • 打赏
  • 举报
回复
直接全部用SERVLET来写!不要用现成的框架!
onlyxu 2005-09-20
  • 打赏
  • 举报
回复
应该可以,把服务器编译的servlet复制过来,重写web.xml
不过超链接多了恐怕不好对应吧
findfeels 2005-09-20
  • 打赏
  • 举报
回复
改成servlet/aplet
Yanbin_Q 2005-09-20
  • 打赏
  • 举报
回复
把jsp全写成servlet当然麻烦

to wjvonline(╰风行水︶ㄣ)
但是也不能如这样说
可如果人家懂得话,不管你怎样做都没啥用啊,就是类文件都给你反一遍~

如果能更进一步总是会好的,不能绝对的说就没啥用

做成本地二进制码,还能够反汇编
人家懂得话,你混淆字码人家也能看得懂,你对字节码加密人家也能看得懂
难道混淆,加密一切得变得毫无意义呢
feixiang2005 2005-09-20
  • 打赏
  • 举报
回复
不行, 除非你开始就全用Servlet写!获得你jsp里面没有jsp相关的应用只是html代码而已。
因为你编译后,最终生成的servlet是根据你jsp文件生成的,里面的代码不是动态的了;
wjvonline 2005-09-20
  • 打赏
  • 举报
回复
你是不想让请你做这个项目的客户看到你的源码吧?可如果人家懂得话,不管你怎样做都没啥用啊,就是类文件都给你反一遍~ 如果他不懂的话,你的JSP只起显示作用,控制都交给SERVLETS来做了,我觉得无所谓嘛~

你要不嫌麻烦,把全部JSP都改写成SERVLET,呵呵~ 累得死哦
ses127127 2005-09-20
  • 打赏
  • 举报
回复
好像不行
Yanbin_Q 2005-09-20
  • 打赏
  • 举报
回复
我能不能在发布前把jsp全编译成相应的servlet,发布时就不要那些jsp源文件,是否可以作一些设置,然后直接发布那些编译好的servlet
silverend 2005-09-20
  • 打赏
  • 举报
回复
JSP最终都是要被“翻译”成SERVLET的,其实是jsp是特殊的Servlet

不过发布后,客户如果只是基于访问的话,即使针对页面查看源文件,也只能看到输出的HTML及脚本代码的,动态执行的代码是看不到
galewithwing 2005-09-20
  • 打赏
  • 举报
回复
哈哈!
用asp就不包含jsp文件咯!
开玩笑哦~~

如果你采用jsp技术,没办法没有jsp文件

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧