Os resultados da pesquisa da página inicial de 360 são os seguintes
1. A principal estrutura de diretório da rede do campus escolar concluída é a seguinte
Realiza principalmente pesquisa inteligente e substituição da pele que suporta chinês, primeiras letras e letras completas de pinyin
O efeito da página é o seguinte
O código principal principal é o seguinte
1.head.jsp
<%@ página import = "java.io.file"%> <%@ página linguagem = "java" import = "java.util. uri = "http://java.sun.com/jsp/jstl/functions"%> <! doctype html public "-// w3c // dtd xhtml 1.0 transitional //" <html> <head> <title> Página inicial da rede do campus </ititle> <link rel = "stylesheet" href = "/schoolnet/css/index.css" type = "text/css"/> <script type = "text/javascript" src = "/schoolnet/js/ddsmoothmenu.jsnu.js" src = "/SchoolNet/js/jQuery.js"> </script> <script src = "/schoolnet/js/jQuery-ui.js"> </script> <script type = "text/javascript" src = "/schoolnet/js/publicjs.js"> </script> </script> src = "/schoolnet/myajax/ajax_uni.js"> </script> <script type = "text/javascript" src = "/schoolnet/js/style.js"> </script> <c: se test = "$ {LoginUser.skin.id! setskin () {var foto = '$ {LoginUser.skin.photo}'; $ ("corpo"). CSS ("Background", "#f6f6f6 url (/schoolnet/imagens/pf/" + foto + ") repete em cima"); }); </script> </c: if> </head> <body> <div> <div id = "SearchType"> <a href = "javascript: void (0)" onclick = "setSearchType (this), setSearch ()" name = "searchdatas" = "books.png"> dados </a> OnClick = "SetSearchType (this), setSearch ()" name = "searchsongs" id = "t01d566d0c28b32ddad.png"> music </a> <a href = "jAVScript: void (0)" onclick = "SetSearchTe (this), this) id = "Newspaper.png"> News </a> <a href = "javascript: void (0)" onclick = "setSearchType (this), setSearch ()" name = "Searchxiaoshuos" id = "Library.png"> romance </a> <a href = "javroscript: nAbrary.png"> romance </a> <a href = "javrofscript: nAr) OnClick = "SetSearchType (this), setSearch ()" name = "SearchTicles" id = "blog.gif"> log </a> </div> <formig id = "searchform" action = "/schoolnet/other.do? Flag = SearchDatas & Searchpagenow = 1" Method = "Post" Name = "pesquisa src = "/schoolNet/imagens/front/books.png" id = "searchimg" style = "margin-bottom: -10px"/> <input type = "text" name = "search" id = "topSearchText" OnkeyUp = "setSearch ()" Onfocus = "Newsearch" "" //> <ing " </morm> <ul id = "SetSearch"> </ul> </div> <div id = "mainmenu"> <ul> <li> <a href = "/schoolnet/login.do? Flag = gohomeui" id = "*menus_selected"> <mpan> Campus </a> </a> </li> href = "/SchoolNet/login.do? Flag = gohomeui"> <pan> Centro pessoal </span> </a> </li> <li> <a href = "/schoolnet/perfil.do? Flag = gohomepageUi"> <span> my home </span> <anscript: </li) <li) <li) <s) <s) <s) <s) <s) <s) <li) <s) <a) <a) <s) <s) <s) <s) <s) <s) <s) <s) <s) <s) <li) </a> <ul> <li> <a href = "/SchoolNet/shou.do? Flag = shuoshuo & pagEnow = 1"> fale </a> </li> <li> <a href = "/schoolnet/album.do? Flag = Myalbumui & Pagenow = 1 & userId = $ {LoginUser href = "/SchoolNet/Friend.do? Flag = Myfriendui & Pagenow = 1"> Amigos </a> </li> <li> <a href = "/schoolnet/article.do? Flag = articleUi & pagEnow = 1 & userID = $ {Loginuser.id}"> log </a> href = "/schoolnet/article.do? Flag = articleUi & pagEnow = 1 & userID = $ {LoginUser.id}"> log </a> </li> <li> <a href = "/schoolnet/music.do? Flag = gomusichome & pagenow = 1"> música </a> href = "/SchoolNet/News.do? Flag = Gonewsui & typeId = 1 & Pagenow = 1"> Notícias </a> </li> <li> href = "/SchoolNet/xiaoshuo.do? Flag = goxiaoshuoui & pagenow = 1 & id = all"> romance </a> </li> <li> <a href = "/schoolnet/skin.do? Flag = Goskinui & page = 1 & id = all"> .do? Flag = Goshareui & Pagenow = 1 "> Coisas novas </a> </li> </ul> </li> <li> <a href =" javascript: void (0) "> <pan> sobre </a> </a> </a> <ul> <li> <a href ="/schoolnnet/outros.do? <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 = "/2"> </li> <li> <a href = "/schoolnet/other.do? flag = goaboutUi#4"> links de amigos </a> </li> </ul> </li> </li> <li> <a href = "javascript: void (0)"> <t span> cenários </span> <li> href = "/schoolnet/register.do? sinalizador = updui"> modifique informações pessoais </a> </li> <li> <a href = "/schoolnet/login.do? flag = logout"> exit </a> </li> </li> </li> </li> </li> </li> </li> </li> test = "$ {LoginUser! = null}"> <div id = "página-wrap"> <ul> <li id = "menu_selected"> <a id = "menus_selected" href = "/schoolnet/login.do? Flag = gohomeui"> <img src = "/escolarNet/imagens/imagens/$ {$ $: margin-top: -18px; margin-left: -10px "/> </a> <ul> <li> <a href ="/schoolNet/register.do? Flag = uptui "> Modificar informações pessoais </a> </li> <li> <a href ="/escolar/login.gindo = </ </ul> </div> </c: se> </div> </body> </html> 2 funções JS principais
// Usado para definir o tipo de pesquisa de comutador e exibir o conteúdo popular (primeiros cinco) correspondentes (informações, músicas, notícias, romances, logs) ao desencadear o foco do controle de entrada. função setSearchType (O) {$ ("#SearchType A"). RemoveClass ("Current"); $ (O) .Addclass ("Current"); var inputSearchType = $ (O) .Text (); $ ("#inputSearchType"). val ("pesquisa"+inputSearchType); Document.getElementById ("Pesquisa"). Action = "/SchoolNet/Other.do? Flag ="+O.Name+"& SearchPagEnow = 1"; Document.getElementById ("Pesquisa"). Nome = O.Name; document.getElementById ("SearchImg"). Src = "/SchoolNet/Images/Front/"+O.id; $ ("#topSearchText"). show (); $ ("#searchfriendss"). hide (); if (O.Name == "SearchFriends") {$ ("#topSearchText"). hide (); $ ("#SearchFriendss"). Show (); }} // usado para definir o conteúdo para exibir prompts inteligentes (as dez principais correspondências em pesquisa fuzzy) SetSearch () {var v = document.getElementById ("topSearchText"). var tipo = document.getElementById ("forma de pesquisa"). Nome; if (v.Length == 0) {$ ("#setSearch"). html (""); } if (v.length> 0) {$ .ajax ({cache: true, tipo: "post", url: "/schoolnet/changeinfo", dados: {"action": "setSearch", "pesquisa": v, "searchtype": type}; $ ("#SetSearch"). HTML (""); }; } Principais arquivos Java
if ("searchSongs" .equals (SearchType)) <span style = "space branco: pre"> </span> {<span style = "white-space: pre"> </span> string namehead [] = chinesepinyIntool.getheadBystring (pesquisa); <span style = "space branco: pré"> </span> string nameheadstring = ""; <span style = "white-space: pré"> </span> para (int i = 0; i <nomeHead.length; i ++) {<span style = "white-space: pre"> </span> NameHeadString+= NameHead [i]; <span style = "white-space: pré"> </span>} <span style = "space branco: pre"> </span> string nameall [] = chinesepinyINTOOL.Stringtopinyin (pesquisa); <span style = "space branco: pré"> </span> string nameallstring = ""; <span style = "white-space: pré"> </span> para (int i = 0; i <nameall.length; i ++) {<span style = "white-space: pre"> </span> nameallString+= nameall [i]; <span style = "space branco: pré"> </span>} <span style = "space branco: pré"> </span> list <song> canções = universityService.executeQuerybypage ("da música where to_pinyin (nome) como '%" + nameallString + "%' ou pinyin (nome) como '%" " <span style = "white-space: pré"> </span> para (int i = 0; i <songs.size (); i ++) <span style = "white-space: pre"> </span> {<span style = "space branco: pre"> </span> con+= "<li> <a alvo = '' ' href = '/schoolnet/music.do? Flag = GopatentDisplay & pid = "+Songs.get (i) .getPatent (). getid ()+"'> "+Songs.get (i) .getName ()+" </a> </li> "; <span style = "white-space: pré"> </span>} <span style = "white-space: pre"> </span> if (songs.size ()! = 0) {<span style = "white-space: pre"> </span> con += "<li> <a href = 'javascript: void (0)' OnClick) style = 'display: inline; float: direita; margem-direita: 8px;'> feche </a> </li> "; <span style = "space branco: pré"> </span>} <span style = "space branca: pré"> </span> else {<span style = "space branco: pre"> </span> con += "<li> <a href = 'javascript: void (0)' OnClick = 'hideli ()' estilo '' '' '': 'Display: inn Display'; <span style = "white-space: pré"> </span>} <span style = "white-space: pré"> </span> out.write (con); <span style = "white-space: pré"> </span> out.close (); <span style = "white-space: pré"> </span>} else if ("setpifu" .equals (ação)) <span style = "space branco: pre"> </span> {<span style = "space branco: pré"> </span> string skinID = request.getParameter ("skinid"); <span style = "space branco: pré"> </span> pele de pele = (skin) UniversityService.findbyId (Skin.class, Integer.valueof (skinid)); <span style = "space branco: pré"> </span> usuários usuários = (usuários) request.getSession (). getAttribute ("loginUser"); <span style = "space branco: pré"> </span> user.setskin (pele); <span style = "white-space: pré"> </span> universityservice.update (usuário); <span style = "white-space: pré"> </span>} Ao fazer conversão de pinyin, você precisa importar o pacote pinyin4j.jar
ChinesepinyIntool Pinyin Conversão Tool Class
pacote SchoolNet.utils;
importação net.sourceforge.pinyin4j.pinyinhelper; importação net.sourceforge.pinyin4j.format.hanyupinyincaseType; importar net.sourceforge.pinyin4j.format.hanyUpinyInOutputFormat; importar net.sourceforge.pinyin4j.format.hanyupinyIntoneType; importar net.sourceforge.pinyin4j.format.exception.badhanyUpinyInOutputFormatCombination; / ** * * Ferramenta pinyin chinesa * * * */ public class ChineSepinyInTool {public static void main (string [] args) {string string [] = stringtopinyin ("this"); for (int i = 0; i <string.length; i ++) {System.out.println (string [i]); }} / ** * * Converta uma sequência em um número pinyin * * * @param src * @return * / public static string [] stringtopinyin (string src) {return stringtopinyin (src, false, null); } / ** * Converta uma sequência em um número pinyin * * * @param src * @return * / public static string [] stringtopinyin (string src, string separador) {return stringtopinyin (src, true, separador); } /** * Convert a string to a number of pinyin* * * @param src * @param isPolyphone * Whether to find the pinyin of polyphonic characters* * @param separator * Separation between polyphonic characters* * @return */ public static String[] stringToPinyin(String src, boolean isPolyphone, String separator) { // Determine whether the string is if ("" .equals (src) || null == src) {return null; } char [] srcchar = src.toCharArray (); int srcCount = srcchar.length; String [] srcstr = new string [srccount]; for (int i = 0; i <srccount; i ++) {srcstr [i] = ChartoPinyin (srcchar [i], ispolyphone, separador); } retornar srcstr; } / ** * Converta um único caractere em pinyin * * @param src * @return * / public static string Chartopinyin (char src, boolean ispolyphone, string separador) {// cria pinyin chineses hanyupinyinoutputformat defaultFormat = new hanyupinyinoutputformat (); // configurações de saída, caixa superior, símbolo fonético defaultFormat.setCaseType (hanyupinyincaseType.lowercase); defaultFormat.SettoneType (hanyupinyIntoneType.without_tone); StringBuffer temppinying = new StringBuffer (); // se for médio se (src> 128) {tente {// converte para obter o resultado string [] strs = pinyinhelper.tohanyupinyinstringArray (src, defaultFormat); // Se você deve encontrar caracteres polifônicos, o padrão é encontrar o caráter dos caracteres polifônicos se (ispolyphone && null! = Separador) {for (int i = 0; i <strs.length; i ++) {temppinying.append (strs [i]); if (strs.length! = (i + 1)) {// Os caracteres polifônicos são separados por símbolos especiais temppinying.append (separador); }}} else {temppinying.append (strs [0]); }} catch (badhanyUpinyInOutputFormatCombination e) {E.PrintStackTrace (); }} else {temppinying.append (src); } retornar temppinying.toString (); } public static string hanzitopinyin (string hanzi) {return hanzitopinyin (hanzi, ""); } / ** * Converta caracteres chineses em pinyin * * @param hanzi * @param separador * @return * / @suppresswarnings ("depreciação") public static string hanzitopinyin (string hanzi, string separator) {// crie o shanyininiNUPINIINO HANYUNUPINUINO (String); // configurações de saída, caixa superior, símbolo fonético defaultFormat.setCaseType (hanyupinyincaseType.lowercase); defaultFormat.SettoneType (hanyupinyIntoneType.without_tone); String pinyingstr = ""; tente {pinyingstr = pinyinhelper.tohanyupinyinstring (hanzi, defaultFormat, separador); } catch (badhanyUpinyInOutputFormatCombination e) {e.printStackTrace (); } retornar Pinyingstr; } / ** * Converta uma matriz de string em uma string * * @param str * @param separador * Separação entre cada string * * @return * / public static string stringArrayToString (string [] str, string separator) {stringBuffer sb = new StringBuffer (); for (int i = 0; i <str.Length; i ++) {sb.append (str [i]); if (str.Length! = (i + 1)) {sb.append (separador); }} return sb.toString (); } / ** * conecte cada matriz de caractere * * * @param str * @return * / public static string stringArrayToString (string [] str) {return stringArrayToString (str, ""); } / ** * Converta uma matriz de caracteres em caracteres * * * @param str * @param separador * Separação entre seqüências de caracteres individuais * * @return * / public static string CharArrayToString (char [] ch, string separador) {stringbuffer sb = new stringbuffer (); for (int i = 0; i <ch.length; i ++) {sb.append (ch [i]); if (ch.length! = (i + 1)) {sb.append (separador); }} return sb.toString (); } / ** * Converta uma matriz de caracteres em caracteres * * * @param str * @return * / public static string chararraytoString (char [] ch) {return CharArrayToString (CH, ""); } / ** * Obtenha o primeiro caractere do caractere chinês * * * @param src * @param iscapital * É grande * * @return * / public static char [] getheadbychar (char src, boolean iscapital) {// se não for um caractere chinês, retornar diretamente se (src <= 128) {retorno [] } // a ortografia obtida [] pinyingstr = pinyinhelper.tohanyupinyinstringArray (src); // Crie um objeto de retorno int polyphonesize = pinyingstr.length; char [] Headchars = New Char [Polyphonesize]; int i = 0; // interceptar a primeira palavra para (string s: pinyingstr) {char headchar = s.charat (0); // Se a primeira letra é capitalizada, o padrão é pequeno se (iscapital) {Headchars [i] = caractere.TOUPERCASE (Headchar); } else {Headchars [i] = Headchar; } i ++; } retornar os Headchars; } / ** * O padrão para levar a primeira palavra para caracteres chineses é grande * * @param src * @return * / public static char [] getheadbychar (char src) {return getheadbychar (src, true); } / ** * Encontre a letra inicial da string * * @param src * @return * / public static string [] getheadbystring (string src) {return getheadbystring (src, true); } / ** * Encontre a letra inicial da string * * @param src * @param iscapital * se é capitalizada * @return * / public static string [] getheadBystring (string src, true); } / ** * Encontre a letra inicial da string * * @param src * @param iscapital * é capitalizado * @return * / public static string [] getheadbystring (string src, boolean iscapital) {retorna getheadbystring (src, iscapital, Null); } / ** * Encontre as iniciais da string * * @param src * @param iscapital * se capitalização * @param separador * separado * * @return * / public static string [] getheadBystring (string src, boolean iscapital, string separador) {char [] chars = src.toyrayray (); String [] headstring = new string [chars.length]; int i = 0; for (char ch: chars) {char [] chs = getheadbychar (ch, iscapital); StringBuffer sb = new StringBuffer (); if (null! = separador) {int j = 1; for (char ch1: chs) {sb.append (CH1); if (j! = chs.length) {sb.append (separador); } j ++; }} else {sb.append (chs [0]); } headstring [i] = sb.toString (); i ++; } retorna cor cor corta; }} O banco de dados cria funções relacionadas
Fristpinyin: Esta função converte o primeiro personagem chinês de uma corda chinesa na primeira letra do pinyin (por exemplo: "OK"-> H)
Pinyin: Esta função conecta cada uma das primeiras letras pinyin de uma corda chinesa (por exemplo: "OK"-> HD)
to_pinyin: Esta função conecta cada uma das letras completas de uma sequência chinesa correspondente ao pinyin (por exemplo: "OK"-> Haode)
Criar função `fistpinyin` (p_name varchar (255)) retorna varchar (255) charset utf8 iniciar declarar v_return varchar (255); SET V_RETURN = ELT(INTERVAL(CONV(HEX(left(CONVERT(P_NAME USING gbk),1)),16,10), 0xB0A1,0xB0C5,0xB2C1,0xB4EE,0xB6EA,0xB7A2,0xB8C1,0xB9FE,0xBBF7, 0xBFA6,0XC0AC, 0XC2E8,0XC4C3,0XC5B6,0XC5BE, 0XC6DA, 0XC8BB, 0XC8F6,0XCBFA, 0XCDDA, 0xC4,0xD1B9,0xd4d1), 0xC4,0xd1b9,0xd4d1), 0xC4,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'; Retornar v_return; Função de criação final `pinyin` (p_name varchar (255)) retorna varchar (255) charset utf8 iniciar declarar v_compare varchar (255); Declarar v_return varchar (255); Declarar eu int; Set i = 1; Defina v_return = ''; enquanto i <comprimento (p_name) define v_compare = substr (p_name, i, 1); If (v_compare! = '') Então #set v_return = concat (v_return, ',', v_compare); Set v_return = concat (v_return, fistpinyin (v_compare)); #Set v_return = fristpinyin (v_compare); Fim if; Set i = i + 1; fim enquanto; If (isnull (v_return) ou v_return = '') então defina v_return = p_name; Fim if; Retornar v_return; Final Criar função para_pinyin (nome varchar (255) charset gbk) retorna varchar (255) charset gbk iniciar declarar mycode int; Declarar tmp_lcode varchar (2) charset gbk; Declarar lcode int; Declarar tmp_rcode varchar (2) charset gbk; Declarar rcode int; Declarar mypy varchar (255) charset gbk padrão ''; Declarar LP int; Defina mycode = 0; Set lp = 1; Definir nome = hex (nome); Enquanto lp <comprimento (nome) define tmp_lcode = substring (nome, lp, 2); Set lcode = fundd (ASCII (UNSEX (tmp_lcode)) como não assinado); Defina tmp_rcode = substring (nome, lp + 2, 2); Set rcode = fundd (ASCII (inútil (tmp_rcode)) como não assinado); Se lcode> 128, então defina mycode = 65536 - Lcode * 256 - rcode; Selecione concat (mypy, pin_yin_) em mypy de t_base_pinyin where code_> = abs (mycode) order by code_ ASC Limit 1; Set lp = lp + 4; Caso contrário, mypy = concat (mypy, char (fundd (ascii (ininex (substring (nome, lp, 2))) como não assinado))); Set lp = lp + 2; Fim if; Fim enquanto; Retornar mais baixo (mypy); FIM;
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.