免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1994 | 回复: 5

jsp中提取java代码 [复制链接]

论坛徽章:
0
发表于 2004-04-13 20:36 |显示全部楼层
把<%@.....%>和<% ...... %>之间的java代码提取出来,这种问题其实也是老生常谈了,大家交流一下,看看那个的方法最好。贴代码时把自己的系统环境和sed/awk版本也最好写清楚。先不影响大家,我的代码过一会再贴。
  1. <%@ include file="../include/public.jsp" %>
  2. <html>
  3. <head>
  4. <table width="190" border=0 cellpadding=0 cellspacing=0>
  5.   <tr>
  6.     <td width="24"><img src="../images/spacer.gif" width="24" height="1"></td>
  7.     <td width="166" valign="top">
  8.    
  9. <%
  10.         Vector tmpVec = (Vector)session.getAttribute("funcVec");
  11.         String thisFunc = (String)session.getAttribute("thisFunc");
  12.         if (thisFunc == null)
  13.                 thisFunc = "";
  14.         if(tmpVec != null)
  15.         {
  16.                 drawTree(out,tmpVec,"",thisFunc);
  17.         }
  18. %>
  19.     </td>
  20.   </tr>
  21. </table>
复制代码

论坛徽章:
0
发表于 2004-04-13 21:05 |显示全部楼层

jsp中提取java代码

$cat j
<%@ include file="../include/public.jsp" %>
<html>
<head>
<table width="190" border=0 cellpadding=0 cellspacing=0>
<tr>
<td width="24"><img src="../images/spacer.gif" width="24" height="1"></td>
<td width="166" valign="top">
<%
Vector tmpVec = (Vector)session.getAttribute("funcVec";
String thisFunc = (String)session.getAttribute("thisFunc";
if (thisFunc == null)
thisFunc = "";
if(tmpVec != null)
{
drawTree(out,tmpVec,"",thisFunc);
}
%>
</td>
</tr>
</table>
  1. awk '/^<%@/{gsub(/<|>|@|%/,"")};!/^<|%/' file
复制代码
include file="../include/public.jsp"
Vector tmpVec = (Vector)session.getAttribute("funcVec";
String thisFunc = (String)session.getAttribute("thisFunc";
if (thisFunc == null)
thisFunc = "";
if(tmpVec != null)
{
drawTree(out,tmpVec,"",thisFunc);
}

awk:GNU Awk 3.1.1
OS:linux
ps:原文件由于paste的原因,我事先已经作了处理

论坛徽章:
0
发表于 2004-04-13 21:52 |显示全部楼层

jsp中提取java代码

  1. sed -e 's:<%@\(.*\)%>:\1:' -e 's:<.*::g' -e '/^$/d' file
复制代码


include file="../include/public.jsp"
        Vector tmpVec = (Vector)session.getAttribute("funcVec";
        String thisFunc = (String)session.getAttribute("thisFunc";
        if (thisFunc == null)
                thisFunc = "";
        if(tmpVec != null)
        {
                drawTree(out,tmpVec,"",thisFunc);
        }


忘了版本了:
GNU sed version 3.02
还不行在改改:
  1. sed "s:%>::g;s:<%@\(.*\):\1:;s:<.*::g;/^$/d" file
复制代码

论坛徽章:
0
发表于 2004-04-14 09:45 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
发表于 2004-04-16 14:25 |显示全部楼层

jsp中提取java代码

两天没来贴子沉的真快。
其实这个贴子的一个主要问题是,sed不同版本中使用
sed -n '/<%/,/%>/p' 方法的问题,(我原本没有意思删除<%和%>的,没有说清楚)
我试验的版本有gnu sed 3.02(redhat8自带)  gnu sed 4.0.3(redhat环境) cygwin sed 4.0.8(win2000上)
只有cygwin sed 4.0.8得到我想要的结果。另两个版本都是从<%@到最后的一个%>之间全部输出。
相对来讲改用awk '/<%/,/%>/' 似乎好一点,(我试的版本gnu awk 3.1.0, gnu awk 3.1.1(redhat, cgywin awk 3.1.3都得到我想要的结果).

论坛徽章:
0
发表于 2004-04-16 14:35 |显示全部楼层

jsp中提取java代码

但是,这个问题让我想起以前的一个帖子
http://bbs.chinaunix.net/forum/viewtopic.php?t=288142
或者大家试一下
$ cat a
aaa
bbb
ccc
bbb
$ cat a | sed -n '/aaa/,/bbb/'p
看看在不同版本的sed环境上是什么输出?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP