/**
* Created by Administrator on 2017/3/24.
*/
var extend=function (c,f) {
c.prototype=f.prototype;
}
var f=function () {
this.a='aa';
}
f.prototype={
say:function () {
alert('f');
}
}
var c=function () {
this.b='aa';
}
extend(c,f);//只能继承prototype实现的方法
var c1=new c();
c1.say();
Ext.namespace('com.ext');
com.ext.First=function () {
var kiss='中国';
}
com.ext.First.prototype={
init:function () {
alert('init');
alert('kiss');
},
method:function () {
alert('method');
}
}
//var f=new com.ext.First();
//f.method();
com.ext.Second=function () {
}
Ext.extend(com.ext.Second,com.ext.First,{
method:function () {
alert('method2');
},
fun:function () {
alert('fun');
}
});
var s=new com.ext.Second();
s.method();
s.fun();
Student=function (config) {
this.a='3';
Ext.apply(this,config);
}
var st=new Student({a:'1',b:'2'});
alert(st.a);
Student1=function (config) {
this.a='3';
Ext.applyIf(this,config);
}
var st=new Student1({a:'1',b:'2'});
alert(st.a);
/**apply方法覆盖所有的属性
* applyIf不覆盖属性
*
*/
1.准备jar包将ik的jar包、pinyin4j-2.5.0.jar、solr-4.9.0\contrib\analysis-extras\lucene-libs\lucene-analyzers-smartcn-4.9.0.jar拷贝到%TOMCAT_HOME%\webapps\solr\WEB-INF\lib下
2.修改schema.xml<fieldType name="text_pinyin" class="solr.TextField" positionIncrementGap="0">
<analyzer type="index">
<tokenizer class="org.apache.lucene.analysis.cn.smart.SmartChineseSentenceTokenizerFactory"/>
<filter class="org.apache.lucene.analysis.cn.smart.SmartChineseWordTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.apache.lucene.analysis.cn.smart.SmartChineseSentenceTokenizerFactory"/>
<filter class="org.apache.lucene.analysis.cn.smart.SmartChineseWordTokenFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="text_smartcn" class="solr.TextField" positionIncrementGap="0">
<analyzer type="index">
<tokenizer class="org.apache.lucene.analysis.cn.smart.SmartChineseSentenceTokenizerFactory"/>
<filter class="org.apache.lucene.analysis.cn.smart.SmartChineseWordTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.apache.lucene.analysis.cn.smart.SmartChineseSentenceTokenizerFactory"/>
<filter class="org.apache.lucene.analysis.cn.smart.SmartChineseWordTokenFilterFactory"/>
</analyzer>
</fieldType>
3.需要拼音分词的字段使用这些fieldType
4.在搜索字段时配上这些拼音字段
参与权重的查询字段最好是可以进行分词配置过的,
例子程序:
//权重
query.set("defType","dismax");
query.set("qf","username^10000 zgxltext^10000 usernameSpell^10000 id^10000 email^10000 jgtext^10000 xueweitext^10000 zhiweitext^10000 sextext^10000 zhijitext^10000 companytext^10000 zuzhitext^10000 companysubtext^10000 sbfamily^1 sbharvest^1 sbproject^1 sbteach^1 sbwaiyu^1 sbwork^1 sbzhiCheng^1 ");
//高亮
query.setHighlight(true);
query.setParam("hl", "true"); //highlighting
query.setParam("hl.fl", "username id email jgtext xueweitext zhiweitext sextext zhijitext companytext zuzhitext companysubtext zgxltext");
query.setHighlightSimplePre("<font color=\'red\'>");
query.setHighlightSimplePost("</font>");
query.setHighlightFragsize(200);
query.setHighlightSnippets(3);
List<SPEntity> lpojo = response.getBeans(SPEntity.class);
Map<String, Map<String, List<String>>> highlighting = response.getHighlighting();
List<String> list2 =null;
//
if (lpojo != null && lpojo.size()>0 && highlighting != null){
for(SPEntity sp : lpojo){
Map<String, List<String>> map = highlighting.get(sp.getId());
list2 = map.get("username");
if (list2 != null && list2.size()>0){
sp.setUsername(list2.get(0));
}
list2 = map.get("id");
if (list2 != null && list2.size()>0){
sp.setId(list2.get(0));
}
list2 = map.get("email");
if (list2 != null && list2.size()>0){
sp.setEmail(list2.get(0));
}
list2 = map.get("jgtext");
if (list2 != null && list2.size()>0){
sp.setJgtext(list2.get(0));
}
list2 = map.get("xueweitext");
if (list2 != null && list2.size()>0){
sp.setXueweitext(list2.get(0));
}
list2 = map.get("zhiweitext");
if (list2 != null && list2.size()>0){
sp.setZhiweitext(list2.get(0));
}
list2 = map.get("sextext");
if (list2 != null && list2.size()>0){
sp.setSextext(list2.get(0));
}
list2 = map.get("zhijitext");
if (list2 != null && list2.size()>0){
sp.setZhijitext(list2.get(0));
}
list2 = map.get("companytext");
if (list2 != null && list2.size()>0){
sp.setCompanytext(list2.get(0));
}
list2 = map.get("zuzhitext");
if (list2 != null && list2.size()>0){
sp.setZuzhitext(list2.get(0));
}
list2 = map.get("companysubtext");
if (list2 != null && list2.size()>0){
sp.setCompanysubtext(list2.get(0));
}
list2 = map.get("zgxltext");//
if (list2 != null && list2.size()>0){
sp.setZgxltext(list2.get(0));
}
}
}
客户端系统js代码:
<script type="text/javascript">
function test(a){
alert(a.name);
return a;
}
$.ajax({
url:'http://ip:8090/mobile/test.json?method=test',
type:'POST', //GET
async:true, //或false,是否异步
data:{
// name:'yang',age:25
},
timeout:5000, //超时时间
dataType:'jsonp', //返回的数据格式:json/xml/html/script/jsonp/text
beforeSend:function(xhr){
},
success:function(data,textStatus,jqXHR){
},
error:function(xhr,textStatus){
},
complete:function(){
}
})
</script>
服务端系统代码:
test({name:'yang',age:25});
客户端访问跨域系统时,传递客户端需要执行的方法名,服务端在查询出数据后,使用传递的方法名封装成js方法的执行返回,客户端程序就直接执行此方法。
springmvc后台例子,返回jsonp数据代码
//第一种字符串返回jsonp格式数据
@RequestMapping(value="/get/{method}",produces=MediaType.APPLICATION_JSON_VALUE+";charset=utf-8")
@ResponseBody
public String getUser(@PathVariable String method) {
User user = userService.selectByPrimaryKey(1);
Gson gson = new Gson();
String userJson = gson.toJson(user);
return method+"("+userJson+")";
}
//第二种对象返回jsonp格式数据
spring版本4.1以上
@RequestMapping("/gett/{method}")
@ResponseBody
public Object gett(@PathVariable String method) {
User user = userService.selectByPrimaryKey(1);
MappingJacksonValue mjv = new MappingJacksonValue(user);
mjv.setJsonpFunction(method);
return mjv;
}
spring容器是父容器,包含的对象有dao,service等
springmvc容器是子容器,包括controller
子容器可以访问父容器的 对象,但是子容器不可以访问父容器的属性。
父容器不能访问子容器的对象。
例如,controller可以访问service,但是service不能访问controller。
upstream project
{
server 127.0.0.1:8080 weight=3; tomcat地址
server 127.0.0.1:8082; tomcat地址
}
server {
listen 80; 发布的访问地址的端口
server_name test.tt.com; 发布的访问地址
location / {
proxy_pass http://project;
index index.html index.htm;
}
}
1、mvn compile 编译源代码
2、mvn test 执行所有的测试类方法
3、mvn clean 清除class
4、mvn package 打包
5、mvn install 安装到本地仓库中
6、 mvn archetype:generate -DgroupId=com.aaa.bbb -DartifactId=ccc-bbb -Dversion=0.0.1-SNAPSHOT 新建项目
7、<dependency>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
<scope>compile</scope>编译和打包的时候会依赖(这个属性是默认的)
<scope>provided</scope>编译和测试的时候依赖,打包的时候不依赖,例如servlet-api,打包的时候tomcat中有,会冲突,所有不打包,但是编译和测试的时候需要这个jar。
<scope>test</scope> 在测试范围有效,在编译和打包的时候不会使用这个依赖。并且不会传递依赖,例如,其他项目依赖此包时,此jar不会被传递依赖。
<scope>runtime</scope> 在运行的时候依赖,在编译的时候不依赖。
</dependency>
8、a-->直接依赖jar1.1 , b-->直接依赖jar1.2 , c-->直接依赖a,b ,c先依赖a,后依赖b,所以a依赖jar1.1版本
9、当依赖级别相同的时候,先依赖谁,就用它,当依赖级别不同的时候,用依赖级别短的依赖。
10、<exclusions>
<exclusion>
</exclusion>
</exclusions>
的意思是说不使用此jar依赖的某个jar包,可以解决jar冲突的问题。
11、继承的绝对路径是pom文件,聚合的是模块的位置。
1.下载oracle jar包,放在计算机用户目录下,例如C:\Users\Administrator目录下。
2.在cmd下执行
mvn install:install-file -DgroupId=com.Oracle -DartifactId=ojdbc14 -Dversion=10.2.0.2.0 -Dpackaging=jar -Dfile=ojdbc14.jar -DgeneratePom=true
这样加把jar加载到本地库了。
/**
* 通过数据库类型处理翻页查询语句
* 注释:如果框架当前不支持此种数据库分页查询,则返回一个空值字符串。
* * @param strSql 待执行SQL语句
* @param start 开始行数
* @param pageCount 每页行数
* */
private static String dealSqlByDBType(String dbType,String strSql,int start,int pageCount)
{
if(dbType==null)return "";
String retSql = "";
if(dbType.equals("mysql"))
{
//MYSQL数据库采用limit关键字进行分页
int startItem = start -1;if(startItem<0)startItem = 0;
retSql = strSql + " limit " + startItem + "," + pageCount;
}
else if(dbType.equals("oracle"))
{
//ORACLE数据库采用ROWNUM控制分页
int startItem = start;
if(startItem<=0){startItem = 0;}
int endItem = startItem + pageCount;
retSql = "SELECT * FROM ("
+ "SELECT A.*,ROWNUM RN FROM("
+ strSql
+ ") A WHERE ROWNUM<="+ endItem +") WHERE RN >"+startItem;
}
else if(dbType.equals("db2"))
{
//DB2数据库采用ROWNUMBER() OVER()函数进行分页
//其中OVER()函数中必须包含排序字段,此处用“1”代替
int startItem = start -1;if(startItem<0)startItem = 0;
int endItem = startItem + pageCount;
retSql = "SELECT * FROM ("
+ "SELECT B.*, ROWNUMBER() OVER(1) AS RN FROM ("
+ strSql
+ ") AS B )AS A WHERE A.RN <= "+ endItem +" AND A.RN >= "+ startItem;
}
else if(dbType.equals("sqlserver2005"))
{
//SQLSERVER2005采用ROW_NUMBER()函数进行分页
//其中OVER()函数中必须包含排序字段,此处用“1”代替
int startItem = start -1;if(startItem<0)startItem = 0;
int endItem = startItem + pageCount;
retSql = "SELECT * FROM ("
+ "SELECT B.*, ROW_NUMBER() OVER(1) RN FROM ("
+ strSql
+ ") B )A WHERE A.RN <= "+ endItem +" AND A.RN >= "+ startItem;
}
else if(dbType.equals("derby"))
{
//通过OFFSET等关键字进行翻页(尚未经过测试)
int startItem = start -1;if(startItem<0)startItem = 0;
//int endItem = startItem + pageCount;
retSql = strSql
+ " OFFSET "+ startItem +" ROWS"
+ " FETCH NEXT "+ pageCount +" ROWS ONLY";
}
return retSql;
}
String objParam = "{name:\"c\",configType:1,list:[{label:\"c\",tableName:\"c\",vfiled:\"c\",category:\"c\"},{label:\"c\",tableName:\"c\",vfiled:\"c\",category:\"c\"}]}";//request.getParameter("objParam");
JSONObject jsonObject = JSONObject.fromObject(objParam);
Map
classMap = new HashMap();
classMap.put("list", DtoSearch.class);
ResultData resultData = (ResultData) net.sf.json.JSONObject.toBean(
jsonObject, ResultData.class, classMap);