美文网首页
3、商品添加

3、商品添加

作者: 海豚的小小海 | 来源:发表于2017-10-12 11:39 被阅读0次

1 商品类目选择

1.1Service层

easyUi的异步tree控件

树控件读取URL。子节点的加载依赖于父节点的状态。当展开一个封闭的节点,如果节点没有加载子节点,它将会把节点id的值作为http请求参数并命名为'id',通过URL发送到服务器上面检索子节点。

找Bug小技巧之file search

fileSearch1.png fileSearch2.png

2.2 Controller层

功能:接收页面请求的参数,名为 id。调用service查询分类列表,返回json格式的数据(列表)。需要使用@ResponseBody注解。

2 上传图片

2.1 图片保存的位置

2.1.1 集群环境

在集群环境中,用户上传图片到一台tomcat,再次访问图片时连接到的是另外一台tomcat,此时访问不到图片。

这种情况,会出现用户有时刷新页面能看到图片,有时又看不到图片。

传统方式.png

解决的办法:将图片放在一台专门的服务器上。

ftp服务器.png

2.1.2 nginx安装

2.1.2.1 nginx安装环境

gcc
安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:
yum install gcc-c++

PCRE
PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。
yum install -y pcre pcre-devel
注:pcre-devel是使用pcre开发的一个二次开发库。nginx也需要此库。

zlib
zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。
yum install -y zlib zlib-devel

openssl
OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。
yum install -y openssl openssl-devel

2.1.2.2 编译安装

将nginx-1.8.0.tar.gz拷贝至linux服务器。

解压:
tar -zxvf nginx-1.8.0.tar.gz
cd nginx-1.8.0

1、configure
./configure --help查询详细参数(参考本教程附录部分:nginx编译参数)

参数设置如下:

---直接全部复制运行
./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi

注意:上边将临时文件目录指定为/var/temp/nginx,需要在/var下创建temp及nginx目录

2、编译安装
make
make install

安装成功查看安装目录 :

make.png

3、启动nginx

cd /usr/local/nginx/sbin/
./nginx 

查询nginx进程:

nginx进程.png

15098是nginx主进程的进程id,15099是nginx工作进程的进程id

注意:执行./nginx启动nginx,这里可以-c指定加载的nginx配置文件,如下:
./nginx -c /usr/local/nginx/conf/nginx.conf
如果不指定-c,nginx在启动时默认加载conf/nginx.conf文件,此文件的地址也可以在编译安装nginx时指定./configure的参数(--conf-path= 指向配置文件(nginx.conf))

4、停止nginx
方式1 快速停止:
cd /usr/local/nginx/sbin
./nginx -s stop
此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。

方式2 完整停止(建议使用):
cd /usr/local/nginx/sbin
./nginx -s quit
此方式停止步骤是待nginx进程处理任务完毕进行停止。

2.1.3 可能存在的问题

./nginx无法运行

出现这个错误只需root下手动创建目录即可。
如图所示

目录问题.png
真机无法访问nginxx服务

一般是防火墙引起的

在CentOS/RHEL 6上开启端口:
在CentOS/RHEL 6甚至更早版本系统上,iptables服务负责维护防火墙规则。

使用iptables的第一条命令可以通过防火墙开启一个新TCP/UDP端口。为了永久保存修改过的规则。

$ sudo iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
$ sudo service iptables save 
$ sudo service iptables restart

在CentOS/RHEL 7上开启端口
启动CentOS/RHEL 7后,防火墙规则设置由firewalld服务进程默认管理。一个叫做firewall-cmd的命令行客户端支持和这个守护进程通信以永久修改防火墙规则。

使用这些命令来永久打开一个新端口(如TCP/80)。

$ sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
$ sudo firewall-cmd --reload 

ftp服务

ftp服务安装部署成功及测试
http://blog.csdn.net/likunwen_001/article/details/49847677
https://zhidao.baidu.com/question/334450562.html

