JSP如何实现页面与代码分离
发表于:2025-11-15 作者:千家信息网编辑
千家信息网最后更新 2025年11月15日,小编给大家分享一下JSP如何实现页面与代码分离,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、替换字符串的replace
千家信息网最后更新 2025年11月15日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安全错误
数据库的锁怎样保障安全
柳州网络安全大队
魔兽 服务器
好玩的国际版我的世界服务器
海口互联网智慧科技园
app 云数据库连接
电子软件开发南京韩国企业
上海计算机网络技术学的是什么
c语言数据库结构验证括号
网络技术服务合同免费
网络技术工程师就业规划
金税五期软件开发有限公司
为什么我的服务器建立不了角色
网易我的世界租赁服务器怎么装模组
软件开发公开课
内蒙古通讯软件开发服务应用
剑灵涅盘重生服务器在哪里
数据库查询成绩大于80分
服务器ibmc管理程序
手机软件开发工程师招聘
网络安全法责令改正
网络安全法规与网络安全
中国地区三级联动数据库
企业信息系统网络安全防御能力
山西线上生鲜配送软件开发
dell笔记本网络安全模式
数据库的三要素是什么
北京服务器机房销售公司云服务器
网络安全家长心得100字
广州网络技术最好的公司
网络技术与应用高考题