java模块总结

memcached集群配置文档

一、 Memcached的安装
1. linux下memchached的安装,请参考网络
2. windows下memcahced的安装:
在命令行中进入memcached目录,执行以下命令
memcached.exe –d install
memcached.exe –d start

二、 将lib目录中所有Jar复制到tomcat/lib目录
三、 配置虚拟目录:
<Context  path=”/”

docBase=”Z:/workspace/runtime/v4/wtpwebapps/javamall” debug=”0″>

<Manager className=”de.javakaffee.web.msm.MemcachedBackupSessionManager”

memcachedNodes=”n1:localhost:11211″

sticky=”false”

sessionBackupAsync=”false”

lockingMode=”auto”

requestUriIgnorePattern=”.*\.(ico|png|gif|jpg|css|js)$”

transcoderFactoryClass=”de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory”  />

</Context>

其中红色部分是需要改为你本地相应的javashop应用所在路径和memcached服务器地址,如果是本地则为localhost,如果是其它服务器请写ip

本配置是用的kryo做为序列化,其它配置可参考

https://code.google.com/p/memcached-session-manager/wiki/SetupAndConfiguration

 

文档所需jar及memcached 的windows版本请至这里下载:

http://pan.baidu.com/s/1qWzAl8w
——————————————————————————————————–
javashop-迄今为止国内最好的Java网店系统
基于Spring3 + Struts2 +Freemarker框架
丰富的API、插件式架构极容易的二次开发
丰富的API、组件式架构、丰富的标签库,快速打造精美模板

有单用户商城和多用户商城两个版本,欢迎试用:

—————单店系统—————–
前台:

http://www.javamall.com.cn/version4/

后台:

http://www.javamall.com.cn/version4/admin

用户名和密码都是admin
—————————————

—————多用户商城系统———————
前台:

http://www.javamall.com.cn/b2b2c/index.html

后台:

http://www.javamall.com.cn/b2b2c/admin

用户名和密码都是admin
—————————————————

发表在 javashop相关帮助技术 发表回复

javashop如何做商品图片上传的插件

插件
首先插件方法需继承 AbstractGoodsPlugin 实现IGoodsTabShowEvent
例: public class GoodsPicturelistPlgin extends AbstractGoodsPlugin implements IGoodsTabShowEvent

插件HTML模板需写在插件方法的同一目录下,并且名字需跟插件命相同

插件使用HTML模板:

FreeMarkerPaser freeMarkerPaser = FreeMarkerPaser.getInstance();
  freeMarkerPaser.proessPageContent();

例子:

public String getAddHtml(HttpServletRequest request) {
        FreeMarkerPaser freeMarkerPaser = FreeMarkerPaser.getInstance();
        return freeMarkerPaser.proessPageContent();
      }

插件向HTML模板传值:

freeMarkerPaser.putData("值名称",值参数);

HTML中使用插件传入的值:
${值名称!”}

例子:

freeMarkerPaser.putData("filepic",goods.get("thumbnail"));

HTML模板:
<#assign pic = filepic />
${pic!”}

HTML
<!–前端使用ajax一步提交就好,参考例子:–>
例子:

var options = {
        url : "/wine/admin/goods-savepic!savepicture.do?ajax=yes",
        type : "POST",
        dataType : "json",
        success : function(result) {                                     $("#picturelist").val(result.data.fsImgPath);
    $("#imgfile").html("<img width='240' height='220' border='0'/>"                                    src='"+result.data.imgPath+"'>");
                        },
        error : function(e) {
                            alert("出现错误 ,请重试");
                        }
            };
$('#theForm').ajaxSubmit(options);

Action
上传首先需要两个属性:

  File file; //上传流
  String fileFileName;//上传地址
String subFolder = "goodslist"; //上传文件夹Name

//需判断上传文件类型
例:

String allowTYpe = "gif,jpg,bmp,png";
    if (!fileFileName.trim().equals("") && fileFileName.length() > 0) {
        String ex = fileFileName.substring(fileFileName.lastIndexOf(".")+1, fileFileName.length());
        if(allowTYpe.toString().indexOf(ex.toLowerCase()) < 0){
        this.showErrorJson("对不起,只能上传gif,jpg,bmp,png格式的图片!");
                        return this.JSON_MESSAGE;
                    }
    }

//判断文件大小
例:

if(pic.length() > 900 * 1024){
                this.showErrorJson("'对不起,图片不能大于900K!");
                return this.JSON_MESSAGE;

//上传文件:
例:

String fsImgPath=    UploadUtil.upload(pic, picFileName, subFolder);

因为存入数据库图片地址是fs:**** ,所以使用图片时需调用UploadUtil方法获得图片正常地址:
String imgPath = UploadUtil.replacePath(图片路径);

发表在 未分类 发表回复

javashop email 邮箱发送

Javashop邮箱发送的方法
//发送邮箱
EopSite site  = EopContext.getContext().getCurrentSite();

定义用户在邮箱中点击回到本站的连接
String loginurl  = “http://vip.365vin.com”;

以下是为,当给用户发送邮箱的内容时,为模板发送所需要的一些值。
EmailModel emailModel = new EmailModel();
emailModel.getData().put(“username”, newMember.getUname());
emailModel.getData().put(“loginurl”, loginurl);
emailModel.getData().put(“sitename”, site.getSitename());
emailModel.getData().put(“logo”, site.getLogofile());
emailModel.getData().put(“password”, pwd);
emailModel.getData().put(“parentname”, member.getName());

设置邮箱的标题
emailModel.setTitle(“尊敬的”+newMember.getUname()+”您好,”+member.getName()+”邀请您加入”+site.getSitename()+”会员”);

设置收件人的邮箱
emailModel.setEmail(newMember.getEmail());

设置邮箱内容模板的路径
emailModel.setTemplate(“email_invitation.html”);
emailModel.setEmail_type(“注册成功提示”);

发送邮件
mailMessageProducer.send(emailModel);

发表在 javashop相关帮助技术 发表回复

javashop log4j使用手册

Log4j
功能:

log4j 为记录项目日常日志的记录功能,可以把项目的所有级别的日志信息都放在本地来进行管理。方便查找记录各种错误信息。

A)  Log4j 路径
在本项目的resource包下可以找到log4j的配置文件,log4j.properties
B)  Log4j的日志输出路径
log4j.appender.CBB.File=d:/redwine/logs/eop/enation.log  日志输出的本地路径
C)  使用方法:
级别顺序(低到高): DEBUG < INFO < WARN < ERROR < FATAL
设置输出的级别以及日志输出的目的地                log4j.rootLogger=ERROR,CZZ
设置com.enation包下的所有类日志输出级别                                                                           log4j.category.com.enation=ERROR ,CBB,
还有其他的是为spring,struts2,xwork,配置输出的级别和目的地、
Log4j.appender 设置日志输出的目的地位置,
log4j.appender.CAA=org.apache.log4j.ConsoleAppender 为CAA设置日志输出的类型可以是以下几种
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
log4j.appender.CAA.layout=org.apache.log4j.PatternLayout    为CAA的输出端的layout是哪种类型,可以是以下几种
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
6. log4j.appender.CAA.layout.ConversionPattern=[%p] %-d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c.%M:%L]  %m%n    如果使用pattern布局就要指定的打印信息的具体格式ConversionPattern,打印参数如下:
l   [QC]是log信息的开头,可以为任意字符,例如项目简称。
l   %p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,
l   %d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
l  %r: 输出自应用启动到输出该log信息耗费的毫秒数
l   %c: 输出日志信息所属的类目,通常就是所在类的全名
l   %t: 输出产生该日志事件的线程名
l   %l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main (TestLog4.java:10)……….不一 一列举了

