仓酷云

标题: JAVA网页编程之Java Servlet 和 JSP进门教程(3) [打印本页]

作者: 只想知道    时间: 2015-1-18 11:35
标题: JAVA网页编程之Java Servlet 和 JSP进门教程(3)
对于一个大型项目,如果用java来作,可能需要9个月,并且可能需要翻阅10本以上的书,但如果用ruby来作,3个月,3本书就足够了,而.net也不过3,4本书足以,这就是区别。js|servlet|教程|进门教程JavaServlet和JSP教程(3)

3Servlet

3.1Servlet基础布局

上面的代码显现了一个复杂Servlet的基础布局。该Servlet处置的是GET哀求,所谓的GET哀求,假如你不熟习HTTP,能够把它当作是当用户在扫瞄器地点栏输出URL、点击Web页面中的链接、提交没有指定METHOD的表单时扫瞄器所收回的哀求。Servlet也能够很便利地处置POST哀求。POST哀求是提交那些指定了METHOD=“POST”的表单时所收回的哀求,详细请拜见稍后几节的会商。

importjava.io.*;
importjavax.servlet.*;
importjavax.servlet.http.*;

publicclassSomeServletextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,
HttpServletResponseresponse)
throwsServletException,IOException{

//利用“request”读取和哀求有关的信息(好比Cookies)
//和表双数据

//利用“response”指定HTTP应对形态代码和应对头
//(好比指定内容范例,设置Cookie)

PrintWriterout=response.getWriter();
//利用"out"把应对内容发送到扫瞄器
}
}

假如某个类要成为Servlet,则它应当从HttpServlet承继,依据数据是经由过程GET仍是POST发送,掩盖doGet、doPost办法之一或全体。doGet和doPost办法都有两个参数,分离为HttpServletRequest范例和HttpServletResponse范例。HttpServletRequest供应会见有关哀求的信息的办法,比方表双数据、HTTP哀求优等等。HttpServletResponse除供应用于指定HTTP应对形态(200,404等)、应对头(Content-Type,Set-Cookie等)的办法以外,最主要的是它供应了一个用于向客户端发送数据的PrintWriter。关于复杂的Servlet来讲,它的年夜部合作作是经由过程println语句天生向客户端发送的页面。

注重doGet和doPost抛出两个非常,因而你必需在声明中包括它们。别的,你还必需导进java.io包(要用到PrintWriter等类)、javax.servlet包(要用到HttpServlet等类)和javax.servlet.http包(要用到HttpServletRequest类和HttpServletResponse类)。

最初,doGet和doPost这两个办法是由service办法挪用的,偶然你大概必要间接掩盖service办法,好比Servlet要处置GET和POST两种哀求时。

3.2输入纯文本的复杂Servlet

上面是一个输入纯文本的复杂Servlet。

3.2.1HelloWorld.java

packagehall;

importjava.io.*;
importjavax.servlet.*;
importjavax.servlet.http.*;

publicclassHelloWorldextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,
HttpServletResponseresponse)
throwsServletException,IOException{
PrintWriterout=response.getWriter();
out.println("HelloWorld");
}
}

3.2.2Servlet的编译和安装

分歧的Web服务器上安装Servlet的详细细节大概分歧,请参考Web服务器文档懂得更威望的申明?俣ㄊ褂?JavaWebServer(JWS)2.0,则Servlet应当安装到JWS安装目次的servlets子目次下。在本文中,为了不统一服务器上分歧用户的Servlet定名抵触,我们把一切Servlet都放进一?龆懒⒌陌?hall中;假如你和其别人共用一个服务器,并且该服务器没有“假造服务器”机制来制止这类定名抵触,那末最好也利用包。把Servlet放进了包hall以后,HelloWorld.java实践上是放在servlets目次的hall子目次下。

年夜多半其他服务器的设置办法也类似,除JWS以外,本文的Servlet和JSP示例已在BEAWebLogic和IBMWebSphere3.0下经由测试。WebSphere具有优异的假造服务器机制,因而,假如只是为了不定名抵触的话并不是必定要用包。

