نتائج البحث عن 360 الصفحة الرئيسية هي كما يلي
1.
يدرك بشكل رئيسي البحث الذكي واستبدال الجلد الذي يدعم الحروف الصينية والأحرف الأولى من Pinyin
تأثير الصفحة كما يلي
الرمز الأساسي الرئيسي هو كما يلي
1.head.jsp
<٪@ page import = "java.io.file" ٪> <٪@ page language = "java" import = "java.util.*" pageencoding = "utf-8" ٪> <٪@ taglib prefix = "c uri = "http://java.sun.com/jsp/jstl/functions" ٪> <! doctype html public "-// w3c // dtd Xhtml 1.0 <html> <Head> <title> Network Network الصفحة الرئيسية </title> <Link Rel = "STYLESHEET" HREF = "/SchoolNet/CSS/INDEX.CSS" type = "text/css"/> <script type = "text/javascript" src = "/schoolnet/js/ddsmoothmen.js src = "/schoolnet/js/jquery.js"> </script> <script src = "/schoolnet/js/jquery-ui.js"> </sctript> <script type/"text/javaScript" src = "/schoolnet/js/publicjs. src = "/schoolnet/myajax/ajax_uni.js"> </script> <script type = "text/javaScript" src = "/schoolnet/js/style.js setSkin () {var photo = '$ {loginuser.skin.photo}' ؛ $ ("body"). }) ؛ </script> </c: if> </head> <body> <viv> <div id = "searchtype"> <a href = "javaScript: void (0)" onClick = "setSearchType (this) ، setSearch ()" name = "searchDatas" id = "books.png" onClick = "setSearchType (this) ، setSearch ()" name = "searchSongs" id = "t01d566d0c28b32ddd.png"> music </a> <a href = "javaScript: void (0) id = "newspaper.png"> news </a> <a href = "javaScript: void (0)" onClick = "setSearchType (this) ، setSearch ()" name = "searchxiaoshuos" id = "library.png"> novel </af = a "javaScript: 0)" onClick = "SetSearchType (this) ، setSearch ()" name = "searchArticles" id = "blog.gif"> log </a> </viv> <form id = "search-form" action = "/schoolnet/other.do؟ flag؟ src = "/schoolnet/images/front/books.png" id = "searchimg" style = "margin-bottom: -10px"/> <input type = "text" name = "search" id = "topSearchText" onKeyup = "setSearch ()" onfocus = "newsearch ()" </form> <ul id = "setSearch"> </ul> </viv> <div id = "mainmenu"> <ul> <li> <a href = "/schoolnet/login.do؟ flag = goHomeui href = "/schoolnet/login.do؟ flag؟ </a> <ul> <li> <a href = "/schoolnet/shou.do؟ flag = shuoshuo & pagenow = 1"> Speak </a> </li> <li> <a href = "/schoolnet/almit ؟do؟ href = "/schoolnet/friend.do؟ flag = myfriendui & pagenow = 1"> الأصدقاء </a> </li> <li> <a href = "/schoolnet/article.do؟ href = "/schoolnet/article.do؟ flag؟ href = "/schoolnet/news.do؟ flag؟ href = "/schoolnet/xiaoshuo.do؟ flag = goxiooshuoui & pagenow = 1 & id = all"> رواية </a> </li> <li> <a href = "/schoolnet/skin.do؟ flag = goskinui & pagenow = 1 & id = all "> up </a> . هل العلم = goshareui & pagenow = 1 "> أشياء جديدة </a> </li></ul> </li> <li> <a href =" javaScript: void (0) "> <span> about </a> </a> </a> <ul> <li> <li> <a href = "/schoolnet/other.do؟ flag = goaboutui#2"> sitemap </a> </li> <li> <a href = "/schoolnet/other.do؟ flag = goaboutui#2"> sitemap </a> </li> <li> <a href = بيان </a> </li> <li> <a href = "/schoolnet/other.do؟ flag؟ href = "/schoolnet/register.do؟ flag = updui"> تعديل المعلومات الشخصية </a> </li> <li> <a href = "/schoolnet/login.do؟ flag = logout"> exit </a> </li> </li> </li> </li> </li> </li> </li> test = "$ {loginuser! = null}"> <div id = "page-wrap"> <ul> <li id = "menu_selected"> <a id = "menu_selected" href = "/schoolnet/login.do؟ flag = goHomeui الهامش-توب: -18px ؛ الهامش-اليسار: -10px "/> </a> <ul> <li> <a href ="/schoolnet/register.do؟ flag = updui "> تعديل المعلومات الشخصية </a> </li> <li> <li> </ul> </viv> </c: if> </viv> </body> </html> 2. وظائف JS الرئيسية
// المستخدمة لتعيين نوع البحث عن التبديل وعرض المحتوى الشهير (الخمسة الأولى) (المعلومات ، الموسيقى ، الأخبار ، الروايات ، السجلات) عند تشغيل تركيز التحكم في الإدخال. الوظائف setSearchType (O) {$ ("#searchtype a"). removeClass ("current") ؛ $ (o) .addClass ("Current") ؛ var inputSearchType = $ (o) .text () ؛ $ ("#inputSearchType"). val ("Search"+InputSearchType) ؛ document.getElementById ("Search-form"). Action = "/SchoolNet/other.do؟ flag ="+o.name+"& searchPagenow = 1" ؛ document.getElementById ("Search-form"). name = O.Name ؛ document.getElementById ("searchimg"). src = "/schoolnet/images/front/"+o.id ؛ $ ("#topSearchText"). show () ؛ $ ("#searchfriendss"). Hide () ؛ if (o.name == "searchfriends") {$ ("#topSearchText"). Hide () ؛ $ ("#searchfriendss"). show () ؛ }} // المستخدمة لتعيين المحتوى لعرض المطالبات الذكية (أفضل عشرة مطابقات في بحث fuzzy) setSearch () {var v = document.getElementById ("TopSearchText"). value ؛ var type = document.getElementById ("search-form"). name ؛ if (v.length == 0) {$ ("#setSearch"). html ("") ؛ } if (v.length> 0) {$ .ajax ({cache: true ، type: "post" ، url: "/schoolnet/changeInfo" ، data: {"action": $ ("#setSearch"). html ("") ؛ } ؛ } ملفات جافا الرئيسية
if ("SearchSongs" .equals (SearchType)) <span style = "White-Space: pre"> </span> {<span style = "white-space: pre"> </spl> string namehead [] = chinesepinyintool.getheadbystring (search) ؛ <span style = "White-Space: pre"> </span> string nameheadString = "" ؛ <span style = "White-Space: pre"> </span> for (int i = 0 ؛ i <namehead.length ؛ i ++) {<span style = "white-space: pre"> </span> nameheadstring+= namehead [i] ؛ <span style = "White-Space: pre"> </span>} <span style = "White-Space: pre"> </span> String nameall [] = chinesepinyintool.stringtopinyin (البحث) ؛ <span style = "White-Space: pre"> </span> String nameallstring = "" ؛ <span style = "White-Space: pre"> </span> for (int i = 0 ؛ i <nameall.length ؛ i ++) {<span style = "white-space: pre"> </span> nameallstring+= nameall [i] ؛ <span style = "White-Space: pre"> </span>} <span style = "White-Space: pre"> </span> قائمة <Song> Songs = UniversityService.executequeryBypage ("من أغنية WHERE TO_PINYIN (name) مثل" ٪ "، + namealstring +" ٪ "أو pinyin (name) مثل" ٪ "". <span style = "White-Space: pre"> </span> لـ (int i = 0 ؛ i <songs.size () ؛ i ++) <span style = "white-space: pre"> </span> {<span style = "white-space: pre" </span> con+= "<li> <a target = 'blank' HREF = '/SENEDNET/MUSIC.DO؟ flag = gopatentDisplay & pid = "+songs.get (i) .getPatent (). <span style = "White-Space: pre"> </span>} <span style = "White-Space: pre"> </span> if (songs.size ()! = 0) {<span style = "white-space: pre"> </span> con += "<li> <li> style = 'display: inline ؛ float: right ؛ margin-right: 8px ؛'> inting </a> </li> "؛ <span style = "White-Space: pre"> </span>} <span style = "White-Space: pre"> </span> else {<span style = "White-Space: pre"> </spl> con += "<li> <li> <a href = 'javaScript: void (0)' onclick = 'hideli ()' display: inline>> no arbire </lifrary. <span style = "White-Space: pre"> </span>} <span style = "White-Space: pre"> </span> out.write (con) ؛ <span style = "White-Space: pre"> </span> out.close () ؛ <span style = "White-Space: Pre"> </span>} آخر إذا ("setPifu" .equals (Action)) <span style = "white-space: pre"> </span> {<span style = "white-space: pre"> </span> String SkinId = request.getParameter ("skinid") ؛ <span style = "White-Space: pre"> </span> Skin Skin = (Skin) UniversityService.findbyid (skin.class ، integer.valueof (skinId)) ؛ <span style = "White-Space: pre"> </span> user user = (المستخدمين) request.getSession (). getAttribute ("loginuser") ؛ <span style = "White-Space: pre"> </span> user.setskin (skin) ؛ <span style = "White-Space: Pre"> </span> UniversityService.update (user) ؛ <span style = "White-Space: Pre"> </span>} عند القيام بتحويل Pinyin ، تحتاج إلى استيراد حزمة Pinyin4j.jar
فئة أداة تحويل ChinesepinyIntool Pinyin
حزمة SchoolNet.Utils ؛
استيراد net.sourceforge.pinyin4j.pinyinhelper ؛ استيراد net.sourceforge.pinyin4j.format.hanyupinyincasetype ؛ استيراد net.sourceforge.pinyin4j.format.hanyupinyinoutputformat ؛ استيراد net.sourceforge.pinyin4j.format.hanyupinyIntoneType ؛ استيراد net.sourceforge.pinyin4j.format.exception.badhanyupinyinoutputformatcombination ؛ / ** * * * صينية pinyin أداة * * *// class class chinesepinyintool {public static void main (string [] args) {string string [] = stringtopinyin ("this") ؛ لـ (int i = 0 ؛ i <string.length ؛ i ++) {system.out.println (string [i]) ؛ }} / ** * * تحويل سلسلة إلى رقم pinyin * * * param src * regurn * / public static string [] stringtopinyin (String src) {return stringtopinyin (src ، false ، null) ؛ } / ** * قم بتحويل سلسلة إلى رقم pinyin * * * param src * return * / public static string [] stringtopinyin (String SRC ، string seplator) {return stringtopinyin (src ، true ، seplator) ؛ } / ** * تحويل سلسلة إلى عدد من pinyin * * * * param src * param ispolyphone * ما إذا كنت يمكن العثور على pinyin من أحرف polyphonic * * @param الفصل بين الأحرف polyphonic * * regurn * / static public [] stringtopinyin (String src ، boolean ispolyphone ، ("" .equals (src) || null == src) {return null ؛ } char [] srcchar = src.toChararray () ؛ int srccount = srcchar.length ؛ String [] SRCSTR = New String [SRCCount] ؛ لـ (int i = 0 ؛ i <srccount ؛ i ++) {srcstr [i] = chartopinyin (srcchar [i] ، ispolyphone ، Qualator) ؛ } إرجاع srcstr ؛ } / ** * قم بتحويل حرف واحد إلى Pinyin * * param src * return * / public static string chartopinyin (char src ، ispolyphone boolean ، فاصل سلسلة) {// إنشاء pinyin الصيني hanyupinyinoutputformat defaultformat = new hanyupinyinoutputformat () ؛ // إعدادات الإخراج ، الحالة العليا ، الرمز الصوتي defaultformat.setCaseType (hanyupinyincasetype.lowercase) ؛ DefaultFormat.setTonetype (hanyupinyintoneType.without_tone) ؛ StringBuffer temppinying = new StringBuffer () ؛ // إذا كان متوسط إذا (src> 128) {try {// تحويل للحصول على سلسلة النتائج [] strs = pinyinhelper.tohanyupinyinstringarray (SRC ، defaultFormat) ؛ // ما إذا كنت تريد العثور على أحرف متعددة الفقرة ، فإن الافتراضي هو العثور على حرف الأحرف polyphonic إذا (ISPolyPhone && null! = فاصل) {for (int i = 0 ؛ i <strs.length ؛ i ++) {temppinying.append (strs [i]) ؛ if (strs.length! = (i + 1)) {// يتم فصل الأحرف polyphonic بواسطة رموز خاصة temppinying.append (فاصل) ؛ }}} آخر {temppinying.append (strs [0]) ؛ }} catch (badhanyupinyinoutputformatcombination e) {e.printstacktrace () ؛ }} آخر {temppinying.append (src) ؛ } إرجاع temppinying.toString () ؛ } السلسلة الثابتة العامة Hanzitopinyin (String Hanzi) {return hanzitopinyin (Hanzi ، "") ؛ } / ** * تحويل الأحرف الصينية إلى pinyin * * param hanzi * param فاصل * @return * / suppressWarnings ("dementation") سلسلة ثابتة عامة hanzitopinyin (سلسلة hanzi ، string string) // إعدادات الإخراج ، الحالة العليا ، الرمز الصوتي defaultformat.setCaseType (hanyupinyincasetype.lowercase) ؛ DefaultFormat.setTonetype (hanyupinyintoneType.without_tone) ؛ سلسلة pinyingstr = "" ؛ Try {pinyingstr = pinyinhelper.tohanyupinyinstring (Hanzi ، defaultFormat ، Seplator) ؛ } catch (badhanyupinyInoutPutFormatCombination e) {E.PrintStackTrace () ؛ } إرجاع pinyingstr ؛ } / ** * قم بتحويل صفيف سلسلة إلى سلسلة * * param str * param separator * الفصل بين كل سلسلة * * regurn * / string stringarrayToString (String [] String ، string ، {StringBuffer sb = new StringBuffer () ؛ لـ (int i = 0 ؛ i <str.length ؛ i ++) {sb.append (str [i]) ؛ if (str.length! = (i + 1)) {sb.append (فاصل) ؛ }} return sb.toString () ؛ } / ** * قم بتوصيل كل مجموعة حرف * * * param str * regurn * / string string stringarrayToString (string [] str) {return stringArrayToString (str ، "") ؛ } / ** * تحويل صفيف أحرف إلى أحرف * * * param str * param فاصل * الفصل بين السلاسل الفردية * * regurn * / سلسلة ثابتة عامة chararraytoString (char [] ch ، string sefferator) {StringBuffer sb = new StringBuffer () ؛ لـ (int i = 0 ؛ i <ch.length ؛ i ++) {sb.append (ch [i]) ؛ if (ch.length! = (i + 1)) {sb.append (فاصل) ؛ }} return sb.toString () ؛ } / ** * تحويل صفيف حرف إلى أحرف * * * param str * regurn * / سلسلة ثابتة عامة chararrayToString (char [] ch) {return chararrayToString (ch ، "") ؛ } / ** * احصل على الحرف الأول للشخصية الصينية * * * param src * param isCapital * هل هو كبير * * regurn * / public static char [] getheadbychar (char src ، boolean iscapital) {// if charaction insisty ، repring if (src <= 128) {return char [] } // التهجئة التي تم الحصول عليها [] pinyingstr = pinyinhelper.tohanyupinyinstringarray (SRC) ؛ // إنشاء كائن إرجاع int polyphonesize = pinyingstr.length ؛ char [] headchars = new char [polyphonesize] ؛ int i = 0 ؛ // اعتراض الكلمة الأولى لـ (String s: pinyingstr) {char headchar = s.charat (0) ؛ // ما إذا كانت الحرف الأول ترسمها ، يكون الافتراضي صغيرًا إذا (iscapital) {headchars [i] = character.touppercase (headchar) ؛ } آخر {headchars [i] = headchar ؛ } i ++ ؛ } إرجاع Headchars ؛ } / ** * الافتراضي لأخذ الكلمة الأولى للأحرف الصينية كبيرة * * param src * regurn * / public static char [] GetHeadbychar (Char src) {return getheadbychar (src ، true) ؛ } / ** * ابحث عن الحرف الأولي للسلسلة * * param src * regurn * / public static string [] GetHeadByString (String src) {return getheadbystring (src ، true) ؛ } / ** * ابحث عن الحرف الأولي للسلسلة * * param src * param isCapital * سواء تم رسملة * return * / public static string [] getheadbystring (String Src ، true) ؛ } / ** * ابحث عن الحرف الأولي للسلسلة * * param src * param isCapital * هل هو مغروم * @regurn * / سلسلة ثابتة عامة [] getheadbystring (سلسلة src ، boolean iscapital) {return getheadbystring (src ، isCapital ، null) ؛ } / ** * ابحث عن السلسلة الأولية * * param src * param isCapital * سواء أكان ذات درجة حرارة * param * مفصولة * * * / static static static [] getheadbystring (سلسلة src ، iscapital boolean ، سلسلة سلسلة) {char [] String [] headString = New String [chars.length] ؛ int i = 0 ؛ لـ (char ch: chars) {char [] chs = getheadbychar (ch ، iscapital) ؛ StringBuffer SB = New StringBuffer () ؛ if (null! = فاصل) {int j = 1 ؛ لـ (char ch1: chs) {sb.append (ch1) ؛ if (j! = chs.length) {sb.append (فاصل) ؛ } j ++ ؛ }} آخر {sb.append (chs [0]) ؛ } headString [i] = sb.toString () ؛ i ++ ؛ } إرجاع headstring ؛ }} تقوم قاعدة البيانات ببناء الوظائف ذات الصلة
Fristpinyin: هذه الوظيفة تحول الحرف الصيني الأول لسلسلة صينية إلى الحرف الأول من Pinyin (على سبيل المثال: "OK"-> H)
Pinyin: هذه الوظيفة تربط كل من الحروف الأولى من Pinyin لسلسلة صينية (على سبيل المثال: "OK"-> HD)
to_pinyin: هذه الوظيفة تربط كل من الحروف الكاملة لسلسلة صينية تتوافق مع pinyin (على سبيل المثال: "OK"-> haode)
إنشاء وظيفة `fristpinyin` (p_name varchar (255)) إرجاع varchar (255) charset utf8 ابدأ إعلان v_return varchar (255) ؛ اضبط V_RETURN = ELT (الفاصل الزمني (inv (hex (يسار (تحويل (p_name باستخدام GBK) ، 1)) ، 16،10) ، 0xB0A1،0xb0c5،0xb2c1،0xb4ee ، 0xb6ea ، 0xb7a2،0xb8c1،0xb9fe ، 0xbbf7 ، 0xbfa6،0xc0ac ، 0xc2e8،0xc4c3،0xc5b6 ، "a '،' b '،' c '،' d '،' e '،' f '،' g '،' h '،' j '،' k '،' l '،' m '،' n '،' o '،' p '،' إرجاع v_return ؛ نهاية إنشاء وظيفة `pinyin` (p_name varchar (255)) إرجاع varchar (255) charset utf8 ابدأ إعلان v_compare varchar (255) ؛ DECLARE V_RETURN VARCHAR (255) ؛ أعلن أنا int ؛ تعيين i = 1 ؛ تعيين v_return = '' ؛ بينما i <length (p_name) do set v_compare = substr (p_name ، i ، 1) ؛ if (v_compare! = '') ثم #set v_return = concat (v_return ، '،' ، v_compare) ؛ SET V_RETURN = CONCAT (V_RETURN ، FRISTPINYIN (V_COMPARE)) ؛ #set v_return = fristpinyin (v_compare) ؛ إنهاء إذا ؛ تعيين i = i + 1 ؛ تنتهي في حين if (isNull (v_return) أو v_return = '') ثم قم بتعيين v_return = p_name ؛ إنهاء إذا ؛ إرجاع v_return ؛ نهاية إنشاء وظيفة to_pinyin (name varchar (255) charset gbk) إرجاع varchar (255) charset gbk تبدأ إعلان mycode int ؛ DECLARE TMP_LCODE VARCHAR (2) Charset GBK ؛ إعلان lcode int ؛ DECLARE TMP_RCODE VARCHAR (2) Charset GBK ؛ إعلان rcode int ؛ إعلان mypy varchar (255) charset gbk الافتراضي '' ؛ إعلان LP int ؛ تعيين mycode = 0 ؛ تعيين LP = 1 ؛ تعيين الاسم = hex (الاسم) ؛ بينما lp <length (name) do set TMP_LCode = substring (name ، lp ، 2) ؛ set lcode = cast (ascii (unsex (tmp_lcode)) على أنها غير موقعة) ؛ SET TMP_RCODE = substring (name ، LP + 2 ، 2) ؛ set rcode = cast (ascii (unsex (tmp_rcode)) على أنها غير موقعة) ؛ إذا كان lcode> 128 ثم قم بتعيين mycode = 65536 - lcode * 256 - rcode ؛ حدد concat (mypy ، pin_yin_) في mypy من t_base_pinyin حيث code_> = abs (mycode) أمر بواسطة code_ asc limit 1 ؛ SET LP = LP + 4 ؛ آخر تعيين mypy = concat (mypy ، char (cast (ascii (unsex (substring (name ، lp ، 2)) as غير موقعة)))) ؛ SET LP = LP + 2 ؛ إنهاء إذا ؛ تنتهي في حين العودة إلى أسفل (mypy) ؛ نهاية؛
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.