不能上传图片至自己生成的文件夹,只能上传至根目录
http://blog.csdn.net/liquantong/article/details/74080095

ftp服务器上的文件夹所有者一定要是ftpuser,否则无法上传。

文件上传,这里需要使用到commons jar包下的FtpClient:

public void testFtpClient() throws Exception {
        // 创建一个FtpClient对象
        FTPClient ftpClient = new FTPClient();
        // 创建ftp连接,默认端口是21
        ftpClient.connect("192.168.76.132", 21);
        // 登录ftp服务器,使用用户名和密码
        ftpClient.login("ftpuser", "hyh43219966");
        // 上传文件
        // 读取本地文件
        FileInputStream fileInputStream = new FileInputStream(
                new File("E:\\Documents\\pictures\\shanzhi.png"));
        // 设置上传的路径
        ftpClient.changeWorkingDirectory("/home/ftpuser/www/images");
        // 修改上传文件的格式 (二进制格式)
        ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
        // 第一个参数:服务器端文档名
        // 第二个参数:上传文档的 inputStream
        ftpClient.storeFile("hello.png", fileInputStream);
        // 关闭连接
        ftpClient.logout();
    }

最后总结

nginx配置完成最后一定要记得配置图片服务器的根目录

配置图片服务器
在nginx的默认配置文件nginx.config的server{}中location /{} 修改配置 80端口号:
 #默认请求  
location / {  
   root  /home/ftpuser/www;#定义服务器的默认网站根目录位置  
   index index.html index.php index.htm;#定义首页索引文件的名称  
}  

其中:/home/ftpuser/www;为创建FTP服务账户ftpuser的根目录下的www目录

引发403 Forbidden的原因
1、在根目录下没有index索引文件
2、文件夹与文件的权限不够,最好文件夹全部设成755,文件全部644
http://blog.csdn.net/lanjianhun/article/details/26836343

完整的nginx+ftp部署
http://blog.csdn.net/u012401711/article/details/53525908

相关文章

  • 3、商品添加

    1 商品类目选择 1.1Service层 easyUi的异步tree控件 树控件读取URL。子节点的加载依赖于父节...

  • vue中localStorage浏览器缓存点击添加对象

    在公司项目中需求,点击商品添加浏览器缓存,商品只能存在localStorage中3条数据,重复不能添加,超出3个删...

  • vue vue-router vuex element-ui a

    写后台商品页面的思路 1、分析功能需求 管理商品必须要实现的几个功能 1、展示所有商品 2、添加商品 3、修改商品...

  • 添加商品

    添加商品前,请先删除系统预设商品。点击进入商品详情页拉至最后,点击删除即可。 添加商品具体操作:在“商品与套餐”页...

  • PHP简单电商平台

    搭建框架,添加常用辅助函数 设计数据库 实现后台功能 商品分类 功能 添加商品分类,显示商品分类,编辑商品分类,删...

  • Java重写对象的equals、toString、hashcod

    需求 添加一组商品到目标列表:进入待选择商品列表,已添加的商品显示选中状态,可以取消选中和选中,最后添加所有选中商...

  • 添加新商品

    建议使用浏览器:chrome浏览器 登录管理后台,选择商品管理菜单,点击添加商品。商品管理菜单 输入商品基本信息,...

  • iOS 内购流程(二)——创建内购项目

    1、添加内购项目 2、选择内购类型 3、根据自己APP的需求选择类型 4、继续 5、商品列表 6、选择APP商品 ...

  • day52-Django项目-天天生鲜

    一、商品详情模块 1.在urls.py文件中定义路由 2.查看商品详情功能 3.detail.html 二、添加商...

  • 商城类App技术

    购物车 商品增删处理 设置广播事件。添加商品-》发送广播-》处理广播 设置接口。添加商品-》触发接口 使用观察者模...

网友评论

      本文标题:3、商品添加

      本文链接:https://www.haomeiwen.com/subject/dnawyxtx.html