15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 网站运营 > Java Web初学者探索学习笔记6—快速开发项目实例

Java Web初学者探索学习笔记6—快速开发项目实例

时间:2023-05-24 14:57:02 | 来源:网站运营

时间:2023-05-24 14:57:02 来源:网站运营

Java Web初学者探索学习笔记6—快速开发项目实例:

一、需求分析

目前,javaweb项目的需求比较通用和类似,主流的有办公自动化系统、小型信息管理系统、电商系统等,因而其需求分析也基本比较常见,对照已有系统的需求分析进行删改即可。

二、数据库搭建

构建一个项目,在需求分析完后,一般先进行数据库搭建,在搭建数据库之前,首先进行PD设计,即用powerdesign(或visio等)绘制出泳道图和类图,泳道图是用于诠释业务流程的,类图是用于确定实体类的数据关系的;

根据类图,确定数据库搭建规则,将底层数据库搭建好,添加测试数据;

三、SSH2框架搭建

SSH2指的是结合使用Structs2、Spring、Hibernate三种框架搭建项目。

Structs2作为控制器(Controller)来建立模型与视图的数据交互。
Hibernate主要是利用其实现更简便的数据库交互。
Spring前面都说到了,作为分层总体框架,并对以上两者整合。
第一步:搭建dynamicweb项目,修改webcontext为webroot;

第二步:导入SSH2所需jar包,从网上下载所有自己当前版本的框架所需的jar包,并拷贝到web-inf中lib文件夹,自动构建成web资源库;

第三步:创建resource源码文件夹,功能同src文件夹,主要是与大公司开发保持一致的规范做法;

第四步:导入SSH2所需要的xml配置文件,在web-inf中导入已经配置好的通用的web.xml,在resource中导入applicationcontext.xml和structs.xml配置文件。

第五步:在src下搭建分层框架所需的包,规范是[国家域名].[公司域名].[项目名].[所需包名](例如cn.hust.dianshang.controller),所需的包名有:

entity封装所有的实体;
dao为数据访问层接口,及其实现类的包dao.impl;
service也有将该名命为biz的,业务逻辑层接口,及其实现类的包service.impl;
action也有命名为web或vo的;
util为工具类包,这个包一般不加前面的域名、项目名,因为这个部分比较通用,与本项目是独立的,可重用和被调用的;
第六步:UI通用架构(比如easyUI)源文件夹拷贝到webroot下,备用和修改;

由于eclipse有比较严格的js校验,源文件夹导入后其中jquery.min.js文件会报错,可以将eclipse中所在的项目配置文件.project中的JavaScriptvalidator和nuature中jsnature规则配置项删除,然后重新进入后,将该js文件打开后内容剪贴粘贴后即可解决;
强迫症患者建议修改,其他人不改也不影响使用;

四、正式业务功能实现

正式业务功能实现,会一个通用功能后,其他功能就举一反三即可。

这里举最简单的功能实现某部门(dep)列表的查询功能实现,不分页、不涉及增删改;代码实现的功能就是完成action,web浏览器地址栏输入action地址可以看到对应的json即实现效果。

第一步:编写实体类和映射文件。

编辑实体类,首先是查询和展示某部门列表,故在entity下新建实体类Dep,里面的字段根据“数据库搭建”里自己录入的dep部门表内容填入,比如其中含有三个字段UUID(主键和编号)、NAME(名称)、TELE(电话);

package cn.hust.dianshang.entity;public class Dep{ private Long uuid; private String name; private String tele; get/set(默认方法导入)} 编写该类的映射文件.xml

<?xml version="1.0" encoding="utf-8"><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping> <class name="cn.hust.dianshang.entity.Dep" table="DEP"> <id name="uuid"> <generator class="native"/> </id> <property name="name"/> <property name="tele"/> </class name></hibernate-mapping>第二步:数据访问层dao类及实现。

在dao包下建立接口IDepDao

