java模块总结

来源:互联网 发布:全球gdp总量数据 编辑:程序博客网 时间:2024/05/30 04:59

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_passhttp://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=newString(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