JSP如何实现页面与代码分离
发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,小编给大家分享一下JSP如何实现页面与代码分离,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、替换字符串的replace
千家信息网最后更新 2025年02月08日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安全错误
数据库的锁怎样保障安全
数据库中如何设置属性不隐藏
人多的时候服务器很卡怎么办
计算机网络安全培训心得
软件开发哪个火
网络安全设备作图图标
网络安全示范单位创建汇报材料
如何做好网络安全售前
金窗软件开发
武汉市新洲区DNS服务器地址
onlinedb数据库是什么
瓦拉网络技术
nike注册服务器连接失败
服务器推送数据
大v店数据库
虹口区智能化软件开发厂家价格
服务器怎么生成url地址
远程桌面添加数据库
科技互联网城市素材
网络安全展会参展商名录
网络安全和国家安全教育日
数据库中如何设置属性不隐藏
电脑如何登录rcms服务器
初中网络安全宣传报道
常见的软件开发模型有哪些
完美哪个服务器最卡
东莞微草互联网科技有限公司
怎么查看连接服务器里的网址
触发器 数据库软考
泗阳多功能网络技术是什么
腾讯的数据库放在哪里