jsp中全文给关键词加链接

问题描述

文章中对某些词加链接,例如对“百度”关键词:<p align="center"><img border="0" src="/UserFiles/Image/20120419082538_802.jpg" alt="">你好,欢迎加入百度!</p>我在jsp后台对该内容字段直接replace替换:<p align="center"><img border="0" src="/UserFiles/Image/20120419082538_802.jpg" alt="">你好,欢迎加入<a href="http://www.baidu.com">百度</a>!</p>但是,现在遇到一个问题,如果出现如下情况:<p align="center"><img border="0" src="/UserFiles/Image/20120419082538_802.jpg" alt="你好,欢迎加入百度">你好,欢迎加入百度!</p>就连img中alt内容都替换掉了:<p align="center"><img border="0" src="/UserFiles/Image/20120419082538_802.jpg" alt="你好,欢迎加入<a href="http://www.baidu.com">百度</a>">你好,欢迎加入<a href="http://www.baidu.com">百度</a>!</p>这样前台页面就出错了,该如何实现只替换普通内容的,alt中的内容不替换,求教高手们,谢谢! 问题补充:我的解决方法及思路:将图片img(或者直接alt标签)用某个不常出现的字符串替换掉,完成关键字替换后,再替换回来代码:ArrayList<String> keywordArrStrings = new ArrayList<String>();String content = "<p align="center"><img border="0" src="/UserFiles/Image/20120419082538_802.jpg" alt="你好,欢迎加入百度">你好,欢迎加入百度!</p> ";String regex = "<img[\s\S]+?>";Pattern p = Pattern.compile(regex);Matcher m = p.matcher(content);String val = null; while(m.find()){val = m.group();keywordArrStrings.add(val);}content = content.replaceAll(regex, "---------");/******************原程序加关键字部分代码**************************/for (int j = 0; j < keywordArrStrings.size(); j++) {content = content.replaceFirst("---------", keywordArrStrings.get(j));}

解决方案

String text = "<p align='center'><img border='0' src='/UserFiles/Image/20120419082538_802.jpg' alt='你好,欢迎加入百度'>你好,欢迎加入百度!</p>";String demo = "百度";String outText = "";String replaceText = "<a href='http://baidu.com'>百度</a>";if(!text.contains(demo)){outText = text;}else{do{int demoIndex = text.indexOf(demo);String leftText = text.substring(0, demoIndex);String rightText = text.substring(demoIndex+demo.length());int ltIndex = rightText.indexOf("<");int gtIndex = rightText.indexOf(">");if(ltIndex <= gtIndex){outText += (leftText+replaceText);}else{outText += (leftText+demo);}if(!rightText.contains(demo)){outText += rightText;break;}text = rightText;}while(text.contains(demo));}输出的outText就是你想要的结果,我这段代码主要是处理需要替换的字符串不应出现在尖括号对里,有一点需要注意的就是非html标签含义的‘<’‘>’可能会对程序输出产生影响。
解决方案二:
替换“百度!”为“<a>百度</a>!”

时间: 2024-08-18 07:26:12

jsp中全文给关键词加链接的相关文章

在jsp中怎么给文字加背景图片啊

问题描述 在jsp中怎么给文字加背景图片啊 动态生成的菜单 代码如下 function startParentNode(text){ //alert(text); if(""站址管理"" == text){ document.write('<table border=""0"" cellpadding=""1"" cellspacing=""0"&qu

帝国cms后台发文章时关键词加链接方法

帝国cms后台发文章时关键词加链接方法 方法一:系统设置:后台>其他管理>管理内容关键字 方法二:手工加你选择文字然后再点那个插入链接

帝国cms内容关键字自动加链接且设置内容关键字只替换一次

网站上线前先设置一些内部链接对后期的优化排名很有帮助,帝国cms也可以设置文章中的关键字自动加链接,但是要注意一下关键词替换次数,最好是1次. 怎么操作呢?分两步完成 1.帝国cms文章关键字自动加链接:后台 - 其他 - 管理内容关键字 - 在框中添加关键词和链接 2.设置关键词只显示一次(关键词链接只替换一次) 后台 - 系统 - 系统 - 系统设置 - 系统参数设置 - 信息设置 找到"信息内容关键字重复替换",把默认的"0"改成"1" 帝

jsp页面中的代码执行加载顺序介绍

 本篇文章主要是对jsp页面中的代码执行加载顺序进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 1. java是在服务器端运行的代码,jsp在服务器的servlet里运行,而javascript和html都是在浏览器端运行的代码.所以加载执行顺序是是java>jsp>js.   2. js在jsp中的加载顺序   页面上的js代码时html代码的一部分,所以页面加载的时候是由上而下加载.所以js加载的顺序也就是页面中<script>标签出现的顺序.<scrip

javascript-【js问题】打开jsp页面时在加载过程中可以显示正在加载提示,完成后隐藏

问题描述 [js问题]打开jsp页面时在加载过程中可以显示正在加载提示,完成后隐藏 我在jsp页面中写了一个<%解析json字符串%>,在页面打开的时候会加载很慢,我想实现在页面加载时出现正在加载提示的效果,用了window.onload()和$(function(){}),都不能打开页面就显示,等<%解析json字符串%>执行完后才可以,我想问有什么办法一开始就显示. 解决方案 把window.onload()或者$(document).ready(function()){} 放

在FF chrom中加载xml是可以的,但用到加载jsp中的xml 会报错

问题描述 在FF chrom中加载xml是可以的,但用到加载jsp中的xml 会报错 js加载的jsp文件 jsp文件内容 解决方案 你的page指令和include放一行去,并且<?xml申明紧跟include指令后面,要不你的xml格式会出错 xml申明前面不能有空白行 解决方案二: 报的错误,报错误的jsp页面头部

jsp中form中的action后加?传参数问题

问题描述 jsp中form中的action后加?传参数问题 我实现的编辑界面但是对数据更改 提交后,数据并没有改变,servlet/AdminContoller调用了doget .dopost两种方法,跪求大神解答数据更改后为什么没有改变.. 解决方案 post提交,,action中?后的参数是获取不到的,,一般都是用一个隐藏域传参的 解决方案二: jsp form 表单或超链接传参数中文乱码问题小结form action中传递参数的问题form action中传递参数的问题 解决方案三: 加参

javascript-关于JSP中链接跳转的问题

问题描述 关于JSP中链接跳转的问题 我用javascript写了一个图片动态转换的效果,然后点击图片会跳入相应链接,如下javascript代码是我从其他项目代码移植过来的,结果我发现当点击进入链接页面的时候会从新打开一个新的页面,可是我想把初始的页面转换成新的页面,谁懂下列代码并且知道如何设置的,求指教! var isIE = (document.all) ? true : false; var $ = function (id) { return "string" == type

jsp中链接mysql安装驱动的出现异常,求指导

问题描述 jsp中链接mysql安装驱动的出现异常,求指导 jsp中已经导入mysql的jdbc,调试仍然显示: javax.servlet.ServletException: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 解决方案 在页面上静态导入这个类试下. 解决方案二: mysql的驱动包放在构建路径里面了吗?