一、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服务器推送消息给前端主要方法: