怎么使java里面不再有tomcat_JavaTomcat(二)

XML文件是干什么的? 答:专门用来存放"有关系"的数据 深圳> 湛江> 广东> 桂林> 广西> 北京> 保定> 河北> 中国> ------------------------------------------------------------ bin     --> tomcat的启动与关闭文件 conf    --> tomcat的配置文件(最重要的一个是web.xml文件) lib     --> 支撑tomcat运行的jar包 logs    --> tomcat的日志文件 temp    --> tomcat的临时目录(tomcat自已用的,我们不用去管它) webapps --> 非常重要的一个目录,专门用来放web资源(也就是放网站) work    --> 专们用来放JSP翻译成Servlet后的*.java文件 ------------------------------------------------------------ 重点学习使用java来开发网站! 一个网站由许多网页组成,而网页又分为以下两种: 1. 静态网页(静态web资源) 2. 动态网页(动态web资源) tomcat帮我们管理网站 第一种情况、我们写的是静态页面的网站 [直接放在webapps目录下即可] 第二种情况、我们写的是动态页面的网站 [] ------------------------------------------------------------ 如何编写动态网页?使用Servlet技术 我们现在已经进入了javaweb javaee阶段的学习,不再是javase。 既然如此,我们使的API文档就不能再使用以前的了。 Servlet容器是什么意思? Servlet容器指的就是能够支持Servlet技术的服务器。 Tomcat非常好的支持了Servlet和JSP技术 Servlet的生命周期[Servlet写在服务器端的]: Servlet生命开始: Tomcat帮我们开始Servlet的生命,tomcat帮我new一个Servlet的实例出来,如 HttpServlet servlet = new HttpServlet(); Servlet生命重要时刻: 初始化一个Servlet [通过调用init()方法] Servlet生命重要时刻: 处理每一个用户发出的请求[通过调用service()方法]  public void service(...){ new Thread(new Runnable(){ public void run(){ servlet.service();//这里写这代码,只是说明每一个请求都对应着一个线程的,所以对于贡献资源,就要注意同步问题啦 } } } Servlet生命的结束:关闭tomcat服务器的时候,Servlet的生命就结束了 [通过调用destroy()方法] Servlet什么时候创建一个实例呢?(什么时候new?) 答:在客户端第一次发出请求时候.只会new一次,就是只存在一个servlet实例 Servlet在什么时候调用init方法? 答:在客户端第一次发出请求时候, 但在new之后. Servlet在什么时候调用service方法? 答: 每一个用户的请求都会对应一个service方法. 当某一个浏览器去访问Servlet的时候,tomcat内部会启动一个新的线程(也就是service方法)来处理用户的请求。 Servlet在什么时候销毁呢? 答:当tomcat关闭的时候。[注意:是在tomcat关闭前调用的] Servlet生命周期的详细过程: 当客户端的浏览器发送一个请求给服务器的容器时, 容器开始检查Servlet. 首先调用Servlet的构造方法实例化一个Servlet对象, 接着容器会创建一个ServletConfig的实例并把它作为参数传给init()方法, 这个ServletConfig包含了DD里的配置信息以及其它资源的引用, 当init()方法执行完毕之后, 这个Servlet对象才是一个真真的完整的Servlet. 接着容器才调用service()方法来处理客户的请求, service()方法会隐式的调用HttpServletRequest对象里的getMethod()方法来判断客户端的请求方式(如 Get, Post 等), 并根据请求方式来确定调用doGet(), doPost()方法等等. 在这个过程完成之后, 以后的当每一个Http请求发送过来时, Servlet只会为每一个请求启动一个线程并调用service()方法来进行处理, 并不会再次调用init()方法进行初始化. 最后, 当容器正常关闭时, 容器会在销毁之前自动调用destroy()方法来结束Servlet的生命 ------------------------------------------------------------ Tomcat和Servlet有什么关系? 答: Servlet是用来做动态网页的, 而Tomcat专门把Servlet做好的网站提供给别的电脑访问. 当然,Tomcat还有一个重要功能就是帮助管理Servlet. 用记事本写Servlet示例: 第一步 按要求建立web相关文件及文件夹 webapps --网站名(ILOVEYOU) ----WEB-INF(文件夹) --------classes (文件夹,专门用来放*.class文件的, 放写好的Servlet) --------lib (文件夹,专门用来放jar包的,这个文件夹可有可无) --------web.xml (文件, 专门用来配置Servlet相关的东西) 第二步 写Servlet 在classes文件下建包:com\itcast\servlet 然后建立MyServlet.java文件,如下: package com.itcast.servlet; import javax.servlet.http.*; import javax.servlet.*; import java.io.*; class MyServlet extends HttpServlet { protected void service(HttpServletRequest req,HttpServletResponse resp)                 throws ServletException, IOException { System.out.println("service()方法被调用!"); } } 为了能够编译此文件,需要引入Servlet的APIjar包,因为我们的jdk没有带servlet的jar包 classpath: 找到*.class文件或jar包 在cmd命令下set classpath表示查看当前的classpath设置情况 set classpath=%classpath%;tomcat的servlet里jar包的位置 这种在cmd命令下设置classpath的方式称为"临时环境变量设置", 等到cmd命令窗口关闭的时候就失效了。 等到把MyServlet.class文件放好在classes目录下之后,那么这个Servlet就已经交给tomcat管理了。接下来,还有一个问题要解决,什么问题呢? 如何访问我们写好的Servlet程序呢? 只能为这个Servlet程序配置一个路径(在网址上写的路径) 如何为Servlet程序配置一个路径? 答:通过tomcat提供的web.xml文件可以配置,办法如下: // 标签专门用来设置Servlet程序的名字和*.class文件的所在路径 // 是为你的MyServlet.class文件随便起一个名字 MyServlet  // 这是放置我们写好的MyServlet.class文件的具体路径 // 此路径在classes目录的基础之上设置 // 记住必须要带包,无包则报错 com.itcast.servlet.MyServlet // 标签专门用来配置浏览器上的访问路径 // 这个名字对应的就是上面的标签的,要一样! MyServlet // 这个就是配置浏览器上的访问路径 // 习惯上先打个/,这个/表示我们的网站名称 // 然后设置网站名称后跟着什么路径 /xxx 使用记事本写Servlet时,出现了以下错误: javax.servlet.ServletException: Error instantiating servlet class MyServlet java.lang.IllegalAccessException: Class org.apache.catalina.core.StandardWrapper can not access a member of class MyServlet with modifiers "" 原因是因为web.xml里的标签里的class文件没有设置包名 里的class文件必须要有包,不允许无包. 如何编译带包的*.java文件? 假设有个java文件在 E:\a\b\Test.java 编译办法: (1) 在E盘根目录下:javac a/b/Test.java (2) 在E:\a\b\目录下:javac Test.java 运行方式: (1) 在E盘根目录下:java Test [注意,不要去E盘根目录下执行java Test,会报异常NoClassDefFoundError] ------------------------------------------------------------ 以上这种使用记事本的方式来写Servlet有如下缺点: 1. 非常容易出错 2. 开发速度很慢 3. 配置很繁琐 我们以后不再使用记事本的方式来写Servlet,改用工具MyEclipse,使用MyEclipse来写Servlet程序将会非常的方便。 MyEclipse开发Servlet步骤: 1. 新建web Project,选择javaee 5.0 2. 建包com.itcast.servlet 3. 在src文件夹上右击new -> servlet 把doGet和doPost勾上 4. 把这个工程配置到tomcat里面去(这个过程称为“部署”) 细节:如何更改网站的名称? 右键工程名 --> Properties -> MyEclipse -> Web  [Web Context-root] //这个在我们修改了web工程的名称后,记得最好也修改web的访问路径,也就是网站的名称

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值