package cn.hust.dianshang.dao;import java.util.List;import cn.hust.dianshang.entity.Dep;/**搭建数据访问层接口*/public interface IDepDao{ //返回所有记录 public List<Dep> getList();}在dao.impl包下建立实现类DepDao,由于其是数据访问层的实现类,所以还要继承HibernateDaoSupport的方法(部分方法省的自己实现了)。

package cn.hust.dianshang.dao.impl;import java.util.List;/**部门数据访问类*/public class DepDao extends HibernateDaoSupport implements IDepDao{ //返回所有记录 public List<Dep> getList(){ return getHibernateTemplate().find("from Dep"); }}第三步:业务逻辑层service类及实现。

在service包下建立接口IDepService,内容基本上和dao层类似。

package cn.hust.dianshang.service;import java.util.List;import cn.hust.dianshang.entity.Dep;/**搭建部门业务逻辑层接口*/public interface IDepService{ //返回所有记录 public List<Dep> getList();}在service.impl包下建立实现类DepService。

package cn.hust.dianshang.service.impl;import java.util.List;/**部门数据访问实现*/public class DepService implements IDepService{ //由于需要调用dao的数据,所以属性中需定义IDepDao类型对象,方便调用相关方法和属性参数 private IDepDao depDao; public void setDepDao(IDepDao depDao){ this.depDao = depDao; } //返回所有记录 @OverRide public List<Dep> getList(){ return depDao.getlist(); }}第四步:完成action。

在action包下建立类DepAction。

package cn.hust.dianshang.action;import java.util.List;/**部门action*/public class DepAction{ //由于需要调用service层方法和属性,故构建私有属性IDepServce private IDepServce depService; public void setDepService(IDepService depService){ this.depService = depService; } //返回所有记录 @OverRide public String list() throw Exception { List<Dep> list = depService.getList(); //用fastjson转换为json字符串 String jsonString = JSON.toJSONString(list); //通过servlet输出获取的字符串 HttpServletResponse response = ServletActionContext.getResponse(); response.setCharactorEncoding("UTF-8"); response.getWrite().print(jsonString); //由于只展示dep查询结果,不再跳转页面,故return结果不再录入,设定为null return null; }}第五步:编写修改配置文件。

代码基本完成,首先在applicationContext.xml文件中增加bean对象,需要用到sessionFactory,否则无法获取数据。

<!-- 部门数据访问层 --><bean id="depDao" class="cn.hust.dianshang.dao.impl.DepDao"> <property name="sessionFactory" ref="sessionFactory"> </property></bean><!-- 部门业务逻辑层 --><bean id="depService" class="cn.hust.dianshang.service.impl.DepService"> <property name="depDao" ref="depDao"> </property></bean><!-- 部门action --><bean id="depAction" class="cn.hust.dianshang.action.DepAction"> <property name="depService" ref="depService"> </property></bean>在structs.xml中配置文件。

<structs> <package name="default" namespace="/" extends="structs-default"> <!-- 通配符以可以调用所有dep开头的action方法 --> <action name="dep_*" class="depAction" method={1}></action> </package></structs>第六步:测试后端代码。

判断后端代码是否成功的标准是action中jsonString是否生成。

项目在eclipse中植入tomcat,run on server,根据我的服务器设置,我的电脑自动跳转到http://localhost:8081/dianshang/dep_list.action。

结果是web浏览器出现一组数据库内的字符串,即成功实现后端代码。

第七步:配置前端页面。

在webroot下生成dep.html文件,利用easyUI的js配置方式,在其中写入列表显示的配置信息。

<script type="text/javascript"> $(function()){ $('#grid').datagrid({ url:'dep_list.action', columns:[[ {field:'uuid',title:'编号',width:50}, {field:'name',title:'名称',width:100}, {field:'tele',title:'电话',width:200} ]] }); }</script><table id="grid"> </table>
恭喜你,第一个简单javaweb项目已经简单搭建完毕。

关键词:实例,项目,笔记,学习,学者

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