大家好,简单聊一聊由ssm框架搭建的一个普通的web项目
CRM项目的核心业务:
1)CRM项目的简介:Customer Relationship Management 客户关系管理系统
企业级应用,传统应用;给销售或者贸易型公司使用,在市场,销售,服务等各个环节中维护客户关系,
CRM项目的宗旨:增加新客户,留住老客户,把已有客户转化为忠诚客户。
2)CRM是一类项目,我们的CRM是给一个大型的进出口贸易公司来使用的,做大宗商品的进出口贸易;商品是受管家管制的。
3)CRM项目的核心业务:
系统管理功能:不是直接处理业务数据,为了保证业务管理的功能正常安全运行而设计的功能。
用户登录,安全退出,登录验证等
给超级管理员,开发和运维人员使用。
业务管理功能:处理业务数据
市场活动:市场部,设计市场活动营销活动
线索:销售部(初级销售),增加线索
客户和联系人:销售部(高级销售),有效地区分和跟踪客户和联系人.
交易:销售部(高级销售),更好地区分和统计交易的各个阶段。
售后回访:客服部,妥善安排售后回访。主动提醒。
统计图表:管理层,统计交易表中各个阶段数据量。
1,web项目的开发要素四:如何分析,设计,编码,测试。
2,crm的所用到的一些技术架构:
视图层(view):展示数据,跟用户交互。
html,css,js,jquery,bootstrap(ext|easyUI),jsp
控制层(Controller):控制业务处理流程(接收请求,接收参数,封装参数;根据不同的请求调用业务层处理业务;根据处理结果,返回响应信息
(servlet,)springMVC(,webwork,struts1,struts2)
业务层(Service):处理业务逻辑(处理业务的步骤以及操作的原子性
JAVASE(工作流:activiti|JBPM)
持久层(Dao/Mapper):操作数据库.
(jdbc)mybatis(,hibernate,ibatis)
整合层:维护类资源,维护数据库资源
spring(IOC,AOP)(,ejb,corba)
注:括号里的也需要了解掌握
好了,等了解公司伙伴各自要解决的事务和要做的项目具体情况就可以开始搭建了
1,首先是crm的表结构,这一步要做得的不多,很多都是已经设计好的,由项目经理传给你
2,创建crm的数据库实例:把sql脚本导入数据库实例
3,搭建开发环境:
1)创建项目:crm-project
设置JDK.
创建工程:crm
补全目录结构
设置编码格式:UTF-8
2)添加jar包:添加依赖
3)添加配置文件
4)添加静态页面资源:
web应用根目录下的内容都是不安全的,外界可以通过url直接访问;
所以,一般为了数据的安全,都会把页面放到WEB-INF下,因为WEB-INF目录下的资源是受保护的,外界不能直接访问。
5)把crm项目部署到tomcat上:
4:首页:
1)分析需求:
2)分析与设计:
3)编码实现:
4)测试:
整体的流程图大致如下:
5.接下来实现的是登录功能
异步请求:ajax发出的请求,响应信息返回到ajax的回调函数,既可以进行全局刷新,也可以进行局部刷新
mybatis逆向工程:
1)简介:根据表生成mapper层三部分代码:实体类,mapper接口,映射文件。
2)使用mybatis逆向工程:
a)创建工程:crm-mybatis-generator
b)添加插件:
<!--myBatis逆向工程插件-->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
c)添加配置文件:
数据库连接信息
代码保存的目录
表的信息
d)运行mybatis的逆向工程,根据指定表生成java代码,保存到指定的目录中。
使用jquery获取指定元素的指定属性的值:
选择器.attr("属性名");//用来获取那些值不是true/false的属性的值.
选择器.prop("属性名");//用来获取值是true/false的属性的值.例如:checked,selected,readonly,disabled等。
安全退出流程:
1,把控制层(controller)代码中处理好的数据传递到视图层(jsp),使用作用域传递:
pageContext:用来在同一个页面的不同标签之间传递数据。
request:在同一个请求过程中间传递数据。
session: 同一个浏览器窗口的不同请求之间传递数据。
application:所有用户共享的数据,并且长久频繁使用的数据。
<c:aaaa>
<c:bbbb>
2,jquery事件函数的用法:
选择器.click(function(){//给指定的元素添加事件
//js代码
});
选择器.click();//在指定的元素上模拟发生一次事件
3,记住密码:
访问:login.jsp---->后台:.html:如果上次记住密码,自动填上账号和密码;否则,不填。
如何判断上次是否记住密码?`
--上次登录成功,判断是否需要记住密码:如果需要记住密码,则往浏览器写cookie;否则,删除cookie。
而且cookie的值必须是该用户的loginAct和loginPwd
--下次登录时,判断该用户有没有cookie:如果有,则自动填写账号和密码;否则,不写。
而且填写的是cookie的值.
----->浏览器显示
获取cookie:
1,使用java代码获取cookie:
Cookie[] cs=request.getCookies();
for(Cookie c:cs){
if(c.getName().equals("loginAct")){
String loginAct=c.getValue();
}else if(c.getName().equals("loginPwd")){
String loginPwd=c.getValue();
}
}
2,使用EL表达式获取cookie:
${cookie.loginAct.value}
${cookie.loginPwd.value}