Die Suchergebnisse der 360 -Startseite sind wie folgt
1. Die Hauptverzeichnisstruktur des SchoolNet Campus Network ist wie folgt
Realisiert hauptsächlich intelligente Suche und Hautersatz, die Chinesisch, erste Buchstaben und vollständige Buchstaben von Pinyin unterstützt
Der Seiteneffekt ist wie folgt
Der Hauptkerncode ist wie folgt
1.head.jsp
<%@ page import = "java.io.file"%> <%@ page Language = "java" import = "java.util. uri="http://java.sun.com/jsp/jstl/functions"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <Head> <titels> Campus -Netzwerk -Homepage </title> <link rel = "stylesheet" href = "/schoolnet/css/index.css" type = "text/css"/> <script type = "text/javascript" src = "/schoolnet/js/jquery.js"> </script> <script src = "/schoolnet/js/jquery-ui.js"> </script> <script type = "text/javascript" src = "/schulnet/js/publicjs.js"> </script> <script = "text/javascript" src = "/schoolNet/myajax/ajax_uni.js"> </script> <script type = "text/javaScript" src = "/schulnet/js/style.js"> </script> <c: if test = "$ {loginuser.id! {var foto = '$ {loginuser.skin.photo}'; $ ("Body"). CSS ("Hintergrund", "#f6f6f6 URL (/schoolNet/images/pf/" + foto + ") Top Repeat"); }); </script> </c: if> </head> <body> <div> <div id = "searyPe"> <a href = "javaScript: void (0)" onclick = "setSearchType (this), setSearch ()" name = "suchdatas" id = "books.png"> data </a> <a href = " onclick = "setSearchType (this), setSearch ()" name = "searchsongs" id = "t01d566d0c28b32ddad.png"> musik </a> <a href = "javascript: void (0)" Onclick = "setSearchTearchTeSearch (this), SetSearch (), SetSearch (), SetSearch ()" name "name" name "name" name "name" name "name" name "name" name "name =" setSearchTearch (this), setsear id = "Zeitung.png"> news </a> <a href = "javaScript: void (0)" onclick = "setSearchType (this), setSearch ()" name = "searchxiaoshuos" id = "bibliothek.png"> Roman </a> <a href = "javascript: void (0)" "." onclick="setsearchtype(this),setsearch()" name="searcharticles" id="blog.gif">Log</a> </div> <form id="search-form" action="/schoolnet/other.do?flag=searchdatas&searchpageNow=1" method="post" name="searchdatas" target="blank" onsubmit="return checksearch()"> <img src = "/schoolNet/bilder/vorne/books.png" id = "searchimg" style = "margin-bottom: -10px"/> <Eingabe type = "text" name = "such" id = "topSearchText" OnKeyUp = "setSearch ()" Onfocus = "Newsearch ()". <ul id = "setSearch"> </ul> </div> <div id = "mainMenu"> <ul> <li> <a href = "/schulnet/login.do? flag = gohomeui" id = "*mseu_Selected"> <span> Campus -Netzwerk </a> </a> </li> <li> <li> <a> <a href = "/schoolNet/login.do? flag = gohomeui"> <span> Personal Center </span> </a> </li> <li> <a href = "/schoolNet/profil.do? flag = gohomepageUi"> <span> My Home </span> </a> </li> <li> <li> <a -acla> <a. ; href="/schoolnet/friend.do?flag=myfriendUI&pageNow=1" >Friends</a> </li> <li><a href="/schoolnet/article.do?flag=articleUI&pageNow=1&userid=${loginuser.id }" >Log</a> </li> <li><a href = "/schoolNet/article.do? flag = articleui & pagenow = 1 & userId = $ {loginuser.id}"> log </a> </li> <li> <a href = "/schoolnet/music.do? href = "/schoolnet/news.do? flag = gonewsui & typeId = 1 & pagenow = 1"> news </a> </li> <li> <a href = "/schulnet/datas.do? flag = godatasui & pagenow = 1 & action = all"> Daten </a> </li> <li> <li> <li> <li> <li> <li> <li> </< href = "/schoolNet/xiaoshuo.do? Flag = Goxiaoshuoui & pagenow = 1 & id = all"> Roman </a> </li> <li> <a href = "/schoolnet/Skin. .do? flag = goshareui & pagenow = 1 "> Neue Dinge </a> </li> </ul> </li> <li> <a href =" javaScript: void (0) "> <pan> Über </a> </a> </a> <ul> <li> <a href ="/schulnet/sooth? </li> <li> <a href = "/schulnet/other.do? flag = goaboutui#2"> sitemap </a> </li> <li> <a href = "/schoolNet/other.do? flag = goaboutui#2"> sitemap </a> </li> <li> <a <aa> <aa> <aa> <aa> <a a href = "/schoolnet/other.do? flag = goaboutui#3"> Copyright -Anweisung </a> </li> <li> <a href = "/schulnet/other.do? flag = goaboutui#4"> Freundeslinks </a> </li> </ul> </li> </li> <li> < href = "javaScript: void (0)"> <span> Einstellungen </span> </a> <ul> <li> <a href = "/schoolNet/register.do? flag = updui"> persönliche Informationen ändern </a> </li> <li> <a href = "/schoolNet.do? </li> </li> </li> </li> </li> </li> <c: if test = "$ {loginuser! src = "/schulnet/bilder/head/$ {loginuser.photo}" style = "margin-top: -18px; margin-linft: -10px"/> </a> <ul> <li> <a href = "/schulnet/register.do? flag = updui"> personenbezogene Informationen ändern </a> </li> </li> < href = "/schoolnet/login.do? flag = logout"> beenden </a> </li> </ul> </li> </ul> </ul> </div> </c: if> </div> </body> </html> 2. Haupt JS -Funktionen
// Wird verwendet, um den Switch -Suchtyp festzulegen und den entsprechenden beliebten (ersten fünf) Inhalt (Informationen, Musik, Nachrichten, Romane, Protokolle) anzuzeigen, wenn der Fokus der Eingabesteuerung ausgelöst wird. FunktionsetSearchType (o) {$ ("#suchtype a"). removeclass ("current"); $ (o) .AddClass ("aktuell"); var InputSearchType = $ (o) .Text (); $ ("#InputSearchType"). Val ("Search"+InputSearchType); document.getElementById ("Suchform"). Action = "/schulnet/other.do? flag ="+o.name+"& searchPagenow = 1"; document.getElementById ("Suchform"). name = o.name; document.getElementById ("searchimg"). $ ("#topSearchText"). show (); $ ("#Searchfriendsss"). Hide (); if (o.name == "searchfriends") {$ ("#topSearchText"). hide (); $ ("#Searchfriendsss"). Show (); }} // wird verwendet, um den Inhalt so festzulegen, dass intelligente Eingabeaufforderungen angezeigt werden (die Top Ten übereinstimmen in der Fuzzy -Suche) setSearch () {var v = document.getElementById ("TopSearchText"). Wert; var type = document.getElementById ("Suchform"). Name; if (v.length == 0) {$ ("#setSearch"). html (""); } if (v.Length> 0) {$ .ajax ({cache: true, type: "post", url: "/schulnet/changeInfo", data: {"action": "setSearch", "such": v, "suchtype": type $ ("#setSearch"). HTML (""); }; } Haupt -Java -Dateien
if ("SearchSongs" .Equals (SearchType)) <span style = "White-Space: pre"> </span> {<span style = "White-Space: PRE"> </span> String namehead [] = ChinesepinyIntool.GetheadbyString (Search); <span style = "White-Space: PRE"> </span> String nameheadstring = ""; <span style = "White-Space: pre"> </span> für (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 (Suche); <span style = "White-Space: PRE"> </span> String nameAllstring = ""; <span style = "White-Space: pre"> </span> für (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> list <Song> Songs = UniversityService.executeQueryBypage ("von Song Who to_pinyin (Name) wie '%"%"%" + ig " + ig" + "%". <span style = "White-Space: PRE"> </span> für (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 = '/schoolNet/music.do? flag = gopatentDisplay & pid = "+songs.get (i) .getPatent (). getId ()+"'> "+songs.get (i) .getName ()+" </a> </li> "; <span style = "White-Space: PRE"> </span>} <span style = "White-Space: pre"> </span> if (Songs.Size ()! style = 'display: inline; float: rechts; margin-right: 8px;'> close </a> </li> "; <span style = "White-Space: PRE"> </span>} <span style = "White-Space: PRE"> </span> else {<span style = "White-Space: PRE"> </span> con += "<li> <a href = 'javascript: void (0)' Onclick = 'hideli ()' style". <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>} else if ("setpifu" .equals (action)) <span style = "White-Space: pre"> </span> {<span style = "White-Space: Pre"> </span> String SkinId = Anfrage.GetParameter ("Skinid"); <span style = "White-Space: PRE"> </span> Skin Skin = (Haut) 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 (Haut); <span style = "White-Space: PRE"> </span> UniversityService.Update (Benutzer); <span style = "White-Space: PRE"> </span>} Bei der Konvertierung von Pinyin müssen Sie das Paket Pinyin4j.jar importieren
ChinepinyIntool Pinyin Conversion Tool Klasse
Package SchoolNet.utils;
import net.sourceforge.pinyin4j.pinyinhelper; import net.sourceforge.pinyin4j.format.hanyupinyincaSetype; import net.sourceforge.pinyin4j.format.hanyupinyinoutputformat; import net.sourceforge.pinyin4j.format.hanyupinyintonetype; import net.sourceforge.pinyin4j.format.exception.badhanyupinyinoutputformatCombination; / ** * * chinesisches Pinyin -Tool * * * * * */ öffentliche Klasse ChinesepinyIntool {public static void main (String [] args) {String String [] = stringTopinyin ("this"); für (int i = 0; i <string.length; i ++) {System.out.println (String [i]); }} / ** * * konvertieren eine Zeichenfolge in eine Pinyin -Nummer * * * @param src * @return * / public static String [] stringTopinyin (String src) {return stringTopinyin (Src, false, null); } / ** * eine Zeichenfolge in eine Pinyin -Nummer * * * @param src * @return * / public static String [] StringTopinyin (String SRC, String Separator) {return StringTopinyin (SRC, True, Separator) konvertieren; } / ** * konvertieren eine Zeichenfolge in eine Anzahl von Pinyin * * @param src * @param ispolyphone *, ob das Pinyin polyphonischer Zeichen * @param Separator * Trennung zwischen polypholischer Zeichen * * @return * / public static String [] StringTopinyin (String Src, Booly, boolan ispolyphone, String -src, boolan ispolyphone, {String -src, boolan ispolype), finden soll. ("" .Eequals (src) || null == src) {return null; } char [] srcchar = src.toarArray (); int srccount = srcchar.length; String [] srcstr = new String [srccount]; für (int i = 0; i <srccount; i ++) {srcstr [i] = charitopinyin (Srcchar [i], Ispolyphone, Separator); } return srcstr; } / ** * Ein einzelnes Zeichen in Pinyin * * @param src * @return * / public static String charitopinyin (char src, boolean ispolyphone, String -Separator) {// Chinese Pinyin Processing HanyupinyInputformat DefaultFormat = new HanyupinyinoutputFormat () erstellen; // Ausgabeinstellungen, oberer Fall, phonetisches Symbol defaultFormat.setCasetype (HanyupinyincaSetype.lowerCase); defaultFormat.ettTonetype (hanyupinyIntonetype.without_tone); StringBuffer temppinying = new StringBuffer (); // Wenn es sich um mittel handelt, wenn (src> 128) {try {// konvertieren, um die Ergebnis string [] strs = pinyinhelper.TohanyupinyInstringArray (SRC, defaultFormat); // Ob Sie polyphonische Zeichen finden, die Standardeinstellung besteht darin, das Zeichen polyphonischer Zeichen zu finden, wenn (ispolyphone && null! if (Strs.Length! }}} else {temppinying.append (strs [0]); }} catch (badhanyupinyInoutputFormatCombination e) {e.printstacktrace (); }} else {temppinying.Append (SRC); } return temppinying.toString (); } public static String hanzitopininyin (String hanzi) {return Hanzitopinyin (Hanzi, ""); } / ** * chinesische Zeichen in Pinyin * * @param hanzi * @param separator * @return * / @Suppresswarnings ("Abschaltung") public static String hanzitopinyin (String hanzi, String -Separator) {// Erstellen chinesischer Pinyin -Verarbeitung hanyinyinyin -Defaultformat = New HanyupinyInutformat (); // Ausgabeinstellungen, oberer Fall, phonetisches Symbol defaultFormat.setCasetype (HanyupinyincaSetype.lowerCase); defaultFormat.ettTonetype (hanyupinyIntonetype.without_tone); String pinyingstr = ""; try {pinyingStr = pinyinhelper.tohanyupinyInstring (Hanzi, defaultFormat, Trennzeichen); } catch (badhanyupinyInoutputformatCombination e) {e.printstacktrace (); } return pinyingstr; } / ** * Ein String -Array in eine Zeichenfolge umwandeln für (int i = 0; i <Str.Length; i ++) {sb.append (str [i]); if (str.length! = (i + 1)) {sb.Append (separator); }} return sb.toString (); } / ** * Schließen Sie jedes Zeichenarray an * * * @param str * @return * / public static String StringArrayToString (String [] str) {return StringArrayToString (str, ""); } / ** * Ein Zeichen Array in Zeichen umwandeln für (int i = 0; i <ch.length; i ++) {sb.append (ch [i]); if (ch.length! = (i + 1)) {sb.append (separator); }} return sb.toString (); } / ** * Ein Zeichen Array in Zeichen umwandeln } / ** * Holen Sie sich das erste Zeichen des chinesischen Zeichens * * * @param src * @param iscapital * Ist es groß * * @return * / public static char [] getheadbychar (char src, boolean iscapital) {// Wenn nicht chinesischer Charakter, direkt if (src <= 128) {{{] {] {Src {Src}; } // Die erhaltene Rechtschreibung [] pinyingstr = pinyinhelper.tohanyupinyInstringArray (SRC); // Erstellen Sie ein Rückgabeobjekt int polyphoneSize = pinyingstr.length; char [] headchars = new char [polyphonesize]; int i = 0; // das erste Wort für (String S: PinyingStr) {char Headchar = S.Charat (0) abfangen; // Ob der erste Buchstabe aktiviert ist, der Standard ist klein, wenn (iscapital) {Kopfchars [i] = charakter.touppercase (Headchar); } else {headchars [i] = Headchar; } i ++; } Rückkehrkopf; } / ** * Die Standardeinstellung für das erste Wort für chinesische Zeichen ist groß. } / ** * Finden Sie den Anfangsbuchstaben der Zeichenfolge * * @param src * @Return * / public static String [] GetheadbyString (String Src) {return getheadbyString (SRC, true); } / ** * Finden Sie den Anfangsbuchstaben der Zeichenfolge * * @param src * @param iscapital *, ob er kapitalisiert ist } / ** * Finden Sie den Anfangsbuchstaben der Zeichenfolge * * @param src * @param iscapital * Wird er kapitalisiert * @return * / public static String [] GetheadbyString (String src, boolean isCapital) {return getheadbyString (SRC, iscapital, null); } / ** * Finden Sie die String -Initiale * * @param src * @param iscapital * ob Kapitalisierung * @param separator * getrennt * * @return * / public static String [] GetheadbyString (String src, boolean isCapital, String -Separator) {chars = src.toCharArray (); String [] hadtring = new String [chars.length]; int i = 0; für (char ch: chars) {char [] chs = getheadbychar (ch, iscapital); StringBuffer sb = new StringBuffer (); if (null! = separator) {int j = 1; für (char ch1: chs) {sb.append (ch1); if (j! = chs.length) {sb.append (separator); } J ++; }} else {sb.append (chs [0]); } kopfüber [i] = sb.toString (); i ++; } return topping; }} Datenbank erstellt verwandte Funktionen
Fristpinyin: Diese Funktion wandelt den ersten chinesischen Charakter einer chinesischen Zeichenfolge in den ersten Buchstaben des Pinyin um (zum Beispiel: "OK"-> H)
Pinyin: Diese Funktion verbindet jedes der ersten Buchstaben einer chinesischen Zeichenfolge (zum Beispiel: "OK"-> HD)
to_pinyin: Diese Funktion verbindet jeden der vollständigen Buchstaben einer chinesischen Zeichenfolge, die dem Pinyin entspricht (zum Beispiel: "OK"-> Haode)
Funktion erstellen `Fristpinyin` (p_name varchar (255)) Gibt varchar (255) charset utf8 an Declare v_return varchar (255) zurück; Setzen Sie v_return = elt (Intervall (conv (hex 0xbfa6,0xc0ac, 0xc2e8,0xc4c3,0xc5b6,0xc5be, 0xc6da, 0xc8bb, 0xc8f6,0xcbfa, 0xcdda, 0xcef4,0xd1b9,0xd4d1),) 'A', 'b', 'c', 'd', 'e', 'f', 'g', 'H', 'j', 'k', 'l', 'm', 'n', 'o', 'P', 'Q', 'R', 'S', 't', 'w', 'x', 'y', 'Z'); Return v_return; Ende erstellen Funktion `pinyin` (p_name varchar (255)) Gibt varchar (255) charset utf8 an Declare v_compare varchar (255) zurück; Deklarieren v_return varchar (255); Erkläre, ich int; Set i = 1; V_return = '' setzen; während ich <Länge (p_name) setze v_compare = substr (p_name, i, 1); If (v_compare! = '') Dann #set v_return = concat (v_return, ',', v_compare); Setze v_return = concat (v_return, Fristpinyin (v_compare)); #Set v_return = Fristpinyin (v_compare); Ende wenn; Set i = i + 1; Ende während; If (isnull (v_return) oder v_return = '') dann setzen Sie v_return = p_name; Ende wenn; Return v_return; Ende erstellen Funktion to_pinyin (Name varchar (255) charSet gbk) Gibt Varchar (255) charSet gbk an Declare declare mycode int; Deklarieren Sie tmp_lcode varchar (2) charset gbk; Deklarieren lcode int; Deklarieren Sie tmp_rcode varchar (2) charSet gbk; RCODE INT deklarieren; Deklarieren Sie mypy varchar (255) charset gbk Standard '' '; Deklarieren lp int; Mycode = 0 einstellen; Lp = 1 einstellen; Set name = hex (name); Während LP <Länge (Name) TMP_LCODE = Substring (Name, LP, 2) festlegen; Lcode = cast (ASCII (unvorstehend (TMP_LCODE)) als nicht signiert) setzen; Setzen Sie tmp_rcode = substring (Name, Lp + 2, 2); Rcode = cast (ASCII (unvorstehend (TMP_RCODE)) als unsigniert) einstellen; Wenn Wählen Sie Concat (myPy, pin_yin_) in myPy von t_base_pinyin wobei code_> = abs (mycode) order nach code_ asc limit 1; Lp = lp + 4 einstellen; Sonst setzen Sie mypy = concat (mypy, char (gossen (ascii (unhex (substring (name, lp, 2))) wie nicht signiert))); Lp = lp + 2 einstellen; Ende wenn; Ende während; Zurückkehren (mypy); ENDE;
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.