网站内容编辑器(纯JSP展示,管理界面用HTTPBasic文件(图))
优采云 发布时间: 2022-02-24 03:26网站内容编辑器(纯JSP展示,管理界面用HTTPBasic文件(图))
完整源码下载:(百度云提供)
要求:提供带有“帮助”和“版权”文本内容的页面。特点:静态页面,无需读取数据库,只为处理频繁修改字词;无需复杂的交互,无需 JavaScript;没有图片,没有文件上传。
给出的方案:提供一页和简单的后台管理,功能单一,只需编辑页面(只需修改字体、大小、粗体、斜体等)。
实现思路:纯JSP展示,管理界面用HTTP Basic登录,页面内容由JS编写的HTML编辑器修改。直接修改服务器磁盘文件。
界面如下,右图为后台编辑。
值得一提的是,Tomcat 7下JSP默认的Java语法依然是1.6。在 JSP 中嵌入 Java 1.7 功能的代码将抛出“在 1.7 以下的源级别的资源规范在此不允许”异常。所以需要修改Tomcat/conf/web.xml中的配置文件找到节点(jsp
),在下面添加最后两个 init-param 节点部分。注意只有jsp节点可以,默认节点不行(很相似)。
jsp
org.apache.jasper.servlet.JspServlet
fork
false
xpoweredBy
false
compilerSourceVM
1.7
compilerTargetVM
1.7
3
实际上访问的JSP只有两个:/index.jsp和/admin/index.jsp,分别是静态页面和后台编辑页面。/admin/action.jsp 用于接收保存的动作,并从表单中发布数据。functions.jsp 是所有的业务逻辑代码,不能单独通过外部 url 访问。
我们先来看看 /index.jsp。
帮助
html {
font-size: 15px;
}
body {
padding: 0;
margin: 0 auto;
max-width: 600px;
-webkit-font-smoothing: antialiased;
font-family: "Microsoft YaHei", "ff-tisa-web-pro-1", "ff-tisa-web-pro-2",
"Lucida Grande", "Hiragino Sans GB", "Hiragino Sans GB W3", Arial;
background-color: #ebebeb;
}
h1 {
text-align: center;
font-size: 1.5rem;
letter-spacing: 2px;
color: #864c24;
border-bottom: #e0c494 solid 1px;
padding: 2% 0;
}
h2 {
font-size: 1rem;
letter-spacing: 1px;
color: #4c4c4c;
padding-bottom:0;
margin: 0;
}
p {
text-align: justify;
font-size: 1rem;
color: #818181;
margin: 1% 0;
margin-top:0;
}
ol {
padding: 0;
margin: 0;
}
ol {
}
ol>li>:first-child {
/* Make Firefox put the list marker inside */
/* https://bugzilla.mozilla.org/show_bug.cgi?id=36854 "if list-style-position is inside, bullet takes own line" */
display: inline;
}
ol>li>:first-child:after {
/* Add the margin that was lost w/ display: inline */
/* Firefox 10 displays this as block */
/* Safari 5.1.2 and Chrome 17.0.963.56 don't */
content: "";
display: block;
}
li {
padding: 5% 2%;
list-style-position: inside;
border-bottom: 1px solid #dddddb;
}
.text {
color: #a8a8a8;
font-size: 1rem;
font-weight: bold;
padding: 2%;
}
帮助
常见问题
Power TV的资费是怎样收取的?
<p>12元Power TV手机电视包月,产品代码88888888,12元/月;省内用户省内使用配送3G/月定向流量,流量仅用于使用Power TV,超过定向流量部分按标准资费收取;
Power TV的资费是怎样收取的?
12元Power TV手机电视包月,产品代码88888888,12元/月;省内用户省内使用配送3G/月定向流量,流量仅用于使用Power TV,超过定向流量部分按标准资费收取;
Power TV的资费是怎样收取的?
12元Power TV手机电视包月,产品代码88888888,12元/月;省内用户省内使用配送3G/月定向流量,流量仅用于使用Power TV,超过定向流量部分按标准资费收取;
Power TV的资费是怎样收取的?
12元Power TV手机电视包月,产品代码88888888,12元/月;省内用户省内使用配送3G/月定向流量,流量仅用于使用Power TV,超过定向流量部分按标准资费收取;
Power TV的资费是怎样收取的?
12元Power TV手机电视包月,产品代码88888888,12元/月;省内用户省内使用配送3G/月定向流量,流量仅用于使用Power TV,超过定向流量部分按标准资费收取;
Power TV的资费是怎样收取的?
12元Power TV手机电视包月,产品代码88888888,12元/月;省内用户省内使用配送3G/月定向流量,流量仅用于使用Power TV,超过定向流量部分按标准资费收取;
Power TV的资费是怎样收取的?
12元Power TV手机电视包月,产品代码88888888,12元/月;省内用户省内使用配送3G/月定向流量,流量仅用于使用Power TV,超过定向流量部分按标准资费收取;
</p>
这个 JSP 与一般的 JSP 没有什么不同,但是您是否注意到两个评论:和 - 这是我们同意的“可编辑”范围。当然,您也可以使用自定义 HTML Tag,只要定义了范围即可。网页只不过是 HTML。对于要编辑的东西,我们定义一个范围来指示编辑的位置,就是这样。至于为什么不让所有页面都可编辑?这是因为我们不希望用户编辑页面的其他部分,如果关键更改出现错误也不好。
好的,如何使这个 /index.jsp 可编辑?是用Java读磁盘的方法来做的。在此之前,您必须登录到 /admin/index.jsp。这里我们通过 HTTP Basic Authorization 进行用户认证,不需要数据库。如果您需要更改帐户密码,请打开 admin/functions.jsp 并编辑标题部分:
不过笔者在调试HTTP Basic Authorization的时候遇到了一个小问题,就是浏览器弹出的对话框,不知道怎么修改里面的提示文字。如果你知道童鞋,请告诉我!
action.jsp 也应该受到认证的限制,否则就是一个漏洞,允许其他人将任何数据 POST 到页面。
非法登录!
修改下一页,点击保存修改页面。
至于如何编辑HTML?这个答案想必大家都清楚,只用HTML可视化编辑器,在线,而不是Dreamweaver、FrontPage、VS Web之类的。老人们用过FCKEditror和TinyMCE Editor。这几年好像很喜欢用国产的,但我不知道。现在这是我自己写的,功能比较简单。
核心逻辑由以下代码完成。
用户使用账号和密码登录简单后台,可以通过可视化编辑器修改页面内容,修改后立即产生效果。
不足之处,还请指出。