D)  代码中调用
在完成某个功能后调用,例如:
if (logger.isDebugEnabled()) {
logger.debug(“保存商品数据完成”);
}

发表在 javashop相关帮助技术 发表回复

后台登陆时不显示验证码

有的时候再登陆后台的时候无法看到验证码图片,而且火狐的firebug下也看不到img的src=”" 如下图:

这是因为什么引起的?让我看查找一下。

在firebug下看,ReferenceError: $ is not defined —–$(function(){、 有点jqurey基础的人都会明白,这是因为没有引用jq文件而引起的,因为当我们使用”$”的 时候是要引用标准的jq文件。 为什么会这样,让我们找到javamall\resource下的eop.properties文件,打开后。 找到问题,修改配置错误的地方。如下图:

 

 

发表在 javashop相关帮助 发表回复

使用Java配合nginx实现文件下载、显示的权限控制

nginx的配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
location /bookres/ {
  internal; #禁止浏览器直接访问
  limit_rate 200k;
  alias d:/test/bookres/;
  error_page 404 =200 @backend; #转由后台处理(tomcat等web容器)
  }
 
location @backend {
  rewrite ^/bookres/(.*)/(.*)/(.*)/(.*)$ /bookres/?isbn=$1&restype=$2&resid=$3&type=$4 break;
  proxy_pass http://localhost:8081;  #tomcat等web容器
  proxy_redirect off;
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  break;
  }

上面的正则配置可匹配如下url/bookres/123/1/down

java中控制的代码:

1
2
3
4
5
httpResponse.setHeader( "Content-Disposition" , "attachment; filename=\"" +filename+ "\"" );
  httpResponse.setHeader( "Content-Type" , "application/octet-stream" );
  httpResponse.setHeader( "X-Accel-Redirect" , "/bookres/" +resource.get( "res_url" ));
 
//给nginx返回实际文件存在的地址
发表在 企业级应用 发表回复

Java实现文件下载时关于文件名的控制

1
2
3
4
filename= new String(filename.getBytes( "gbk" ), "iso-8859-1" );
  httpResponse.setHeader( "Content-Disposition" , "attachment; filename=\"" +filename+ "\"" );
  httpResponse.setCharacterEncoding( "UTF-8" );
  httpResponse.setHeader( "Content-Type" , "application/octet-stream" );

注意  filename=\”"+filename+”\”" 要带有” ,以处理文件名是中文,且有空格的情况。

发表在 Java技术 发表回复

异步编辑器Jquery插件

一、介绍

异步编辑器用于直接在页面中编辑某个值,并可将新值传递到服务器端。

操作界面如下图所示:

点击此处下载示例及源码:AjaxEditor

继续阅读 

发表在 Jquery插件 发表回复

Javashop开启在线客服的方法

1       简介

Javashop在后设置->站点设置中可以开启在线客服:

设置格式为:”QQ号”+   :   +  ”提示文字”+   ,   + “其它客服信息”

如设置为:“25106942:客户服务,52560956:技术支持”则显示效果为:

继续阅读 

发表在 帮助技术 发表回复

Javashop商品模块表结构及逻辑分析

1       涉及到表

1.1     商品表(es_goods)

Es goods.png

用于存储商品基本信息,其中字段P1至P21用于存储商品自定义属性。

直接将自定义属性存储于商品表中的目的是为了提高查询效率

确实存在更好的搜索方案,如Lucene,这将是javashop进步将要改进的

商品的自定义参数信息存储于es_goods_type表,在后面会有详细的介绍

参考网址:http://www.javamall.com.cn/blog/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值