JavaWeb开发Servlet容器和Tomcat服务器详解.docx_第1页
JavaWeb开发Servlet容器和Tomcat服务器详解.docx_第2页
JavaWeb开发Servlet容器和Tomcat服务器详解.docx_第3页
JavaWeb开发Servlet容器和Tomcat服务器详解.docx_第4页
JavaWeb开发Servlet容器和Tomcat服务器详解.docx_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JavaWeb开发Servlet容器和Tomcat服务器详解首先,tomcat是一个servlet容器,又是一个独立运行的服务器,具有处理HTML页面的能力,Tomcat服务器 会加载和实例化Servlet对象; (Servlet是Java提供的用于开发Web服务器应用程序的一个组件,运行在服务器端,由Servlet容器所管理,用于生成动态的内容。 Servlet是平台独立的Java类,编写一个Servlet,实际上就是按照Servlet规范编写一个Java类。)1.加载: Servlet容器加载Servlet类并调用该类的无参构造函数进行Servlet实例化。2.初始化: 1)、Servlet容器准备ServletConfig对象,该对象可以从web.xml文件中获取Servlet配置信息。 2)、Servlet容器调用Servlet对象的init()方法(调用且仅调用一次),该方法接收ServletConfig对象,获取Servlet配置信息并进行初始化。 (一点补充说明:在javax.servlet包中,定义了ServletConfig接口。Servlet容器使用ServletConfig对象在Servlet初始化时向已经实例化的Servlet对象传递配置信息。 可以通过ServletConfig对象的getServletContext()方法来得到ServletContext对象。运行在Java虚拟机中的每一个Web应用程序都有一个与之相关的Servlet上下文。 Java Servlet API提供了一个ServletContext接口用来表示上下文。在这个接口中定义了一组方法,Servlet可以使用这些方法与它的Servlet容器进行通信, 例如:得到文件的MIME类型,转发请求,或者向日志文件中写入日志消息。)3、请求处理: Servlet容器调用Servlet的service()方法对请求进行处理。在service()方法中,Servlet实例通过ServletRequest对象得到客户端的相关信息和请求信息, 在对请求进行处理后,调用ServletResponse对象的方法设置响应信息。4、服务终止: 当容器检测到一个Servlet实例应该从服务中被移除的时候,容器就会调用实例的destroy()方法,以便让该实例可以释放它所使用的资源,保存数据到持久存储设备中。 当需要释放内存或者容器关闭时,容器就会调用Servlet实例的destroy()方法。Tomcat服务器详解:1. tomcat是一个servlet容器,又是一个独立运行的服务器,具有处理HTML页面的能力,但是它处理静态HTML文件的能力并不是太强, 所以一般都是把它当做JSP/Servlet引擎,通过适配器(Adapter)与其他Web服务器软件(如Apache)配合使用.此外Tomcat还可以与其他一些软件集成起来实现更多功能,例如:与Jboss集成起来开发EJB,与OpenJMS集成起来开发JMS应用(jms就我用过的只有:日志,广播),与Cocoon(apache的另一个项目)集成起来开发基于XML的应用。2. 在tomcat中使用SSL A。准备安全证书 1.在/bin目录下面找到keytool 2.打开DOS,使用如下命令创建安全证书 keytool -genkey -alias tomcat -keyalg RSA 参数说明:-genkey:生成密钥对 -alias:指定密钥对的别名,该别名是公开的,这里指定为tomcat -keyalg:指定加密算法,这里采用比较通用的算法:RSA B。配置SSL连接器 在tomcat的server.xml中提供了配置SSL连接器的代码,只要把Connetctor的注释去掉即可。 C。验证SSL配置的正确性 启动tomcat,在浏览器中输入http:/localhost:8443,弹出“安全警报”对话框,然后单击“查看证书”,可以看到证书的版本, 颁发者和有效期等相关信息。在“安全警报”对话框单击“是”,继续与tomcat通信,单击“否”,结束与tomcat的通信3. 在tomcat中开启SSI服务 1。把/conf/web.xml中关于SSI的servlet和servlet-mapping的注释去掉。 2。把/server/lib/servlets-ssi.renametojar文件的扩展名改为servlets-ssi.jar 3.编写一个shtml页面,验证tomcat是不是可以支持SSI tomcat与java web开发技术详解: 1。JavaEE核心组成 : 四个容器、四种组件 容器:Applet Container,Application Container, Web Container,EJB Container 组件:Applet,Application,JSP/Servlet,EJB 服务:HTTP,JDBC,JNDI,JSTL等 MVC设计模式: 模- Model 视图 - View 控制器- Controller Web容器 在动态Web中才存在Web容器本身是专门用来处理拼凑代码功能的Web容器可以连接数据库 动态Web的最大特点就是交互性 依靠表单 接受请求的方法: request.getParameter(“参数名称”),返回的是String类型的数据2.Tomcat主目录: bin 所有的可执行命令,启动和关闭服务器的命令也在这个文件夹中 conf服务器的配置文件夹,里面保存了各种配置信息 Lib Tomcat服务器所需要的各种库文件 logs保存服务器的系统日志 Webapps Web应用程序存放的目录,Web项目保存到此目录中即可发布热部署 Work 临时文件夹,生成所有的临时文件(*.java,*.class)备注:java applet 是运行在浏览器上的java小程序 而java application是指java应用程序,用java写的应用都叫java应用程序。Java Applet和Java Application在结构方面的主要区别表现在: (1)运行方式不同。Java Applet程序不能单独运行,它必须依附于一个用HTML语言编写的网页并嵌入其中,通过与Java兼容的浏览器来控制执行。 Java Application是完整的程序,可以独立运行,只要有支持Java的虚拟机,它就可以独立运行而不需要其他文件的支持。 (2)运行工具不同。运行Java Applet程序的解释器不是独立的软件,而是嵌在浏览器中作为浏览器软件的一部分。 Java Application程序被编译以后,用普通的Java 解释器就可以使其边解释边执行,而Java Applet必须通过网络浏览器或者Applet观察器才能执行。 (3)程序结构不同。每个Java Application程序必定含有一个并且只有一个main方法,程序执行时,首先寻找main方法,并以此为入口 点开始运行。 含有main方法的那个类,常被称为主类,也就是说,Java Application程序都含有一个主类。而Applet程序则没有含 main方法的主类,这也正是Applet程序不能独立运行的原因。 尽管Applet没有含main方法的主类,但Applet一定有一个 从 java.applet.Applet派生的类,它是由Java系统提供的。 (4)Java Applet程序可以直接利用浏览器或AppletViewer提供的图形用户界面,而Java Application程序则必须另外书写专用代码来营建自己的图形界面。 (5)受到的限制不同Java Application程序可以设计成能进行各种操作的程序,包括读写文件的操作,但是 Java Applet 对站 点的磁盘文件既不能进行读操作,也不能进行写 操作。 然而,由于 Applet的引入,使Web页面具有动态多媒体效果和可交互性能,这使由名为超文本、实为纯文本的HTML语言编写成的Web页面真正具有了超文本功能, 不但可以显示文本信息,而且还可以有各种图片效果和动态图形效果,从而使页面显得生动美丽;另外,Applet使Web页面增加了按钮等功能,从而增 加了交互性。WEB容器和EJB容器的区别1.WEB容器和EJB容器在原理上是大体相同的,更多的区别是被隔离的外界环境。WEB容器更多的是跟基于HTTP的请求打交道。而EJB容器不是。 它是更多的跟数据库、其它服务打交道。但他们都是把与外界的交互实现从而减轻应用程序的负担。 例如SERVLET不用关心HTTP的细节,直接引用环境变量 session,request,response就行、EJB不用关心数据库连接速度、各种事务控制,直接由容器来完成。JSP页面大约有下列三种跳转方式:1. response.sendRedirect();2. response.setHeader(Location,);3. jsp forward Action经过试验得到下面的一些规则:一. response.sendRedirect()1.此语句前不允许有out.flush(),如果有,会有异常:java.lang.IllegalStateException: Cant sendRedirect() after data has committed to the client.at com.caucho.server.connection.AbstractHttpResponse.2.3.sendRedirect(AbstractHttpResponse.java:558). 4.跳转后浏览器地址栏变化 5.如果要跳到不同主机下,跳转后,此语句后面的语句会继续执行,如同新开了线程,但是对response的操作已经无意义了; 6.如果要跳到相同主机下,此语句后面的语句执行完成后才会跳转; 二. response.setHeader(Location,)1.此语句前不允许有out.flush(),如果有,页面不会跳转。 2.跳转后浏览器地址栏变化 3.此语句后面的语句执行完成后才会跳转 三.jsp forward Action 1.此语句前不允许有out.flush(),如果有,会有异常:java.lang.IllegalStateException: forward() not allowed after buffer has committed.at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:134)at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:101)at com.caucho.jsp.PageContextImpl.forward(PageContextImpl.java:836). 2.跳转后浏览器地址栏不变,但是只能跳到当前主机下 3.此语句后面的语句执行完成后才会跳转 4.跳转后得路径变为当前路径,图片不是绝对路径将无法显示 JSP跳转页面详解在JSP中使用jsp forward Action来实现页面的跳转功能。语法:或value=parameterValue|/+这个action使您可以将request向前到另外一个页面。它只有一个属性,page。Page应有一个相对的URL组成。这可以是一个静态的值或者是能够在被请求的时候计算得到的值,就如下面两个例子一般:!supportEmptyParas现在以一个具体例子来说明:在test1.jsp中使用forward使其跳转到test2.jsp页面中。Test1.jsp!supportEmptyParas!supportEmptyParas!supportEmptyParastest2.jsp!supportEmptyParas!supportEmptyParas!supportEmptyParas运行test1.jsp,可在浏览器中看见:这是jsp2.jsp页面产生出的输出的输出信息。但是如果你在test1.jsp和test2.jsp这两个页面中有参数传递怎么办呢?用get方式吧,不但总的长度有限制,使用现在十分不方便,而且有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论