本博客记录了接单全程
项目流程
- 与客户沟通,确定需求,如果客户需求不定,就根据客户需要的功能以及应用范围制定出需求范本给客户看
- 客户确定最终需求
- 商量开发费用与周期,一般是定金40%,后期的自行商量
- 数据库设计
- 选前端页面框架,设计好前端页面,网上一大堆模板资源,挑选出来合适的给客户选择
- 整体规划一下,具体从何做起
环境与技术
- Java:java8
- Tomcat:tomcat8
- 页面:jsp页面
- 数据库:mysql5.5
- 框架:基于servlet和jsp
- 调试浏览器:Google Chrome浏览器
- 系统:win10或者linux
- 前端:layui(成本低)
1. 背景
产品名称:医疗科技公司网站
最终用户:网站管理人员及网上用户
2. 用户特点
本网站的用户都是网络用户,包括两大类,一类是访问者,另一类是企业网站管理人员。
3. 角色定义:
角色是指与系统产生交互的外部用户或者外部系统。
网站角色有两类,访问者,企业管理员。外部系统为数据库。
4. 角色定义:系统主要用例
此网站可以分为两个主要组成部分,一个是客户端子系统,一个是管理端子系统。客户端子系统功能主要是指网上访问者对于网站的访问与信息查询等。管理端子系统的功能主要是对网站信息进行管理。
5. 功能描述
1) 访问者:
仅能访问公司网站的公开信息部分
2) 网站管理者
所有网站管理者均可以对订单以及网站页面信息进行操作(为保信息安全,每一次操作都会产生对应一条记录保存操作者的信息)
对于所有管理者:
a) 联系方式增删改查
b) 网站主页滚动图片管理
c) 注册登录
d) 公司介绍管理
e) 公司档案信息管理
f) 公司荣誉资质管理
g) 公司相册管理
h) 订单管理(即采购清单管理)
i) 招商代理管理
j) 产品管理
i. 产品推荐设置
ii. 供应产品设置
iii. 产品分类管理
对于网站顶层管理者:
a) 人员管理(对已注册的管理员或者未注册的准管理员进行信息管理,防止数据库人员信息只进不出)
目录结构
web配置
防止sql注入过滤器
<filter>
<filter-name>SqlInjectFilter</filter-name>
<filter-class>com.jianxiao.util.SqlInjectFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SqlInjectFilter</filter-name>
<url-pattern>/ *</url-pattern>
</filter-mapping>
package com.jianxiao.util;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Enumeration;
public class SqlInjectFilter implements Filter {
public void destroy() {
}
public void init(FilterConfig arg0) throws ServletException {
}
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
// 获得所有请求参数名
Enumeration params = request.getParameterNames();
String sql = "";
while (params.hasMoreElements()) {
// 得到参数名
String name = params.nextElement().toString();
// 得到参数对应值
String[] value = request.getParameterValues(name);
for (int i = 0; i < value.length; i++) {
sql = sql + value[i];
}
}
if (sqlValidate(sql)) {
// throw new IOException("您发送请求中的参数中含有非法字符");
sql = "null";
} else {
chain.doFilter(request, response);
}
}
/**
* 参数校验
*
* @param str
*/
public static boolean sqlValidate(String str) {
str = str.toLowerCase();// 统一转为小写
System.out.println("这是----->"+str);