JavaWeb课程设计 - 图文(3)
五、功能模块的详细设计
1、程序目录结构图
2、数据库访问模块
数据库的设计是需要针对每个模块而不是每个页面进行设置数据库模块,所有的数据访问类DUser、DIncome、Dcustomer、DFeedback、DRemind从同一个父类Dcommom继承,该父类提供了一个方法getDBConnection来获取数据库的链接。
11
DCommon代码
public class DCommon {
public Connection getDBConnection( ) {//尝试连接数据库 try
{ //载入MySQL的JDBC驱动类
Class.forName(CommonConst.DB_DRIVER_CLASSNAME); Connectionconn=DriverManager.getConnection
( CommonConst.DB_CONN_STRING );//获得数据库连接
return conn; }
catch(Exception ex) {
ex.printStackTrace(); return null; } } }
3、共通Servlet的处理
本系统中一旦代码出现了异常,将直接向上抛出,一直抛到共通类
Servlet进行处理。
在共通Servlet中发现异常,将页面跳转到错误处理页面,并把错误信息在页面上显示出来,同时提供一个往登录页面迁移的链接。 对应的共通Servlet的相关代码如下:
public class CommonServlet extends HttpServlet {
//保存各页面Id对应的action类的对象
private Hashtable hPageHandler = new Hashtable();
//配置文件的存放位置
private JXPathContext configContext = null;
public void init() {
12
//取得配置文件,并获得其中的dom元素
String filePath = getInitParameter(\
String fileRealPath = getServletContext().getRealPath(filePath);
//尝试建立配置文件的DOM try {
org.jdom.input.SAXBuilder builder = new SAXBuilder(); org.jdom.Document pDoc = builder.build(fileRealPath );
configContext = JXPathContext.newContext(pDoc);
GlobalObjectProvider.init( configContext ); }
catch(Exception e) {
System.out.println(\初始化失败!\ }
//初始化共通类以获取页面信息 CommonConst.init(); }
//每一种动作第一次执行的时候,初始化对应的类 public void doPost ( HttpServletRequest request,
HttpServletResponse response ) throws ServletException, IOException {
//设置提交表单的中文编码
request.setCharacterEncoding(\
HttpSession mySession = request.getSession(true);
//得到用户输入信息
String sPageId = request.getParameter(\ String sActionId = request.getParameter(\
if ( sPageId == null || sPageId.equals(\
|| sActionId == null || sActionId.equals(\ {
//非法进入页面,跳转到首页 mySession.invalidate();
response.sendRedirect(\ return;
13
}
//如果非法进入页面(登录页面除外) if ( !sPageId.equals(\
&& mySession.getAttribute(\ {
//非法进入页面,跳转到首页 mySession.invalidate();
response.sendRedirect(\ return; } try {
//根据pageId获得处理对象,如果没有则创建一个对象 Object oActionObject = hPageHandler.get( sPageId ); if ( oActionObject == null ) {
//根据配置文件创建一个新对象
String sClassName = (String)configContext.getValue(
\
oActionObject = Class.forName( sClassName ).newInstance(); hPageHandler.put( sPageId, oActionObject); }
//取得方法名
String sMethodName = (String)configContext.getValue(
\
//生成对应的参数,并调用对应对象的对应方法 //inputData是根据传入的参数做成的 Hashtable inputData = new Hashtable();
Enumeration params = request.getParameterNames(); while( params.hasMoreElements()) {
String sParaName = (String)params.nextElement();
inputData.put( sParaName, request.getParameter(sParaName) ); }
//outputData是下一个页面的值域,在此只是被初始化 Hashtable outputData = new Hashtable();
//生成参数列表
Class[] paraType = { Class.forName(\
14
Class.forName(\
Class.forName(\ Object[] paraObj = { inputData, outputData, mySession };
//生成Method对象
Method invokeMethod = oActionObject.getClass().getMethod( sMethodName, paraType );
//调用方法
invokeMethod.invoke( oActionObject, paraObj );
//根据outputData的结果决定下一个页面
String sNextPageId = (String)outputData.get(\ String sRealPagePath = (String)configContext.getValue(
\ //设置下一个页面的值域
mySession.setAttribute( sNextPageId, outputData ); response.sendRedirect( sRealPagePath ); return; }
catch(Exception e) {
//页面处理出错,跳转到错误处理页面 e.printStackTrace();
Hashtable outputData = new Hashtable(); outputData.put( \ //设置错误页面的值域
mySession.se …… 此处隐藏:1637字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [互联网资料]2022年厦门大学机电工程系824机械设计
- [互联网资料]东南大学2022年硕士研究生拟录取名单公
- [互联网资料]能源调研报告(精选多篇)
- [互联网资料]初三英语下学期 中考英语 语法填空训练
- [互联网资料]2022内蒙古选调生行测常识备考:新事物
- [互联网资料]自驾必备!在新西兰租什么样的车自驾游
- [互联网资料]佛教素食菜谱44页未完
- [互联网资料]盈利能力分析外文翻译
- [互联网资料]2022年南昌航空大学音乐学院736马克思
- [互联网资料]优选外贸跟单实习报告总结(精品版)
- [互联网资料]银行新员工培训总结
- [互联网资料]2_year_visa_new_guidance_190316
- [互联网资料]天津市五校宝坻一中静海一中杨村一中芦
- [互联网资料]2007--2008学年第一学期高三数学宁波市
- [互联网资料]Chromatic framework for vision in ba
- [互联网资料]幼儿园大班上学期美术教案《心愿树》含
- [互联网资料]2022年华中农业大学信息学院820微型计
- [互联网资料]硬盘坏道的表现 __硬盘使用久了
- [互联网资料]江苏省2016年会计从业资格考试《会计基
- [互联网资料]公共场所卫生监督试卷全解
- 高级英语第一册所有修辞方法及例子总结
- 综合交通枢纽规划与城市发展
- 沃尔玛的企业文化案例分析
- 美国Thanksgiving Day 感恩节 介绍
- PEP六年级英语上册Unit6How do you fee
- 最齐全的中国大型商场购物中心名单
- 数据结构实验报告八—哈夫曼编译码
- 杭州市余杭区人民政府(通知)
- 七年级语文成语运用专项训练
- 微观经济学第三章 消费者行为 课后习题
- 对_钱学森之问_的思考
- Excel_三级联动_下拉菜单
- 办公用品需求计划申请表
- 对外汉语教材必须要知道的发展史
- 挑战杯大学生学术科技作品竞赛作品申报
- 举办民办教育培训机构应具备下列条件
- 太阳能路灯项目设计方案
- 2013年八年级上最新人教版新教材Unit3I
- 【历史】 6-4 《近代科学之父牛顿》 课
- 高中生物《第四章 第二节 探讨加酶洗衣




