《搭建myeclipsestrutswebloigc开发环境》由会员分享,可在线阅读,更多相关《搭建myeclipsestrutswebloigc开发环境(16页珍藏版)》请在金锄头文库上搜索。
1、1:MyEclipse: for Spring Version: 8.6.0 (默认JDK6.0: 安装目录: D:Program FilesGenuitecCommonbinarycom.sun.java.jdk.win32.x86_1.6.0.013)2:Weblogic :9.1.0.0(WebLogic Server 9.0 / 9.1 / 9.2 / 10 支持 JDK 5.0,J2EE1.4J2EE 1.4 使用的是 Servlet 2.4 规范)3: Oracle :9.2.0.4.04: Struts : 1.2.8 (Struts要求Servlet容器实现Servlet规范2
2、.2或更高版本JavaServer Pages (JSP)规范1.1或更高版,http:/struts.apache.org/1.2.9/userGuide/preface.html#servlets,在该官方说明中,涉及到servlet规范的提议参考The Servlet 2.2 and 2.3 Specifications,说明1.2.8 版本的struts的servlet的规格是2.2及以上2.3为止,ServletAPI2.3成为J2EE1.3的核心API)Struts1.2框架下开发的web应用部署到Weblogic9.2中 (其servlet规格也是2.4规范),那Struts1.
3、2的实现依赖的servlet规范是多少,怎么看查看weblogic和oracle的版本信息 查看weblogic的版本信息,可以在bealogs目录下的log.txt中查到版本信息,如2007-5-29 21:15:14 - install WebLogic Platform 8.1.1.0 at D:beaweblogic81 release 8.1.1.0 Added 查看oracle的版本信息有几个方法(1)用客户端连接到数据库,执行select * from v$instance 查看version项(2)select * from product_component_version(
4、3)或查询V$VERSION查看组件级信息0.0 MyEclipse中查看 j2ee基础库文件中的servlet 的 规格可以看出j2ee 1.4规范 的 servlet的规格是 2.4可以看出j2ee 1.4规范的 jsp的规格是2.0例子(对软件规范和规格的理解,规范同导致api函数不同,调用方式会不同):Java Servlet规范v2.2在本规范中,将多处参考如下Java API规范: Java2 Platform Enterprise Edition v1.2(J2EE) JavaServer Pages v1.1(JSP) JavaNaming and Direcotry Inte
5、rface(JNDI)Servlet API和Servlet应用的开发实现中,还参考和遵循了如下互联网规范: RFC 1945 Hypertext Transfer Protocol (HTTP/1.0) RFC 2045 MIME Part One:l Format of Internet message Bodies RFC 2046 MIME Part Two: Media Types RFC 2047 MIME Part Three: Message Header Extensions for non-ASCII text RFC 2048 MIME Part Four: Regist
6、ration Procedures RFC 2049 MIME Partl Five: Conformance Criteria and Examples RFC 2109 HTTP State Management Mechanism RFC 2145 Use and Interpretation of HTTP Version Numbers RFC 2324 Hypertext Coffee Pot Control Protocol (HTCPCP/1.0) RFC 2616l Hypertext Transfer Protocol (HTTP/1.1) RFC 2617 HTTP Au
7、thentication: Basic and Digest AuthenticationMyEclipse集成开发应用时,必须保证相关组件和模块的规格相互适应MyEclipse和Weblogic的基本的JDK的版本库必须一致,比如都是1.5或者1.6,小版本无影响比如 1.5004或1.5012都为1.5版本。Struts的版本中支持jsp和servlet规范 必须和引入的J2EE的版本一致(如jsp2.0 ,servlet 2.3)Struts一般是针对一定版本的jsp和servlet规范实现的,由此对应运行该Struts Web应用的 容器也要 支持该 jsp和servlet的版本规范(
8、一般高版本规范的api会兼容低版本,这样依赖低版本规范的应用,如果使用高版本的规范的api应该不会有问题,但是高版本的规范api会出现不支持低版本中的某些api接口(高版裁剪了,比低版范围缩小了),这样某个基础库升版后导致整体应该无法编译通过(或平台迁移出问题),依赖高版的应用,如果使用低版的api规范,出问题的概论会更大,低版一般都会缺少高版中的某些功能)Myeclipse基础设置(0.0-0.x)0.0:恢复Myeclipse布局恢复默认值操作(1)右键点击MyEclipse图标弹出菜单(2)菜单中选择resetJ2EE struts Servlet JSP B/S彼此之间是什么关系粗略的
9、说:B/SJ2EEServletJSPstrutsB/S指浏览器/服务器与c/s(客户端/服务器)相对应,就是用网页浏览器做客户端运行的程序。J2EE是一种B/S设计平台。Servlet、JSP是J2EE的两种技术,而JSP又是为简化Servlet开发而产生的技术,运行时需要服务器转为Servlet运行。struts利用了Servlet、JSP开发的一种设计框架,为了实现MVC。CGIASPJSPPHP CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。CGI可以用任何一种
10、语言编写,只要这种语言具有标准输入、输出和环境变量。对初学者来说,最好选用易于归档和能有效表示大量数据结构的语言,例如UNIX环境中: Perl (Practical Extraction and Report Language) Bourne Shell或者Tcl (Tool Command Language) PHP(Hypertext Preprocessor) 由于C语言有较强的平台无关性,所以也是编写CGI程序的首选。 Windows环境中: C和C+ 由于Internet上大部分服务器使用的是UNIX操作系统,且几乎任一UNIX操作系统中都有Bourne Shell,因而后面讲述的
11、例子中大部分是用Bourne Shell编写的。 最终Perl由于其跨操作系统、易于修改的特性成为了CGI的主流编写语言,以至于一般的“cgi程序”就是Perl程序。因此其余三种是实现的语言(或技术)0.0什么是servletServlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。 它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该We
12、b服务器必须包含支持Servlet的Java虚拟机。Servlet 的 api也有版本问题,1:Servlet非命令行启动的,运行于Web服务器内部的java服务端程序2:Servlet必须由Web服务器进行加载和管理3:管理Servlet的Web容器必须有支持Servlet的java虚拟机Java Servlet 与 Applet 的比较相似之处: * 它们不是独立的应用程序,没有main()方法。 * 它们不是由用户或程序员调用,而是由另外一个应用程序(容器)调用。 * 它们都有一个生存周期,包含init()和destroy()方法。 不同之处: * Applet具有很好的图形界面(AWT
13、),与浏览器一起,在客户端运行。 * Servlet 则没有图形界面,运行在服务器端。0.0Java Servlet与Web容器之间的关系 Java是一种动态加载和运行的语言。也就是说当应用程序持有一个类的地址(CLASSPATH)和名称(包名和类名)的情况下,可以在程序运行期间任何时候加载这个类,并创建和使用该类的对象。Servlet就是基于这个机制与Web容器融合在一起的。目前已知的所有支持Java Servlet的Web容器都是采用Java开发的。当Web容器接收到来自客户端的请求信息之后,会根据URL中的Web元件地址信息到Servlet队列中查找对应的Servlet对象,如果找到则直
14、接使用,如果没有找到则加载对应的类,并创建对象。也就是说,Servlet对象是在第一次被使用的时候才创建的,并且一旦创建就会被反复使用,不再创建新的对象。所有创建出的Servlet对象会在Web服务器停止运行的时候统一进行垃圾回收。为了解决客户端请求地址与Java Servlet之间对应关系问题,Web容器需要一个用来描述这种对应关系的文件,一般是web.xml文件。如果一个Web应用程序中存在很多个Servlet,那么web.xml会变得非常庞大。在Servlet 3.0规范推出之后,允许在Servlet代码中使用声明式语法来代替web.xml中的描述信息,这才让web.xml瘦身下来。下图
15、是这个过程的一个示意图。 在这个图中,我们仅仅是概要的,采用以比较容易理解的方式描述了Web容器与Servlet之间的关系,以及当接受到请求之后的处理流程。在实际的Web容器中,会比这要复杂很多。0.0获取servlet包(注意不同规范的不同版本)jdk是一般的通用类库,是其它程序的基础。 servlet是j2ee的一项具体内容,如果想找到这个包,可以去下载sun的j2ee sdk,里面有,也可以进行单独的下载。 到tomcat,webloic等web服务器中找。Java的web容器运行需要servlet包。该包有统一规范和不同的实现版本(规格)。0.0J2se sdk 和j2EE sdk的区别j2se是基础类库,j2ee是框架,企业做web应用时通常要考虑到很多问题,比如效能问题(POOL的应用),扩展性,分布式相关交易,重用,事务等等,为了使企业的架构更加完美,更加稳定,效率更高,很多大的开发团队都会想办法解决上述问题,SUN以及其他的分布式领导厂商意识到不久的将来每个开发团队都会重复创造出自己专用的解决方案,所以才衍生出J2EE架构,为了是使这些开发团队能够快速的实现上述解决方案,而把主要的精力放在业务流程上。j2se: Java 2 St