关于没有利用过包的初学者,上面我们先容编译包内里的类的两种办法。

一种办法是设置CLASSPATH,使其指向实践寄存Servlet的目次的上一级目次(Servlet主目次),然后在该目次中按一般的体例编译。比方,假如Servlet的主目次是C:JavaWebServerservlets,包的名字(即主目次下的子目次名字)是hall,在Windows下,编译历程以下:

DOS>setCLASSPATH=C:JavaWebServerservlets;%CLASSPATH%
DOS>cdC:JavaWebServerservletshall
DOS>javacYourServlet.java

第二种编译包内里的Servlet的办法是进进Servlet主目次,实行“javacdirectoryYourServlet.java”(Windows)大概“javacdirectory/YourServlet.java”(Unix)。比方,再次假定Servlet主目次是C:JavaWebServerservlets,包的名字是hall,在Windows中编译历程以下:

DOS>cdC:JavaWebServerservlets
DOS>javachallYourServlet.java

注重在Windows下,年夜多半JDK1.1版本的javac请求目次名字前面加反斜杠()。JDK1.2已更正这个成绩,但是因为很多Web服务器仍然利用JDK1.1,因而大批的Servlet开辟者仍然在利用JDK1.1。

最初,Javac另有一个初级选项用于撑持源代码和.class文件的分隔安排,即你能够用javac的“-d”选项把.class文件安装到Web服务器所请求的目次。

3.2.3运转Servlet

在JavaWebServer下,Servlet应当放到JWS安装目次的servlets子目次下,而挪用Servlet的URL是http://host/servlet/ServletName。注重子目次的名字是servlets(带“s”),而URL利用的是“servlet”。因为HelloWorldServlet放进包hall,因而挪用它的URL应当是http://host/servlet/hall.HelloWorld。在其他的服务器上,安装和挪用Servlet的办法大概略有分歧。

年夜多半Web服务器还同意界说Servlet的别号,因而Servlet也大概用http://host/any-path/any-file.html情势的URL挪用?咛迦绾谓?行设置完整依附于服务器范例,请参考服务器文档懂得细节??

Java的桌面程序开发在java程序员里通常叫swing开发,主要用的swing包里的类开发的,也就是通常说的c/s架构开发
作者: 山那边是海    时间: 2015-1-21 10:37
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
作者: 小女巫    时间: 2015-1-30 15:24
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者: 不帅    时间: 2015-2-4 22:49
是一种语言,用以产生「小应用程序(Applet(s))
作者: 谁可相欹    时间: 2015-2-6 07:56
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
作者: 分手快乐    时间: 2015-2-13 22:54
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
作者: 柔情似水    时间: 2015-3-4 02:21
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
作者: 小妖女    时间: 2015-3-11 15:14
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
作者: 仓酷云    时间: 2015-3-13 09:22
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
作者: 愤怒的大鸟    时间: 2015-3-20 18:47
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
作者: 透明    时间: 2015-3-29 18:05
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
作者: 飘飘悠悠    时间: 2015-4-6 19:40
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
作者: 因胸联盟    时间: 2015-4-13 02:35
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
作者: 金色的骷髅    时间: 2015-4-16 22:10
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
作者: 再见西城    时间: 2015-4-26 23:11
是一种将安全性(Security)列为第一优先考虑的语言
作者: 小魔女    时间: 2015-4-27 00:24
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
作者: 精灵巫婆    时间: 2015-4-30 22:39
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
作者: 老尸    时间: 2015-5-4 04:42
Java 编程语言的风格十分接近C、C++语言。
作者: 若相依    时间: 2015-6-23 21:49
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
作者: 深爱那片海    时间: 2015-6-27 03:55
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
作者: 飘灵儿    时间: 2015-6-30 22:32
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。




欢迎光临 仓酷云 (http://www.ckuyun.com/) Powered by Discuz! X3.2