JSP如何实现页面与代码分离
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,小编给大家分享一下JSP如何实现页面与代码分离,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、替换字符串的replace
千家信息网最后更新 2026年11月03日JSP如何实现页面与代码分离
小编给大家分享一下JSP如何实现页面与代码分离,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
一、替换字符串的replace函数
通过这个函数的使用来开始我们的页面与代码分离。
// 替换字符串函数 // String strSource - 源字符串 // String strFrom - 要替换的子串 // String strTo - 替换为的字符串 public static String replace(String strSource, String strFrom, String strTo) { // 如果要替换的子串为空,则直接返回源串 if(strFrom == null || strFrom.equals("")) return strSource; String strDest = ""; // 要替换的子串长度 int intFromLen = strFrom.length(); int intPos; // 循环替换字符串 while((intPos = strSource.indexOf(strFrom)) != -1) { // 获取匹配字符串的左边子串 strDeststrDest = strDest + strSource.substring(0,intPos); // 加上替换后的子串 strDeststrDest = strDest + strTo; // 修改源串为匹配子串后的子串 strSourcestrSource = strSource.substring(intPos + intFromLen); } // 加上没有匹配的子串 strDeststrDest = strDest + strSource; // 返回 return strDest; }二、Tld文(MyBookTag.tld) 定义你的标签
标签的定义也是在JSP源码中实现页面与代码分离的重要一步。
﹤?xml version="1.0" encoding="ISO-8859-1" ?﹥ ﹤!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd"﹥ ﹤taglib﹥ ﹤tlib-version﹥1.0﹤/tlib-version﹥ ﹤jsp-version﹥1.2﹤/jsp-version﹥ ﹤short-name﹥﹤/short-name﹥ ﹤tag﹥ ﹤name﹥ListBook﹤/name﹥ ﹤tag-class﹥com.book.taglib.ListBookTag﹤/tag-class﹥ ﹤body-content﹥JSP﹤/body-content﹥ ﹤/tag﹥ ﹤/taglib﹥
三、Tag的后台处理文件,负责解释标签(ListBookTag.java)
package com.book.taglib; import java.util.*; import java.lang.*; import com.book.model.bookmodel; import com.book.utils.StringHelper; import javax.servlet.jsp.JspTagException; import javax.servlet.jsp.tagext.BodyTagSupport; import javax.servlet.jsp.tagext.BodyContent; import javax.servlet.jsp.PageContext; import javax.servlet.jsp.JspWriter; import javax.servlet.ServletRequest; public class ListBookTag extends BodyTagSupport { // 标志开始位置执行 public int doStartTag(){ return EVAL_BODY_BUFFERED; } // 标志结束位置执行 public int doEndTag()throws JspTagException { int max = 0; String ListBody = null; int number = 1; // 获取页码信息,也就是request对象中的内容 String serialNo = pageContext.getRequest().getParameter("serialNo"); // 转换为整数 try{ number = Integer.parseInt(serialNo); } catch(Exception e){ number = 1; } if (number ﹤ 1) number = 1; // 获取保存在Session中的数据集,当然这里也可以从数据库中取数据 Vector bookVector = (Vector)pageContext.getSession().getAttribute("bookVector"); if(number*10﹤bookVector.size()) max = number*10; else max = bookVector.size(); if(bookVector.size()﹥0){ // 获取标签内部的内容 BodyContent bc = getBodyContent(); for (int i = (number - 1) * 10; i ﹤ max; i++) { // 获取一条记录 bookmodel model = (bookmodel) bookVector.get(i); if (model == null) model = new bookmodel(); // 替换内容(就是在这里输出数据的,替换) String body = bc.getString(); body = StringHelper.replace(body, "$_SerialNo", model.getBookid()); body = StringHelper.replace(body, "$_BookName", model.getBookname()); body = StringHelper.replace(body, "$_Author", model.getAuthor()); body = StringHelper.replace(body, "$_PHouse", model.getPhouse()); body = StringHelper.replace(body, "$_Price", model.getPrice().toString()); body = StringHelper.replace(body, "$_index", Integer.toString(i)); // 向页面输出 try{ pageContext.getOut().print(body); } catch(Exception e){ } } } return EVAL_PAGE; } }四、页面JSP源码(BookList.jsp)
至此我们可以操作JSP来实现页面与代码分离。
﹤%@page contentType="text/html; charset=GBK"%﹥ ﹤%@ taglib uri="/MyBookTag" prefix="MyBookTag" %﹥ ﹤html﹥ ﹤head﹥ ﹤title﹥一个基于J2EE的图书DEMO﹤/title﹥ ﹤script language="javascript"﹥ function returnBack(){ document.form1.action = "BookAdmin.jsp"; } ﹤/script﹥ ﹤/head﹥ ﹤body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0"﹥ ﹤h3 align="center"﹥﹤font face="黑体" color="#0000CC"﹥图书列表﹤/font﹥﹤/h3﹥ ﹤form name="form1" method="post"﹥ ﹤table width="750" border="1" cellspacing="0" align="center" cellpadding="3" bordercolor="#A***BB6" bordercolordark="#ffffff"﹥ ﹤tr align="center"﹥ ﹤td width="100" bgcolor="FEFBF4" height="41"﹥序号﹤/td﹥ ﹤td width="200" bgcolor="FEFBF4" height="41"﹥图示名称﹤/td﹥ ﹤td width="100" bgcolor="FEFBF4" height="41"﹥图书作者﹤/td﹥ ﹤td width="200" bgcolor="FEFBF4" height="41"﹥出版社﹤/td﹥ ﹤td width="50" bgcolor="FEFBF4" height="41"﹥图书价格﹤/td﹥ ﹤td width="100" bgcolor="FEFBF4" height="41"﹥操作﹤/td﹥ ﹤/tr﹥ ﹤!--这里使用标签技术,如果不用,就麻烦了,相信您一定有感触--﹥ ﹤MyBookTag:ListBook﹥ ﹤tr align="center"﹥ ﹤td width="100" height="19"﹥$_SerialNo﹤/td﹥ ﹤td width="200" height="19"﹥$_BookName﹤/td﹥ ﹤td width="100"﹥$_Author﹤/td﹥ ﹤td width="200"﹥$_PHouse﹤/td﹥ ﹤td width="50" height="19"﹥$_Price﹤/td﹥ ﹤td width="100" height="19" align="left"﹥ ﹤a href="bookEditTable.jsp?ItemNo=$_index"﹥ ﹤font color="#0000CC"﹥编辑﹤/font﹥ ﹤/a﹥ |﹤a href="bookview.jsp?ItemNo=$_index"﹥ ﹤font color="#FF0000"﹥查看﹤/font﹥ ﹤/a﹥ ﹤/td﹥ ﹤/tr﹥ ﹤/MyBookTag:ListBook﹥ ﹤/table﹥ ﹤table width="400" border="0"﹥ ﹤tr﹥ ﹤td width="100%" align="right"﹥ ﹤div align="right"﹥ ﹤input type="submit" name="Submit" value="返回" onClick="_javascript:returnBack();" class="annew1"﹥ ﹤/div﹥ ﹤/td﹥ ﹤/tr﹥ ﹤/table﹥ ﹤/form﹥ ﹤p align="left"﹥ ﹤/p﹥ ﹤/body﹥ ﹤/html﹥以上是"JSP如何实现页面与代码分离"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
页面
字符
字符串
代码
内容
标签
图书
数据
函数
篇文章
位置
标志
源码
输出
重要
不怎么
不用
也就是
价格
作者
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
亿人帮互联网科技有限公司
互联网医疗科技
朗涯互联网科技
睿民互联网科技
互联网科技公司有哪些
左右互联网络科技
互联网之后的科技是什么
温州喔噻互联网科技有限公司
团飞科技与伯堂互联网服务平台
金融科技与互联网金融相同和不同
华夏互联网科技业
速维有品互联网信息科技(苏州)有限公司
互联网科技大奖都有哪些公司
科技互联网海报
国大互联网教育科技有限公司薪资
皮皮虾互联网科技有限公司
21世纪互联网科技成就
中国新注册互联网科技
求路客互联网科技电话
安徽九吞吴互联网科技有限公司
上海喔噻互联网科技有限公司
互联网中国科技
北京互联网科技公司
奇酷互联网科技
北京大学互联网科技怎么样
企晟互联网信息科技有限公司
特约风豹互联网科技为什么扣费
广东鹅鹅鹅互联网科技有限公司
互联网硬科技公司
互联网科技机房