一、java基礎
學習任何一門編程語言,首先要學習的是基礎語法,開啟Java學習的第一步,當然就是深入掌握計算機基礎、編程基礎語法,面向對象,集合、IO流、線程、並發、異常及網路編程,這些我們稱之為JavaSE基礎。當你掌握了這些內容之後,你就可以做出諸如:電腦上安裝的迅雷下載軟體、QQ聊天客戶端、考勤管理系統等桌面端軟體。
java學習路線大陸傳送門
❷ 我畢業設計選了新聞發布管理系統,我想利用網路爬蟲抓取其他網站的新聞,這個可以實現嗎
爬蟲的可以用python寫,python爬蟲的話你用一個禮拜 左右差不都多就可以掌握了,畢竟網上專源碼一抓一屬大把。
爬蟲這塊你用 java其實也是可以處理的,但是還是建議使用python.
Web那塊用spring struts2都是可以的。
整個流程無非是python抓取新聞內容入庫,然後javaweb作展示,然後寫個簡單點的後台管理系統就行了
❸ 求推薦論壇或者網站可以找到計算機的課程設計或者畢業設計啊
我推薦你一些新穎的課題吧
基於jsP的萬科新聞發布系統-java新聞發布系統javaweb新聞發布mysql數據源
基於SpringBoot+Redis的在線考試系統-java在線考試系統mysql數據源javaweb在線考試系統-javaEE在線考試系統
基於JSP的教學在線留言答疑係統-java教學在線留言答疑係統mysql數據源
基於SSM的教務管理系統(選課課程評分)-java教務管理系統mysql數據源
基於SSM+bootstrap的校園訂餐系統-java校園訂餐系統mysql數據源
基於JSP的高校快餐店訂餐系統-java快餐店訂餐系統mysql數據源
基於SSM+Bootstrap的汽車銷售管理系統-java汽車銷售管理系統maven分布式mysql數據源
基於SSM+Redis的停車場管理系統-java停車場管理系統mysql數據源
基於SSM+bootstrap的停車場收費管理系統-java停車場收費管理系統mysql數據源
基於Mybatis的教學管理系統作業提交批改管理系統-java教學管理系統作業提交批改管理系統
基於SSM的醫院住院管理系統-java醫院住院管理系統mysql數據源
基於SSM的醫院葯品管理系統(葯品采購處方開具櫃台倉庫多角色)-java醫院葯品管理系統mysql數據源
基於JSP的在線預約掛號系統-java在線預約掛號系統mysql數據源
基於SSM的實驗室管理系統-java實驗室管理系統mysql數據源
基於SSM的社區矯正工作信息管理平台-java社區矯正工作信息管理平台mysql數據源基於redis的分布式session實現『
基於SSH的校園食堂點餐系統-java校園食堂點餐訂餐系統mysql資料庫
基於Spring+SpringMvc+Hibernate的家政服務網-java家政服務網
基於SSM的家政服務管理系統-java家政服務管理系統家政平台mysql數據源
這些都很不錯 還有很多我沒發的課題,你自已找找 你應該明白 一貼就知道
❹ 網路公司企劃方案
網路公司企劃方案
網路公司企劃方案 目錄
一章:摘要
二章:公司介紹
三章:產品服務
四章:市場分析
五章:營銷戰略
六章:財務計劃
七章:風險分析及對策
八章:網站規劃
九章:法律依據
十章:附錄
一章摘要
一宗旨及商業模式
颶風網路公司是一個新型的電子商務公司,其宗旨是以網路為依託致力於推廣游戲代練信息,通過提供專業化、便捷化、個性化、時尚化的全新服務,以便捷為導向,以顧客滿意為目標,努力滿足顧客需求,通過各種贏利模式獲得利潤,並創造知名品牌。
本公司是一家處於創始階段的公司,初期發展以石家莊為據點,服務針對兩個目標群體:信息查詢服務主要針對網路代練工作室及輕愛好游戲娛樂的消費群體。公司力求為顧客提供最准確、最快捷、最溫馨、最周到的網路服務,從而促進公眾的娛樂消費。
二市場定位
在公司的宗旨中,我們已經將公司的目標市場定位為兩個大方向的市場一是以代練為主導的賣家市場,二是針對廣大需要進行信息查詢服務的消費群體。
針對賣家代練賣家市場定位,我們的服務主要包括為其提供代練工作室主鏈接,發布該工作室特色服務等信息;網路廣告宣傳;推薦業務通過調查顯示,代練工作室行業的信息化非常低,使得工作室銷售經營受阻,這就影響了該工作室的資金回籠和發展。公司針對代練工作室所提供的服務,有助於達到公司的雙贏乃至多盈的目標。
針對進行信息查詢服務的消費群體,我們提供關於代練工作室的各種信息查詢,目標市場定位在熱衷於游戲娛樂,有一定經濟基礎但時間不是很充裕的消費群體上。
三我們的服務
通過市場合理的細分,公司服務也將針對兩個目標市場的客戶來提供。
針對代練工作室對代練工作室我們為其製作專門的工作室網並為其進行推廣和宣傳。
針對網路游戲玩家我們為他們提供最准確、最快捷、最溫馨、最周到的代練信息,同時有專業的工作人員在線解答玩家的疑問。
四競爭
信息查詢行業方面,我們的競爭對手是涉及此行業的相關定位網站,如:、愛寶客、名流客等成為我們某一細分市場的競爭者。由於我們採用了新穎便捷的查詢方式並配置了專業細致的資料庫,所以從經營方式來講我們是全電子商務化的,是全新的。通過與多種現代通信工具及方式相結合,我們有兩個優勢,一是可以節約顧客的時間成本,顧客可以隨時隨地最快的獲得所需的信息;二是幫助顧客全面了解國內各個代練工作室的信息,使其有針對性地消費,有效的降低其開銷,獲取最大的消費者剩餘,真正意義上地實現互利。
五團隊優勢
我們的團隊目前由六名成員組成,我們分工細致但不缺乏橫向聯系,目標一致執行力強,技術方面由四名工作經驗豐富的團隊成員組成,市場方面由兩名優秀而且富有激情,踏實肯乾的大學生組成,他們在校期間參加過多種社會活動並在校擔任職位,管理能力強。
二章公司介紹
一宗旨
網路信息服務公司是一個新型的電子商務公司,宗旨是以網路為依託提供專業細致的代練工作室信息查詢服務。通過提供專業化、便捷化、個性化、時尚化的全新服務,以方便快捷為導向,以顧客滿意為目標,努力滿足顧客需求,通過各種贏利模式獲得利潤,並創造知名品牌。
隨著經濟發展,人們越發注重生活質量和休閑娛樂,網路游戲行業必將成為這個世紀國內最有前景的行業之一,而網遊行業的衍生品游戲代練工作室也必將隨之發展而發展壯大,但代練工作室的一些自身條件影響其發展,而我們將為他們提供服務,幫助他們很好的宣傳自己提高其行業知名度,加速工作室發展。,
網路公司企劃方案
我們公司的理念是:服務專業化、服務規范化、服務多樣化以及服務新穎化。
服務的專業化:我們將力求根據顧客的需求,開發出性能良好的在線軟體服務,盡可能將國內代練工作室的相關信息羅列到資料庫。
服務的規范化:我們的服務始終以國家或河北省出台的相關法律(如《經濟法》、《電子認證服務密碼管理辦法》、《電子簽名法》)為前提,絕不向顧客提供不健康的服務和信息,同時將嚴格執行同行業的相關條款,絕不損害顧客的利益。
服務的多樣化:我們公司將力推兩大業務。在線信息管理系統;信息查詢方面,從代練信譽查詢和使用情況查詢,到服務類型查詢和價格查詢,我們考慮到了大部分消費者的普遍需求,甚至我們將服務延伸到特色推薦。
二公司發展將分為四階段
一階段構建網路宣傳平台,我們將帶領我們團隊在最短的時間內搭建起一個比較成熟的代練宣傳網,將重點建設在線信息資料庫、公司內部網及內部資料庫、外部網,與國內各個目標客戶建立合作關系。
二階段進行公司品牌宣傳,並大力拓展市場,進一步完善在線信息管理系統和內部管理系統,開始查詢服務,與此同時開始縱向發展。
三階段繼續鞏固市場,並樹立行業標准化的一面大旗
四階段根據市場變化,公司進行適當的轉型和業務的變更
三公司架構
初期推行扁平化的組織結構,減少管理層次,實行ceo負責制,直接管理市場拓湛、網路技術部、人力資源部、客戶服務部、財務投資部,各部門由部門經理分管,互相合作,協同一致為公司發展而努力。
市場拓湛:是迎接市場變化和競爭者挑戰的中堅力量,著力研究市場開拓和業務擴展,並努力推廣和擴大公司品牌。
網路技術部:負責建設公司信息系統和網站,完善公司資料庫,並逐步實現與各休閑娛樂會所後台系統的對接,同時解決公司在日常運作方面的技術問題。
人力資源部:負責公司的人事、培訓、招聘等事務,在為公司的發展注入新鮮血液的同時,協助各部門員工提升自我價值。
財務投資部:負責公司日常的財務工作,及項目拓展的資金成本、回收分析。
組織架構圖:
四公司管理
管理思想
優良科學管理的前提是確定和貫徹正確先進的管理思想。我們將採取以人為本,重視團隊合作精神的管理思想。將剛性管理、柔性管理結合。
把硬性的規章制度、組織模式、獎罰標准與有形的情感投資、戰略滾動和優質服務聯系起來,達到一種軟硬結合、和諧發展的最佳效果。通過規范化的制度形式、組織模式和行為規范來管理企業達到一種有章可循、有規可依的效果,使員工的自覺性、能動性得到充分發揮,促進員工實現自我價值。
管理隊伍
投資是一項經營人才的業務。我們將構建一支在各種有影響力的崗位上具有直接技術與經驗的管理隊伍,並歡迎一切有志於謀求本公司發展的人才加入本公司。
五企業文化
更理性的思考,更高漲的熱情
更規范的管理,更先進的文化
更寬廣的心胸,更開闊的視野
.核心價值觀
以人為本,精誠合作,細致服務,努力創新,引領潮流
.經營理念
用誠信打造企業形象,營造和諧的外部關系----贏。
企業內部誠信文化,是管理誠信,對員工建立信用制度。
企業與顧客之間建立互動機制,對其誠信,才能得到窒,雙方加強溝通。,
網路公司企劃方案
企業與合作夥伴和不同利益主體間要建立互信互惠互利制度,我們將加強與同行業相關機構交流與合作,優勢互補,實現多贏。
追求卓越,大膽創新,敢於挑戰。
提倡換位思考的意識,向顧客提供針對性的、無缺陷的服務,來提高顧客滿意度。
用創新方法不斷改善服務質量和服務方式,挑戰傳統,根據網路文化給人們心覺和視覺帶來的沖擊。
專注目標,形成規模。
集中力量去做最擅長的業務、最有發展潛力的業務、最能夠形成規模化的業務、最能夠體現天行這個品牌的業務。
人本思想,團結協作。
建立完善的人才培養、選拔、評價、激勵制度,實行量化管理和柔性管理想結合,強化以人為本的管理觀念,堅持唯才是舉的用人導向,搭建人才成長的發展平台,形成活力持久的激勵機制,促進團隊合作精神。
三章產品服務
公司是以網路為依託提供專業細致的游戲代練工作室信息查詢服務,信息收集主要通過以下途徑:市場部成立專門的市場信息採集項目組,負責收集各代練工作室的信息,如工作室信譽,服務范圍,具體收費標准等。
服務內容
目標市場定位為兩個大的市場方向,一是對查詢服務的信息提供者——游戲代練工作室;二是廣大需要進行信息查詢服務的消費群體。針對這兩個目標市場,我們將提供以下具體服務。
針對游戲代練工作室的服務。
黃鏈接
這是本公司獲得以及發布游戲代練工作室信息的平台,也是公司最基本的盈利項目。該項服務是游戲代練工作室具體信息反映在我們的公司網站的相關板塊中,同時公司將通過競價排名方式排列同類會所的先後順序。
廣告服務
本公司為各個游戲代練工作室所提供廣告宣傳,為工作室進行宣傳服務。公司將根據對方提供的廣告費用的高低決定廣告投放的位置,廣告內容健康、不觸犯法律。
推薦服務
本公司將在網站首、網路查詢系統顯要位置等訪問量高的地帶設置推薦信息,幫助工作室做好宣傳。
四章市場分析
國內網遊行業
中國的互聯網是一個非常輕的行業,他才發展了,這樣的一個行業是剛剛開始的。中國的互聯網的下一個十,我們都覺得應該比上一個十更好。同時中國互聯網也成為全球最大的市場。
中國的網路游戲產業實際銷售收入達.億元,中國網路游戲用戶數達到萬,比XX增加了.%。預計中國網路游戲用戶數將達到萬,到的'復合增長率為.%。數據顯示,在此期間網路游戲用戶增長速度將高於互聯網用戶增長速度。
游戲代練行業都知道經濟危機可怕,並且蔓延全球,但是對於網路游戲的虛擬交易這個黃金產業,確實沒有分毫的影響,反而顯得更加燦爛輝煌,據不完全統計,全世界的虛擬物品交易目前已經超過了百億美元,這么大的市場交易,沒有職業玩家和工作室的進入幾乎是不可能的。
正是這些職業的玩家和工作室才促進了網游虛擬交易的迅速發展和壯大,給自己本身和玩家以及運營商都帶來了方便,而另一方面,他們卻又在政策、運營商、三方平台和玩家之間遊走生存。
目前國內游戲工作室的規模已經慢慢成熟壯大,以打幣為主,附加代練。一般情況下,大部分中小工作室以打幣盈利,成熟、穩定、信譽好的大型工作室能接到比較大的代練的單子。那工作室構建網游交易黃金塔的密碼到底是什麼呢?,
網路公司企劃方案
密碼其一,選擇有交易前景的游戲,考慮游戲本身內容及代理運營商;密碼其二,考慮銷售環境,也就是渠道,三方交易平台,如淘寶,叮當豬,之類。
對於大部分的中小工作室來說,跟風是目前的主要狀況,看哪個游戲賺錢了就一擁而上,自然造成了供求失衡,游戲幣價值下降,進而導致利潤降低乃至賠本,只好轉向另外一個游戲,長期以往會導致整個工作室的生存能力和發展大大降低。
五章營銷策略
盈利模式
一黃鏈接
本業務針對各工作室的商家。通過為目標客戶提供工作室黃鏈接來實現公司最基本的盈利。我們通過競價排名方式為加入公司網路搜索的工作室提供信息介紹和排名對比等服務。
由於這一業務採取價高者得的策略,所以很難有一個具體定價,初步估價為每個黃鏈接月費不低於XX元。預計初期加入商家有家,預計月收入為萬元,經營一段時間後會有大幅增長。(初步估計)
二「推薦」業務
本業務針對各游戲代練工作室。本公司將在網站首、網路查詢系統顯要位置等訪問量高的地帶設置推薦信息,推薦信息的內容基本由商家自定義,但需經本公司審核後方可發布。該業務以月為周期,本公司將按月向商家收取推薦費用,具體費用價格雙方面議。每月結束後,商家可
選擇是否繼續該業務。
該項業務按照其宣傳所在位置,按月收取不低於的使用價格,預計可用的推薦位置有處,月收益約為萬元。(初步估計)
三廣告業務
本業務針對各游戲代練工作室及其他需要本公司提供廣告宣傳的企業、團體或個人。本公司將根據對方提供的廣告費用的高低決定廣告投放的位置,但前提是產品或服務的內容健康、不觸犯法律。廣告內容可由商家提供,也可以由本公司專員製作(廣告製作費用另計)。該業務以三個月為一周期,具體費用雙方面議。一周期結束後,商家可選擇是否繼續該業務。
每個廣告鏈接點按照其不同的位置收取每月-元的費用,預計廣告鏈接點有處,收入約為萬元。
六章財務計劃(另附)
七章風險分析及對策(另附)
八章網站規劃
摘要:
在日益月薪的網路時代,我們要做的首先是一個安全可靠的網站,其中網路安全是一個最主要的方面,我所規劃的網站是用jsp開發,其主要分為struts、hibernate、spring組成。
本項目主要採用mvc設計模式。
struts:主要是結構的匡架,又它的存在,可以任意調節面與業務層之間的交互。
hibernate:hibernate主要完成功能是與資料庫之間進行持久化的操作。
spring:spring完成的功能主要是把struts和hibernate結合管理起來,組成完美的一套程序。
網站功能
本網站服務業務主要是:帶練商與客戶端之間的交易平台,主要完成的功能是,幫助帶練游戲工作室完成推廣。
.網站主要求美觀大方,公開欄目信息,廣告地域大小,聯系我們。
.帶練游戲工作室主,工作室的環境照片、地址、聯系方式、帶練游戲、公開欄目。
.整合公司資源,確定網站功能。根據公司的需要和計劃,確定網站的功能:產品宣傳型、網上營銷型、客戶服務型、電子商務型等。
.根據網站功能,確定網站應達到的目的作用。
.企業內部網(intranet)的建設情況和網站的可擴展性。
網站技術解決方案
根據網站的功能確定網站技術解決方案。,
網路公司企劃方案
、採用自建伺服器,還是租用虛擬主機。
、選擇操作系統,用unix、linux還是windowXX/nt。分析投入成本、功能、開發、穩定性和安全性等。
、採用系統性的解決方案(如ibm、hp)等公司提供的企業上網方案、電子商務解決方案?還是自己開發。
、網站安全性措施,防黑、防病毒方案。
、相關程序開發。如網程序asp、jsp、cgi、資料庫程序等。
網站內容規劃
、根據網站的目的和功能規劃網站內容,一般企業網站應包括:公司簡介、產品介紹、服務內容、價格信息、聯系方式、網上定單等基本內容。
、電子商務類網站要提供會員注冊、詳細的商品服務信息、信息搜索查詢、定單確認、付款、個人信息保密措施、相關幫助等。
、如果網站欄目比較多,則考慮採用網站編程專人負責相關內容。注意:網站內容是網站吸引瀏覽者最重要的因素,無內容或不實用的信息不會吸引匆匆瀏覽的訪客。可事先對人們希望閱讀的信息進行調查,並在網站發布後調查人們對網站內容的滿意度,以及時調整網站內容。
網設計
、網設計美術設計要求,網美術設計一般要與企業整體形象一致,要符合ci規范。要注意網色彩、圖片的應用及版面規劃,保持網的整體一致性。
、在新技術的採用上要考慮主要目標訪問群體的分布地域、齡階層、網路速度、閱讀習慣等。
、制定網改版計劃,如半到一時間進行較大規模改版等。
jsp開發網站
資料庫:sqlservletXX。
軟體平台:eclipse,dreamweaver.
伺服器:tomcat.
項目描述:
項目基於jee平台,b/s模式開發。採用struts、hibernate、spring、ajax、xml等技術,同時系統採用層架構設計:web層、控制轉發層、dto層、服務層、層、持久化層和資料庫層。
.系統大量採用抽象工廠模式、裝飾者模式、代理模式、門面模式等設計模式,並把spring的aop思想合理的使用在日誌處理和系統異常處理,使用domj進行xml解析,使用logj實現日誌管理。
.web層使用struts框架,配合使用jstl元素,使用ajax技術實現無刷新提交。
.控制轉發層擴展struts框架的action設計理念,同時使用spring來管理所有的action,使用spring的核心技術ioc可以很好的控制action的生命周期以及各種服務的注入關系。
.dto層設計中dto、vo、pojo的相互拷貝通過beanutils包來實現,解決數據傳輸過程中各層之間數據耦合緊密的問題,從而能更大程度的實現編程思想中各模塊或層之間鬆散耦合的目標。
.服務層沿用代理設計模式來實現,系統的服務層以下隨時可以更換,甚至可以考慮用ejb來做業務邏輯實現,同時通過spring的託管機制可以和層無縫耦合起來。
.層使用抽象工廠模式和外觀模式,同時使用spring提供的hibernate模板和hibernateapi訪問持久層,這樣可以進一步解耦,在系統查詢模塊處大量使用正則表達式進行查詢操作。
.持久層使用輕量級框架技術hibernate來實現orm處理,同時使用spring容器來管理持久層,通過spring提供的hibernatetemplate和hiberanteapi可以很好的解決代碼的重復冗餘問題。
.ajax在現在社會用的廣泛。在java的程序中有dwr的動態及時更新數據新聞發布系統:
通過jsp、servlet、javabean來完成的新聞發布系統,其中用到了mvc三層結構設計理念,數據訪問層,業務層,bean層,界面層,完美的結合了jsp執行動作跳轉中控servlet之間的關系影射。通過javabean來復值取值,用到以下技術。
資料庫設計
需求分析階段:分析客戶的業務和數據處理需求,按照三範式;
概要設計階段:設計資料庫的e-r模型圖,確認需求信息的正確和完整;
.詳細設計階段:將e-r圖轉換為多張表,進行邏輯設計,並應用資料庫設計的三大範式進行審核;
.代碼編寫階段:選擇具體資料庫進行物理實現,並編寫代碼實現前端應用;
.軟體測試階段:……
.安裝部署:……
九章法律依據(另附)
十章附錄,
❺ 一個完整的新聞發布系統代碼
環境 Tomcat + J SE + PostgreSQL
我將分幾個步驟完成對一個新聞發布系統的構建 來理解JSP的一些基本使用方法!
首先我將先介紹這個新聞發布系統的基本結構
index jsp 管理員登陸界面 check jsp 驗證管理員身份 main jsp 管理員添加新聞的頁面 pub jsp 發布信息的頁面 display 顯示所有的新聞
而後台的程序主要有
DB java 資料庫連接 MD java MD 演算法 PubBean java 發布 CheckBean java 核實登陸身份
即當你從index > main > display 走一趟你基本就可以完成一個新聞發布系統的基本功能了!
我並非把新聞的標題和內容都寫入資料庫 因為那樣太耗費資料庫系統的資源 而且在訪問的時候總要讀取數
據庫 很費勁 我把新聞寫入了一個單獨的HTM文件 之後把標題及HTM文件的名字寫入的資料庫!
而這個HTM文件的名字怎麼隨機生成呢?我選擇了MD 演算法 因為每個新聞的標題都不會相同 所以保證了唯一
性!
下面我先把這個系統的基本框架勾勒出來 說的大一點 這似乎就是這個「系統」的「內核」啦!:)
================資料庫部分==================
CREATE TABLE administrator ( admin char( ) "password" char( ) ) WITHOUT OIDS; ALTER TABLE administrator OWNER TO admin;
CREATE TABLE news ( title char( ) page char( ) ) WITHOUT OIDS; ALTER TABLE news OWNER TO admin;
================程序部分==================
package login;
import java sql *;
public class DB {
private Connection conn; private Statement stmt; private ResultSet rs; public DB() { try { Class forName(" postgresql Driver"); conn = DriverManager getConnection
("jdbc:postgresql://localhost: /news?user=admin&&password="); stmt = conn createStatement(); } catch(Exception e) { System out println(e); } } public void update(String sql) { try { stmt executeUpdate(sql); } catch(Exception e) { System out println(e); } } public ResultSet quarry(String sql) { try { rs = stmt executeQuery(sql); } catch(Exception e) { System out println(e); } return rs; } }
package login;
import java sql *; import java io *;
public class PubBean { private String title context; private DB db; private MD md ; public PubBean() { db = new DB(); md = new MD (); } public void setTitle(String title){ this title = title; } public void setContext(String context) { this context = context; }
public void pubIt() { try { title = new String(title getBytes(" _ ") "gb "); context = new String(context getBytes(" _ ") "gb "); String titleMD = md getkeyBeanofStr(title); db update("insert into news values( "+title+" "+titleMD +" )"); String file = "news\ice"+titleMD +" "; PrintWriter pw = new PrintWriter(new FileOutputStream(file)); pw println("<title>"+title+"</title>"); pw println(context); pw close(); } catch(Exception e){ System out println(e); } } }
package login;
import java sql *;
public class CheckBean { private String message="" admin password; private DB db; public CheckBean() { db = new DB(); } public void setAdmin(String admin){ this admin = admin; } public void setPassword(String password) { this password = password; } public String checkIt() { try { ResultSet rs = db quarry("select * from administrator where
admin= "+this admin+" "); while(rs next()){ String pws = rs getString("password") trim(); if(pws equals(this password)){ message = "密碼正確!"; } else message = "密碼錯誤!"; return message; } message = "用戶不存在!"; } catch(Exception e) { System out println(e); } return message; } }
================頁面部分==================
index jsp:
<%@ page contentType="text/;charset=gb "%> <><head><title>登陸系統</title></head> <body> <form name=login action="check jsp" method="post"> 用戶 <input type=text name=admin><br> 密碼 <input type=password name=password><br> <input type=submit value="登陸"><br> </form> </body> </> <% String error=request getParameter("error"); error=new String(error getBytes(" _ ") "gb "); if(error==null){} else{ %> <%=error%> <% } %>
check jsp
<%@ page contentType="text/;charset=gb "%> <%@ page import="login CheckBean"%> <% String admin = request getParameter("admin"); String password = request getParameter("password"); %> <jsp:useBean id="checkBean" class="login CheckBean"/> <jsp:setProperty name=checkBean property="admin" value="<%= admin trim() %>"/> <jsp:setProperty name=checkBean property="password" value="<%= password trim() %>"/> <% String result = checkBean checkIt(); if(result equals("密碼正確!")){ session setAttribute("admin" admin); response sendRedirect("main jsp"); } else { %> <jsp:forward page="index jsp"> <jsp:param name=error value="<%=result%>"/> </jsp:forward> <% } %>
main jsp
<%@ page contentType="text/;charset=gb "%> <% String admin =(String)(session getAttribute("admin")); if(admin==null){ response sendRedirect("index jsp"); } else{ %> <><head><title>新聞發布</title></head> <body> <form name=pub action="pub jsp" method="post"> 題目 <input type=text name=title><br> 內容 <textarea cols=" " rows=" " name=context></textarea><br> <input type=submit value="提交"><br> </form> </body> </> <%}%>
pub jsp
<%@ page contentType="text/;charset=gb "%> <% String admin = (String)(session getAttribute("admin")); String title = request getParameter("title"); String context = request getParameter("context"); if(admin == null){ response sendRedirect("index jsp"); } else{ %> <jsp:useBean id="pubBean" class="login PubBean"/> <jsp:setProperty name=pubBean property="title" value="<%= title trim() %>"/> <jsp:setProperty name=pubBean property="context" value="<%= context %>"/> <% pubBean pubIt(); response sendRedirect("display jsp"); } %>
display jsp
<%@ page contentType="text/;charset=gb "%> <%@ page import="java sql *"%> <% Class forName("sun jdbc odbc JdbcOdbcDriver"); Connection conn=DriverManager getConnection("jdbc:odbc:PostgreSQL" "" ""); Statement stmt=conn createStatement(); %> <><head><title>新聞</title></head> <body> <% ResultSet rs=stmt executeQuery("SELECT * FROM news"); //顯示記錄 while(rs next()){ out print("<a href=news/ice"+rs getString( )+" target=_blank>"+rs getString
( )+"</a>"); out println("<br>"); }%> </body> </>
好了 基本的東西都實現了 希望現在已經可以給你一個完整的面貌了 在後面的文章中 我再把程序一步步
的完善 增加一些新的功能!
import java lang reflect *;
public class MD { /* 下面這些S S 實際上是一個 * 的矩陣 在原始的C實現中是用#define 實現的 這里把它們實現成為static final是表示了只讀 切能在同一個進程空間內的多個 Instance間共享*/ static final int S = ; static final int S = ; static final int S = ; static final int S = ;
static final int S = ; static final int S = ; static final int S = ; static final int S = ;
static final int S = ; static final int S = ; static final int S = ; static final int S = ;
static final int S = ; static final int S = ; static final int S = ; static final int S = ;
static final byte[] PADDING = { }; /* 下面的三個成員是keyBean計算過程中用到的 個核心數據 在原始的C實現中 被定義到keyBean_CTX結構中
*/ private long[] state = new long[ ]; // state (ABCD) private long[] count = new long[ ]; // number of bits molo ^ (l *** first) private byte[] buffer = new byte[ ]; // input buffer
/* digestHexStr是keyBean的唯一一個公共成員 是最新一次計算結果的 進制ASCII表示 */ public String digestHexStr;
/* digest 是最新一次計算結果的 進制內部表示 表示 bit的keyBean值 */ private byte[] digest = new byte[ ];
/* getkeyBeanofStr是類keyBean最主要的公共方法 入口參數是你想要進行keyBean變換的字元串 返回的是變換完的結果 這個結果是從公共成員digestHexStr取得的. */ public String getkeyBeanofStr(String inbuf) { keyBeanInit(); keyBeanUpdate(inbuf getBytes() inbuf length()); keyBeanFinal(); digestHexStr = ""; for (int i = ; i < ; i++) { digestHexStr += byteHEX(digest[i]); } return digestHexStr;
} // 這是keyBean這個類的標准構造函數 JavaBean要求有一個public的並且沒有參數的構造函數 public MD () { keyBeanInit();
return; }
/* keyBeanInit是一個初始化函數 初始化核心變數 裝入標準的幻數 */ private void keyBeanInit() { count[ ] = L; count[ ] = L; ///* Load magic initialization constants
state[ ] = x L; state[ ] = xefcdab L; state[ ] = x badcfeL; state[ ] = x L;
return; } /* F G H I 是 個基本的keyBean函數 在原始的keyBean的C實現中 由於它們是 簡單的位運算 可能出於效率的考慮把它們實現成了宏 在java中 我們把它們 實現成了private方法 名字保持了原來C中的 */
private long F(long x long y long z) { return (x & y) | ((~x) & z);
} private long G(long x long y long z) { return (x & z) | (y & (~z));
} private long H(long x long y long z) { return x ^ y ^ z; }
private long I(long x long y long z) { return y ^ (x | (~z)); }
/* FF GG HH和II將調用F G H I進行近一步變換 FF GG HH and II transformations for rounds and Rotation is separate from addition to prevent reputation */
private long FF(long a long b long c long d long x long s long ac) { a += F (b c d) + x + ac; a = ((int) a << s) | ((int) a >>> ( s)); a += b; return a; }
private long GG(long a long b long c long d long x long s long ac) { a += G (b c d) + x + ac; a = ((int) a << s) | ((int) a >>> ( s)); a += b; return a; } private long HH(long a long b long c long d long x long s long ac) { a += H (b c d) + x + ac; a = ((int) a << s) | ((int) a >>> ( s)); a += b; return a; } private long II(long a long b long c long d long x long s long ac) { a += I (b c d) + x + ac; a = ((int) a << s) | ((int) a >>> ( s)); a += b; return a; } /* keyBeanUpdate是keyBean的主計算過程 inbuf是要變換的位元組串 inputlen是長度 這個 函數由getkeyBeanofStr調用 調用之前需要調用keyBeaninit 因此把它設計成private的 */ private void keyBeanUpdate(byte[] inbuf int inputLen) {
int i index partLen; byte[] block = new byte[ ]; index = (int)(count[ ] >>> ) & x F; // /* Update number of bits */ if ((count[ ] += (inputLen << )) < (inputLen << )) count[ ]++; count[ ] += (inputLen >>> );
partLen = index;
// Transform as many times as possible if (inputLen >= partLen) { keyBeanMemcpy(buffer inbuf index partLen); keyBeanTransform(buffer);
for (i = partLen; i + < inputLen; i += ) {
keyBeanMemcpy(block inbuf i ); keyBeanTransform (block); } index = ;
} else
i = ;
///* Buffer remaining input */ keyBeanMemcpy(buffer inbuf index i inputLen i);
}
/* keyBeanFinal整理和填寫輸出結果 */ private void keyBeanFinal () { byte[] bits = new byte[ ]; int index padLen;
///* Save number of bits */ Encode (bits count );
///* Pad out to mod index = (int)(count[ ] >>> ) & x f; padLen = (index < ) ? ( index) : ( index); keyBeanUpdate (PADDING padLen);
///* Append length (before padding) */ keyBeanUpdate(bits );
///* Store state in digest */ Encode (digest state );
}
/* keyBeanMemcpy是一個內部使用的byte數組的塊拷貝函數 從input的inpos開始把len長度的 位元組拷貝到output的outpos位置開始 */
private void keyBeanMemcpy (byte[] output byte[] input int outpos int inpos int len) { int i;
for (i = ; i < len; i++) output[outpos + i] = input[inpos + i]; }
/* keyBeanTransform是keyBean核心變換程序 有keyBeanUpdate調用 block是分塊的原始位元組 */ private void keyBeanTransform (byte block[]) { long a = state[ ] b = state[ ] c = state[ ] d = state[ ]; long[] x = new long[ ];
Decode (x block );
/* Round */ a = FF (a b c d x[ ] S xd aa L); /* */ d = FF (d a b c x[ ] S xe c b L); /* */ c = FF (c d a b x[ ] S x dbL); /* */ b = FF (b c d a x[ ] S xc bdceeeL); /* */ a = FF (a b c d x[ ] S xf c fafL); /* */ d = FF (d a b c x[ ] S x c aL); /* */ c = FF (c d a b x[ ] S xa L); /* */ b = FF (b c d a x[ ] S xfd L); /* */ a = FF (a b c d x[ ] S x d L); /* */ d = FF (d a b c x[ ] S x b f afL); /* */ c = FF (c d a b x[ ] S xffff bb L); /* */ b = FF (b c d a x[ ] S x cd beL); /* */ a = FF (a b c d x[ ] S x b L); /* */ d = FF (d a b c x[ ] S xfd L); /* */ c = FF (c d a b x[ ] S xa eL); /* */ b = FF (b c d a x[ ] S x b L); /* */
/* Round */ a = GG (a b c d x[ ] S xf e L); /* */ d = GG (d a b c x[ ] S xc b L); /* */ c = GG (c d a b x[ ] S x e a L); /* */ b = GG (b c d a x[ ] S xe b c aaL); /* */ a = GG (a b c d x[ ] S xd f dL); /* */ d = GG (d a b c x[ ] S x L); /* */ c = GG (c d a b x[ ] S xd a e L); /* */ b = GG (b c d a x[ ] S xe d fbc L); /* */ a = GG (a b c d x[ ] S x e cde L); /* */ d = GG (d a b c x[ ] S xc d L); /* */ c = GG (c d a b x[ ] S xf d d L); /* */ b = GG (b c d a x[ ] S x a edL); /* */ a = GG (a b c d x[ ] S xa e e L); /* */ d = GG (d a b c x[ ] S xfcefa f L); /* */ c = GG (c d a b x[ ] S x f d L); /* */ b = GG (b c d a x[ ] S x d a c aL); /* */
/* Round */ a = HH (a b c d x[ ] S xfffa L); /* */ d = HH (d a b c x[ ] S x f L); /* */ c = HH (c d a b x[ ] S x d d L); /* */ b = HH (b c d a x[ ] S xfde cL); /* */ a = HH (a b c d x[ ] S xa beea L); /* */ d = HH (d a b c x[ ] S x bdecfa L); /* */ c = HH (c d a b x[ ] S xf bb b L); /* */ b = HH (b c d a x[ ] S xbebfbc L); /* */ a = HH (a b c d x[ ] S x b ec L); /* */ d = HH (d a b c x[ ] S xeaa faL); /* */ c = HH (c d a b x[ ] S xd ef L); /* */ b = HH (b c d a x[ ] S x d L); /* */ a = HH (a b c d x[ ] S xd d d L); /* */ d = HH (d a b c x[ ] S xe db e L); /* */ c = HH (c d a b x[ ] S x fa cf L); /* */ b = HH (b c d a x[ ] S xc ac L); /* */
/* Round */ a = II (a b c d x[ ] S xf L); /* */ d = II (d a b c x[ ] S x aff L); /* */ c = II (c d a b x[ ] S xab a L); /* */ b = II (b c d a x[ ] S xfc a L); /* */ a = II (a b c d x[ ] S x b c L); /* */ d = II (d a b c x[ ] S x f ccc L); /* */ c = II (c d a b x[ ] S xffeff dL); /* */ b = II (b c d a x[ ] S x dd L); /* */ a = II (a b c d x[ ] S x fa e fL); /* */ d = II (d a b c x[ ] S xfe ce e L); /* */ c = II (c d a b x[ ] S xa L); /* */ b = II (b c d a x[ ] S x e a L); /* */ a = II (a b c d x[ ] S xf e L); /* */ d = II (d a b c x[ ] S xbd af L); /* */ c = II (c d a b x[ ] S x ad d bbL); /* */ b = II (b c d a x[ ] S xeb d L); /* */
state[ ] += a; state[ ] += b; state[ ] += c; state[ ] += d;
}
/*Encode把long數組按順序拆成byte數組 因為java的long類型是 bit的 只拆低 bit 以適應原始C實現的用途 */ private void Encode (byte[] output long[] input int len) { int i j;
for (i = j = ; j < len; i++ j += ) { output[j] = (byte)(input[i] & xffL); output[j + ] = (byte)((input[i] >>> ) & xffL); output[j + ] = (byte)((input[i] >>> ) & xffL); output[j + ] = (byte)((input[i] >>> ) & xffL); } }
/*Decode把byte數組按順序合成成long數組 因為java的long類型是 bit的 只合成低 bit 高 bit清零 以適應原始C實現的用途 */ private void Decode (long[] output byte[] input int len) { int i j;
for (i = j = ; j < len; i++ j += ) output[i] = b iu(input[j]) | (b iu(input[j + ]) << ) | (b iu(input[j + ]) << ) | (b iu(input[j + ]) << );
return; }
/* b iu是我寫的一個把byte按照不考慮正負號的原則的"升位"程序 因為java沒有unsigned運算 */ public static long b iu(byte b) { return b < ? b & x F + : b; }
/*byteHEX() 用來把一個byte類型的數轉換成十六進制的ASCII表示 因為java中的byte的toString無法實現這一點 我們又沒有C語言中的 sprintf(outbuf "% X" ib) */ public static String byteHEX(byte ib) { char[] Digit = { A B C D E F }; char [] ob = new char[ ]; ob[ ] = Digit[(ib >>> ) & X F]; ob[ ] = Digit[ib & X F]; String s = new String(ob); return s; } /* public static void main(String args[]) {
MD m = new MD (); System out println("我愛你 "+m getkeyBeanofStr("我愛你")); } */
lishixin/Article/program/Java/JSP/201311/20523
❻ java如何推送消息給前端
Java伺服器推送消息給前端主要方法: