jeecms v5 系统安装设计和实现以及问题
在jeecms v5的系统安装中,安装系统提示可以安装系统。
设计思路如下:
提示用户安装并遵守协议-----》设置相关的系统参数信息----》创建数据库---》创建表---》导入初始化数据---》跟新数据库配置----》将数据库信息持久化xml---》更新web.xml文件---》提示安装成功。
安装
<meta http-equiv="refresh" content="3;URL=install/index.html"/> 您还没有安装JEECMS,3秒钟之后自动跳转到安装页面。<br/> 如果您的浏览器长时间没有反应,请直接点击<a href="install/index.html">JEECMS安装</a>。
|
install/index.html:一般是同意安装页
<script type="text/javascript"> function formSubmit() { if(document.getElementById('license_agree').checked==false){ alert('请同意我们的协议'); return false; } document.getElementById('license_form').submit(); } </script> <form id="license_form" action="install_params.jsp" method="post"> <input type="button" class="btn" onclick="formSubmit();" value="下一步>"/> |
进入安装数据库和参数页:
<form action="install_setup.jsp" method="post" onsubmit="return formSubmit();"> <tr> <td height="30" align="right">域名:</td> <td align="left"><input name="domain" type="text" class="input"value="<%=request.getServerName()%>"/></td> <td align="left">系统已经检测出您的域名,请勿改动</td> </tr> <tr> <td height="30" align="right">部署路径:</td> <td align="left"><input name="cxtPath" type="text"class="input" value="<%=request.getContextPath()%>"/></td> <td align="left">系统已经检测出您的部署路径,请勿改动</td> </tr>
|
安装:
<%@page contentType="text/html; charset=gbk" language="java"import="com.jeecms.core.util.*,java.util.*"%> <% String dbFileName = "/install/db/jeecms-db-2.4.2-final.sql"; String initFileName = "/install/db/jeecms-init-2.4.2-final.sql"; //创建数据库 if ("true".equals(isCreateDb)) { Install.createDb(dbHost, dbPort, dbName, dbUser, dbPassword); } else { Install.changeDbCharset(dbHost, dbPort, dbName, dbUser, dbPassword); } //创建表 if ("true".equals(isCreateTable)) { String sqlPath = application.getRealPath(dbFileName); List<String> sqlList = Install.readSql(sqlPath); Install.createTable(dbHost, dbPort, dbName, dbUser, dbPassword, sqlList); } //初始化数据 if ("true".equals(isInitData)) { String initPath = application.getRealPath(initFileName); List<String> initList = Install.readSql(initPath); Install.createTable(dbHost, dbPort, dbName, dbUser, dbPassword, initList); } //更新配置 Install.updateConfig(dbHost, dbPort, dbName, dbUser, dbPassword, domain, cxtPath, port); //处理数据库配置文件 String dbXmlPath = application.getRealPath(dbXmlFileName); Install .dbXml(dbXmlPath, dbHost, dbPort, dbName, dbUser, dbPassword); //处理web.xml String webXmlFromPath = application.getRealPath(webXmlFrom); String webXmlToPath = application.getRealPath(webXmlTo); Install.webXml(webXmlFromPath, webXmlToPath); //在Util里面
|
<!--EndFragment-->
问题:
在系统安装过程中既然用户可以通过请求数据库文件修改数据库信息,如果安装的信息不删除,用户完全可以通过这种方式重置数据库或者破坏数据库信息。
建议部署完毕采用手工删除install中文件的信息。
上一篇: jeecms 基本架构研究