/**
   * 字符串替代。
   * <blockquote><pre>
   * 如:System.out.println(strReplace("this is a test","is","was",0));
   * 输出:thwas was a test
   * </pre></blockquote>
   * @param sBody  : 要进行替换操作的字符串
   * @param sFrom  : 被替换的子字符串
   * @param sTo    : 替换成的子字符串
   * @param count  : 替换多少次,0表示无限
   * @return 替换完成的字符串
   */
  public static String strReplace(String sBody, String sFrom, String sTo,int count) {
    int i,j,k,l;
    i = 0;
    l = 0;
    j = sFrom.length();
    k = sTo.length();
    if (k<j) k=sBody.length();
    else k=sBody.length()*2;
    StringBuffer ret = new StringBuffer(k);    while (sBody.indexOf(sFrom,i)!=-1) {
      ret.append(sBody.substring(i,sBody.indexOf(sFrom,i))+sTo);
      i = sBody.indexOf(sFrom,i);
      i += j;
      if ((count>0) && (++l>=count)) break;
    }
    ret.append(sBody.substring(i));
    return ret.toString();
  }/**
   * 把字符串转换成符合HTML语句的字符串
   * @param s  : 要进行替换操作的字符串
   * @return 转换完成的字符串
   */
  public static String toHtmlText(String s) {
    if (s==null) return s;
    s=strReplace(s,"&","&amp;");
    s=strReplace(s,"<","&lt;");
    s=strReplace(s,">","&gt;");
    s=strReplace(s,"\"","&quot;");
    s=strReplace(s," ","&nbsp;");
    s=parseReturn(s,"<br>\n");
    return s;
  }

解决方案 »

  1.   

    **
       * 把字符串转换成符合HTML语句的字符串
       * @param s  : 要进行替换操作的字符串
       * @return 转换完成的字符串
       */
      public static String toHtmlText(String s) {
        if (s==null) return s;
        s=strReplace(s,"&","&amp;");
        s=strReplace(s,"<","&lt;");
        s=strReplace(s,">","&gt;");
        s=strReplace(s,"\"","&quot;");
        s=strReplace(s," ","&nbsp;");
        return s;
      }
      

  2.   

    楼上的,不行哪,一运行就提示public static String toHtmlText(String s) {这句错误,无法运行啊,再指点一下好吗?
      

  3.   

    public static String toHTMLString(String in) {
       StringBuffer out = new StringBuffer();
       for(int i = 0; in != null && i < in.length(); i++) {
           char c = in.charAt(i);
           if(c == '\'') {
               out.append("&#39;");
           }
           else if(c == '\"') {
               out.append("&#34;");
           }
           else if(c == '<') {
               out.append("&lt;");
           }
           else if(c == '>') {
               out.append("&gt;");
           }
           else if(c == '&') {
               out.append("&amp;");
           }
           else {
               out.append(c);
           }
           return out.toString(); 
    }
      

  4.   

    long_zhi(要啥没啥),不好意思问一下,这个是不是要编译成类的,不能直接在网页中写上的,我的理解对吗?另外,String in这个是什么意思?望指教,谢谢。
      

  5.   

    当然你也可以直接写在jsp里边,jsp最后还是要被编译成servlet的
      

  6.   

    我写的是一个通用的方法,你把它写到一个java文件了,编译后在jsp里调用就好了。
      

  7.   

    long_zhi(要啥没啥)说可以直接写在jsp里边,但这样不行的,和ejbcreate()所写的代码一样,一运行就出现public static String toHTMLString(String in)这条语句错误,但我想代码应该是没问题的,只是不能直接写在jsp里边吧,能解释一下为何上面所写的代码都提示首条语句出错呢?再烦指点一点原因好吗,谢谢了。
      

  8.   

    你把它放在<%! %>中去
      

  9.   

    long_zhi(要啥没啥)所提供的代码编译不能通过呀,编译时出现如下错误提示:
    StringBuffer.java:1: 'class' or 'interface' expected
    public static String toHTMLString(String in) {
                  ^
    1 error
    什么意思呢?看不懂,我给java文件取的名字是StringBuffer.java,应该没错的。再试一下ejbcreate()提供的代码,看能不能通过。
      

  10.   

    按照long_zhi(要啥没啥)的写法我将代码放到<%! %>中,但运行时还是出现如下错误:
    org.apache.jasper.JasperException: Unable to compile class for JSPNo Java compiler was found to compile the generated source for the JSP. 
    This can usually be solved by copying manually $JAVA_HOME/lib/tools.jar from the JDK 
    to the common/lib directory of the Tomcat server, followed by a Tomcat restart. 
    If using an alternate Java compiler, please check its installation and access path. org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:128)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:307)
    org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:415)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:455)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:555)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:300)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:293)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)究竟什么原因呢?不明白。
      

  11.   

    <% page import="java.lang.*" %>
      

  12.   

    long_zhi(要啥没啥),还是不行哪,提示错误如下:
    org.apache.jasper.JasperException: Unable to compile class for JSPNo Java compiler was found to compile the generated source for the JSP. 
    This can usually be solved by copying manually $JAVA_HOME/lib/tools.jar from the JDK 
    to the common/lib directory of the Tomcat server, followed by a Tomcat restart. 
    If using an alternate Java compiler, please check its installation and access path. org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:128)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:307)
    org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:415)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:455)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:555)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:300)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:293)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:240)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    和上面的错误提示一样的。
      

  13.   

    你的classpath设置有问题,检查一下
      

  14.   

    不会吧,我运行至今都没问题的,我是这样设的:
    .;C:\j2sdk1.4.2\lib\tools.jar;C;\j2sdk1.4.2\lib\dt.jar;C;\j2sdk1.4.2\lib\mm.mysql-2.0.4-bin;
    对不对呢?请指点。