/**
* 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);