ผลการค้นหาของโฮมเพจ 360 มีดังนี้
1. โครงสร้างไดเรกทอรีหลักของเครือข่ายวิทยาเขต Schoolnet ที่เสร็จสมบูรณ์มีดังนี้
ส่วนใหญ่ตระหนักถึงการค้นหาอัจฉริยะและการเปลี่ยนผิวหนังที่รองรับภาษาจีนตัวอักษรตัวแรกและตัวอักษรเต็มรูปแบบของพินอิน
เอฟเฟกต์หน้ามีดังนี้
รหัสหลักหลักมีดังนี้
1. เฮด. 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/core uri = "http://java.sun.com/jsp/jstl/functions"%> <! doctype html สาธารณะ "-// w3c // dtd xhtml 1.0 transitional // en" "http://ww.w3 <html> <head> <title> หน้าแรกของเครือข่ายวิทยาเขต </title> <link rel = "stylesheet" href = "/Schoolnet/css/index.css" type = "text/css"/> <script type = "text/javascript" src = " src = "/Schoolnet/js/jQuery.js"> </script> <script src = "/Schoolnet/js/jQuery-ui.js"> </script> <script type = "text/javascript" src = "/js/js/publicjs.js" src = "/Schoolnet/myajax/ajax_uni.js"> </script> <script type = "text/javascript" src = "/js/js/style.js"> </script> <c: ถ้า test = "$ {loginuser.skin.id! {var photo = '$ {loginuser.skin.photo}'; $ ("body"). CSS ("พื้นหลัง", "#f6f6f6 url (/Schoolnet/images/pf/" + photo + ") ทำซ้ำด้านบน"); - </script> </c: ถ้า> </head> <body> <div> <div id = "searchType"> <a href = "JavaScript: void (0)" onClick = "setSearchType (นี่), setSearch ()" name = "searchDatas" id = "books.png" onClick = "setSearchType (นี่), setSearch ()" name = "searchSongs" id = "t01d566d0c28b32ddad.png"> เพลง </a> <a href = "JavaScript: void (0) id = "newspaper.png"> ข่าว </a> <a href = "JavaScript: void (0)" onclick = "setsearchType (นี่), setSearch ()" name = "searchxioshuos" id = "Library.png"> นวนิยาย </a> <a href = "Javascript onClick = "setSearchType (this), setSearch ()" name = "searchArticles" id = "blog.gif"> log </a> </div> <form id = "search-form" action = "/Schoolnet/อื่น ๆ src = "/Schoolnet/images/front/books.png" id = "searchimg" style = "margin-bottom: -10px"/> <อินพุต type = "text" name = "search" id = "topsearchtext" onkeyup = "setSearch () <ul id = "setsearch" ></ul> </div> <div id = "mainmenu"> <ul> <li> <a href = "/Schoolnet/login.do? flag = gohomeui" id = "menu_selected"> <pan> เครือข่ายวิทยาเขต </a> </a> href = "/Schoolnet/login.do? flag = gohomeui"> <span> ศูนย์ส่วนบุคคล </span> </a> </li> <li> <a href = "/Schoolnet/profile.do? flag = gohomepageui"> <pan> บ้านของฉัน </a> <ul> <li> <a href = "/schoolnet/shou.do? flag = shuoshuo & pagenow = 1"> พูด </a> </li> <li> <a href = "/schoolnet/อัลบั้ม? href = "/schoolnet/friend.do? flag = myFriEfialUI & pagenow = 1"> เพื่อน </a> </li> <li> <a href = "/Schoolnet/article.do? href = "/Schoolnet/article.do? flag = articleui & pagenow = 1 & userId = $ {logginuser.id}"> บันทึก </a> </li> <li> <a href = "/schoolnet/music.do? Flag = Gomusichome & pagenow = 1" href = "/Schoolnet/news.do? flag = gonewsui & typeId = 1 & pagenow = 1"> ข่าว </a> </li> <li> <a href = "/Schoolnet/dataS.do? Flag = Godatasui & pagenow = 1 & Action = All" href = "/schoolnet/xiaoshuo.do? flag = goxioshuoui & pagenow = 1 & id = ทั้งหมด"> นวนิยาย </a> </li> <li> <a href = "/skinnet/skin.do? flag = goskinui & pagenow = 1 & id = ทั้งหมด" .do? flag = goshareui & pagenow = 1 "> สิ่งใหม่ </a> </li> </ul> </li> <li> <a href =" JavaScript: void (0) "> <pan> เกี่ยวกับ </a> </a> </a> <ul> <li> <li> <a href = "/schoolnet/อื่น ๆ do? flag = goaboutui#2"> sitemap </a> </li> <li> <a href = "/Schoolnet/อื่น ๆ คำสั่ง </a> </li> <li> <a href = "/schoolnet/อื่น ๆ ? flag = goaboutui#4"> ลิงก์เพื่อน </a> </li> </ul> </li> </li> <li> <a href = "JavaScript: void (0)" href = "/schoolnet/register.do? flag = updui"> แก้ไขข้อมูลส่วนบุคคล </a> </li> <li> <a href = "/Schoolnet/login.do? flag = logout"> ออก </a> </li> </li> </li> </li> </li> </li> </li> test = "$ {logginuser! = null}"> <div id = "page-wrap"> <ul> <li id = "menu_selected"> <a id = "menu_selected" href = "/Schoolnet/login.do? ระยะขอบ: -18px; margin-left: -10px "/> </a> <ul> <li> <a href ="/Schoolnet/register.do? flag = updui "> แก้ไขข้อมูลส่วนบุคคล </a> </li> <li> </ul> </div> </c: ถ้า> </div> </body> </html> 2. ฟังก์ชั่น JS หลัก
// ใช้เพื่อตั้งค่าประเภทการค้นหาสวิตช์และแสดงเนื้อหายอดนิยม (ห้าแรก) ที่สอดคล้องกัน (ข้อมูลเพลงข่าวนวนิยายบันทึก) เมื่อเรียกจุดโฟกัสของการควบคุมอินพุต ฟังก์ชั่น setSearchType (o) {$ ("#searchType a"). RemoveClass ("ปัจจุบัน"); $ (o) .AddClass ("ปัจจุบัน"); var inputSearchType = $ (o) .Text (); $ ("#InputSearchType"). val ("Search"+InputSearchType); document.getElementById ("Search-form"). action = "/Schoolnet/อื่น ๆ ? flag ="+o.name+"& searchpagenow = 1"; document.getElementById ("search-form"). name = o.name; document.getElementById ("searchimg"). src = "/Schoolnet/images/front/"+o.id; $ ("#topsearchtext"). show (); $ ("#searchfriendss"). ซ่อน (); if (o.name == "searchfriends") {$ ("#topsearchtext"). ซ่อน (); $ ("#searchfriendss"). show (); }} // ใช้เพื่อตั้งค่าเนื้อหาเพื่อแสดงการแจ้งเตือนอัจฉริยะ (การจับคู่สิบอันดับแรกในการค้นหาฟัซซี่) function setsearch () {var v = document.getElementById ("topSearchText") ค่า; var type = document.getElementById ("Search-form") ชื่อ; if (v.length == 0) {$ ("#setsearch"). html (""); } if (v.length> 0) {$ .ajax ({cache: true, type: "post", url: "/Schoolnet/changeinfo", data: {"action": "setsearch", "search": v, "searchtype": type}, async $ ("#setsearch"). html (""); - - ไฟล์ Java หลัก
if ("SearchSongs" .equals (SearchType)) <span style = "Space Space: pre"> </span> {<span style = "Space White-Space: Pre"> </span> string namehead [] = chinesepinyintool.getheadbystring (ค้นหา); <span style = "space สีขาว: pre"> </span> สตริง nameheadString = ""; <span style = "space สีขาว: pre"> </span> สำหรับ (int i = 0; i <namehead.length; i ++) {<span style = "Space White-space: pre"> </span> nameheadstring+= namehead [i]; <span style = "space สีขาว: pre"> </span>} <span style = "space สีขาว: pre"> </span> สตริง nameall [] = chinesepinyintool.stringtopinyin (ค้นหา); <span style = "space สีขาว: pre"> </span> สตริง nameAllString = ""; <span style = "space สีขาว: pre"> </span> สำหรับ (int i = 0; i <nameall.length; i ++) {<span style = "space สีขาว: pre"> </span> nameallstring+= nameall [i]; <span style = "space สีขาว: pre"> </span>} <span style = "space สีขาว: pre"> </span> รายการ <ong> songs = UniversityService.executeQueryBypage ("จากเพลงที่ to_pinyin (ชื่อ)"%" + nameallstring +"%' <span style = "space สีขาว: pre"> </span> สำหรับ (int i = 0; i <songs.size (); i ++) <span style = "space white-space: pre"> </span> {<span style = "space สีขาว: pre"> </span> con+= "<li> href = '/Schoolnet/music.do? flag = gopatentDisplay & pid = "+songs.get (i) .getPatent (). getId ()+"'> "+songs.get (i) .getName ()+" </a> </li> "; <span style = "space สีขาว: pre"> </span>} <span style = "space สีขาว: pre"> </span> ถ้า (songs.size ()! = 0) {<span style = "space สีขาว: pre"> </span> con += "<li> style = 'display: inline; float: ขวา; margin-right: 8px;'> close </a> </li> "; <span style = "space สีขาว: pre"> </span>} <span style = "space สีขาว: pre"> </span> else {<span style = "space สีขาว: pre"> </span> con += "<li> <a href = 'javaScript: void (0) ผลลัพธ์ </a> </li> "; <span style = "space สีขาว: pre"> </span>} <span style = "space สีขาว: pre"> </span> out.write (con); <span style = "พื้นที่สีขาว: pre"> </span> out.close (); <span style = "space สีขาว: pre"> </span>} อื่นถ้า ("setpifu" .equals (การกระทำ)) <span style = "space สีขาว: pre"> </span> {<span style = "Space สีขาว: pre"> </span> string skinid = request.get.getParameter ("skinid"); <span style = "พื้นที่สีขาว: pre"> </span> ผิวหนัง = (ผิว) UniversityService.findbyId (skin.class, integer.valueof (skinid)); <span style = "space สีขาว: pre"> </span> ผู้ใช้ผู้ใช้ = (ผู้ใช้) request.getSession (). getAttribute ("logginuser"); <span style = "พื้นที่สีขาว: pre"> </span> user.setskin (ผิว); <span style = "พื้นที่สีขาว: pre"> </span> UniversityService.update (ผู้ใช้); <span style = "พื้นที่สีขาว: pre"> </span>} เมื่อทำการแปลงพินอินคุณต้องนำเข้าแพ็คเกจ pinyin4j.jar
คลาสเครื่องมือแปลงพินอิน Chinesepinyintool
Package 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; / ** * * เครื่องมือพินอินจีน * * * */ คลาสสาธารณะ Chinesepinyintool {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {สตริงสตริง [] = stringtopinyin ("นี่"); สำหรับ (int i = 0; i <string.length; i ++) {system.out.println (string [i]); }} / ** * * แปลงสตริงเป็นหมายเลข pinyin * * * @param src * @return * / สตริงคงที่สาธารณะ [] stringtopinyin (สตริง src) {return stringtopinyin (src, false, null); } / ** * แปลงสตริงเป็นหมายเลข pinyin * * * @param src * @return * / สตริงคงที่สาธารณะ [] stringtopinyin (สตริง src, ตัวคั่นสตริง) {return stringtopinyin (src, true, ตัวคั่น); } / ** * แปลงสตริงเป็น pinyin * * * @param src * @param ispolyphone * ไม่ว่าจะค้นหา pinyin ของอักขระ polyphonic * * @param ตัวแยก * การแยกระหว่างอักขระ polyphonic * * @return ("" .Equals (src) || null == src) {return null; } char [] srcchar = src.tochararray (); int srccount = srcchar.length; สตริง [] srcstr = สตริงใหม่ [srccount]; สำหรับ (int i = 0; i <srccount; i ++) {srcstr [i] = chartopinyin (srcchar [i], ispolyphone, ตัวคั่น); } return srcstr; } / ** * แปลงอักขระตัวเดียวเป็น pinyin * * @param src * @return * / chartopinyin สตริงคงที่สาธารณะ (ถ่าน src, boolean ispolyphone, ตัวคั่นสตริง) {// สร้างการประมวลผล pinyin จีน // การตั้งค่าเอาท์พุท, ตัวพิมพ์ใหญ่, สัญลักษณ์การออกเสียง defaultFormat.setCasetype (hanyupinyincaseType.lowercase); defaultFormat.settonetype (hanyupinyintonetype.without_tone); StringBuffer temppinying = new StringBuffer (); // ถ้าเป็นสื่อกลางถ้า (src> 128) {ลอง {// แปลงเพื่อรับสตริงผลลัพธ์ [] strs = pinyinhelper.tohanyupinyinstringarray (src, defaultFormat); // ไม่ว่าจะพบอักขระโพลีโฟนิกค่าเริ่มต้นคือการค้นหาอักขระของอักขระ polyphonic ถ้า (ispolyphone && null! = ตัวคั่น) {สำหรับ (int i = 0; i <strs.length; i ++) {temppinying.append (strs [i]); if (strs.length! = (i + 1)) {// อักขระ polyphonic ถูกคั่นด้วยสัญลักษณ์พิเศษ temppinying.append (ตัวคั่น); }}} else {temppinying.append (strs [0]); }} catch (badhanyupinyinoutputformatcombination e) {e.printstacktrace (); }} else {temppinying.append (src); } return temppinying.toString (); } สตริงคงที่สาธารณะ hanzitopinyin (สตริง hanzi) {return hanzitopinyin (Hanzi, ""); } / ** * แปลงอักขระภาษาจีนเป็น pinyin * * @param hanzi * @param ตัวคั่น * @return * / @suppresswarnings ("deprecation") สตริงคงที่สาธารณะ hanzitopinyin (สตริง hanzi, ตัวแยกสตริง) {// // การตั้งค่าเอาท์พุท, ตัวพิมพ์ใหญ่, สัญลักษณ์การออกเสียง defaultFormat.setCasetype (hanyupinyincaseType.lowercase); defaultFormat.settonetype (hanyupinyintonetype.without_tone); สตริง pinyingstr = ""; ลอง {pinyingstr = pinyinhelper.tohanyupinyinstring (Hanzi, defaultFormat, ตัวคั่น); } catch (badhanyupinyinoutputformatcombination e) {e.printstacktrace (); } return pinyingstr; } / ** * แปลงอาร์เรย์สตริงเป็นสตริง * * @param str * @param ตัวคั่น * การแยกระหว่างแต่ละสตริง * * @return * / สตริงคงที่ StringArrayToString (สตริง [] str, ตัวคั่นสตริง) {stringbuffer sb = สตริงใหม่ (); สำหรับ (int i = 0; i <str.length; i ++) {sb.append (str [i]); if (str.length! = (i + 1)) {sb.append (ตัวคั่น); }} ส่งคืน sb.toString (); } / ** * เชื่อมต่อแต่ละอักขระอาร์เรย์ * * * @param str * @return * / สตริงคงที่สาธารณะ StringArrayToString (String [] str) {return StringArrayToString (str, ""); } / ** * แปลงอาร์เรย์อักขระเป็นอักขระ * * * @param str * @param ตัวคั่น * การแยกระหว่างแต่ละสตริง * * @return * / สตริงคงที่ chararrayToString (char [] ch, ตัวคั่นสตริง) {StringBuffer SB = StringBuffer ใหม่ (); สำหรับ (int i = 0; i <ch.length; i ++) {sb.append (ch [i]); if (ch.length! = (i + 1)) {sb.append (ตัวคั่น); }} ส่งคืน sb.toString (); } / ** * แปลงอาร์เรย์อักขระเป็นอักขระ * * * @param str * @return * / สตริงคงที่สาธารณะ chararraytoString (char [] ch) {return chararraytoString (ch, ""); } / ** * รับอักขระตัวแรกของตัวละครจีน * * * @param src * @param iscapital * มันใหญ่ * * @return * / ถ่านสาธารณะคงที่ [] getheadbychar (Char src, boolean iscapital) {// ถ้าไม่ใช่ตัวละครจีน } // การสะกดคำที่ได้รับ [] pinyingstr = pinyinhelper.tohanyupinyinstringarray (src); // สร้างวัตถุส่งคืน int polyphonesize = pinyingstr.length; ถ่าน [] headchars = ถ่านใหม่ [polyphonesize]; int i = 0; // สกัดกั้นคำแรกสำหรับ (สตริง s: pinyingstr) {char headchar = s.charat (0); // ไม่ว่าจะเป็นตัวอักษรตัวแรกค่าเริ่มต้นจะมีขนาดเล็กถ้า (iscapital) {headchars [i] = character.touppercase (headchar); } else {headchars [i] = headchar; } i ++; } return headchars; } / ** * ค่าเริ่มต้นสำหรับการใช้คำแรกสำหรับอักขระจีนมีขนาดใหญ่ * * @param src * @return * / ถ่านสาธารณะคงที่ [] getheadbychar (ถ่าน src) {return getheadbychar (src, true); } / ** * ค้นหาตัวอักษรเริ่มต้นของสตริง * * @param src * @return * / สตริงคงที่สาธารณะ [] getheadbystring (สตริง src) {return getheadbystring (src, true); } / ** * ค้นหาตัวอักษรเริ่มต้นของสตริง * * @param src * @param iscapital * ไม่ว่าจะเป็นตัวพิมพ์ใหญ่ * @return * / สตริงคงที่สาธารณะ [] getheadbystring (สตริง src, true); } / ** * ค้นหาตัวอักษรเริ่มต้นของสตริง * * @param src * @param iscapital * เป็นตัวพิมพ์ใหญ่ * @return * / สตริงคงที่สาธารณะ [] getheadbystring (สตริง src, boolean iscapital) {return getheadbystring } / ** * ค้นหาค่าเริ่มต้นสตริง * * @param src * @param iscapital * ไม่ว่าจะเป็นตัวพิมพ์ใหญ่ * @param ตัวคั่น * คั่น * * @return * / สตริงคงที่สาธารณะ [] getheadbystring (สตริง src, boolean iscapital, ตัวคั่นสตริง) สตริง [] headstring = สตริงใหม่ [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 ++; }} else {sb.append (chs [0]); } headstring [i] = sb.toString (); i ++; } return headstring; - ฐานข้อมูลสร้างฟังก์ชั่นที่เกี่ยวข้อง
Fristpinyin: ฟังก์ชั่นนี้แปลงอักขระจีนตัวแรกของสตริงจีนเป็นตัวอักษรตัวแรกของพินอิน (ตัวอย่างเช่น: "ตกลง"-> h)
Pinyin: ฟังก์ชั่นนี้เชื่อมต่อตัวอักษร Pinyin แต่ละตัวแรกของสตริงภาษาจีน (ตัวอย่างเช่น: "OK"-> HD)
to_pinyin: ฟังก์ชั่นนี้เชื่อมต่อตัวอักษรเต็มรูปแบบของสตริงภาษาจีนที่สอดคล้องกับพินอิน (ตัวอย่างเช่น: "ตกลง"-> haode)
สร้างฟังก์ชัน `fristpinyin` (p_name varchar (255)) ส่งคืน varchar (255) charset utf8 เริ่มประกาศ v_return varchar (255); SET V_RETURN = ELT (Interval (conv (hex (ซ้าย (แปลง (p_name โดยใช้ GBK), 1)), 16,10), 0xb0a1,0xb0c5,0xb2c1,0xb4ee, 0xb6ea, 0xb7a2,0xb8c1,0xb9fe 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', กลับ v_return; สิ้นสุดการสร้างฟังก์ชั่น `pinyin` (p_name varchar (255)) ส่งคืน varchar (255) charset utf8 เริ่มประกาศ v_compare varchar (255); ประกาศ v_return varchar (255); ประกาศว่าฉัน int; Set i = 1; ตั้งค่า v_return = ''; ในขณะที่ฉัน <ความยาว (p_name) ตั้งค่า v_compare = substr (p_name, i, 1); if (v_compare! = '') จากนั้น #set v_return = concat (v_return, ',', v_compare); ตั้งค่า v_return = concat (v_return, fristpinyin (v_compare)); #set v_return = fristpinyin (v_compare); สิ้นสุดถ้า; Set i = i + 1; สิ้นสุดในขณะ; if (isnull (v_return) หรือ v_return = '') จากนั้นตั้งค่า v_return = p_name; สิ้นสุดถ้า; กลับ v_return; สิ้นสุดการสร้างฟังก์ชั่น to_pinyin (ชื่อ varchar (255) Charset GBK) ส่งคืน varchar (255) Charset GBK เริ่มประกาศ MyCode Int; ประกาศ TMP_LCODE VARCHAR (2) Charset GBK; ประกาศ lcode int; ประกาศ TMP_RCODE VARCHAR (2) Charset GBK; ประกาศ rcode int; ประกาศ mypy varchar (255) Charset GBK Default ''; ประกาศ LP Int; ตั้งค่า myCode = 0; ตั้งค่า lp = 1; ตั้งชื่อ = hex (ชื่อ); ในขณะที่ lp <ความยาว (ชื่อ) ตั้งค่า tmp_lcode = substring (ชื่อ, lp, 2); ตั้งค่า lcode = cast (ascii (unhex (tmp_lcode)) ตามที่ไม่ได้ลงนาม); ตั้งค่า tmp_rcode = substring (ชื่อ, lp + 2, 2); ตั้งค่า rcode = cast (ascii (unhex (tmp_rcode)) ตามที่ไม่ได้ลงนาม); ถ้า lcode> 128 จากนั้นตั้งค่า myCode = 65536 - LCODE * 256 - RCODE; เลือก concat (mypy, pin_yin_) ลงใน mypy จาก t_base_pinyin โดยที่ code_> = abs (mycode) สั่งซื้อโดย code_ asc limit 1; ตั้งค่า lp = lp + 4; อื่นตั้งค่า mypy = concat (mypy, char (cast (ascii (unhex (substring (ชื่อ, lp, 2))) ตามที่ไม่ได้ลงนาม))); ตั้งค่า lp = lp + 2; สิ้นสุดถ้า; สิ้นสุดในขณะ; กลับมาลดลง (mypy); จบ;
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น