当初看J2EE只是照猫画虎,一知半解,并不懂其中原理,也没留下深刻印象,所以有必要重新浏览学习一遍。
Tomcat
- Tomcat是一个免费的web服务器,名称的来源是一种野外的猫科动物,不依赖人类独自生活。
- JDK9 不够稳定,特别是Tomcat7 无法在JDK9 中运行。
- 把test.html 复制到 D:\tomcat\webapps\ROOT 目录下,就可以通过 http://127.0.0.1:8080/test.html 访问了
- Tomcat本身是JAVA程序,必须要有JDK才可以执行,所以必须配置JAVA_HOME。
- Tomcat执行必须依赖CATALINA_HOME或者CATALINA_BASE这两个环境变量。 如果没有在环境变量里配置过,那么会自动采用bin目录的父目录作为CATALINA_HOME和CATALINA_BASE。 如果配置了,而所配置的地方又不是正确的TOMCAT目录,那么打开startup.bat后就会一闪而过。
- Context path=”/” docBase=”E:\project\j2ee\web” debug=”0” reloadable=”false” /
Servlet
- Servlet本身不能独立运行,需要在一个web应用中运行的,而一个web应用是部署在tomcat中的
- 开发Servlet所以需要用到 servlet-api.jar 这个包里的相关类。
- 创建 HelloServlet ``` public class HelloServlet extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response){ try { response.getWriter().println(“<h1>Hello Servlet!</h1>”); response.getWriter().println(new Date().toLocaleString()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
}
4. 首先在j2ee下创建目录web,接着再创建目录web/WEB-INF,然后在WEB-INF目录中创建 web.xml
<?xml version=”1.0” encoding=”UTF-8”?>
```
- 首先在WEB-INF下创建classes目录,把项目的class文件输出由原来的 j2ee/bin 设置到 j2ee/web/WEB-INF/classes下,在ecilpse中默认输出的class是在bin目录下,但是tomcat启动之后,在默认情况下,不会去bin目录找这些class文件,而是到WEB-INF/classes这个目录下去寻找。 所以通过这一步的配置,使得eclipse的class文件输出到WEB-INF/classes目录下,那么这样就和tomcat兼容了。
- 打开tomcat/conf/sever.xml,
表示需要通过 http://127.0.0.1/j2ee/hello才能访问。如果把 reloadable=”false” 改为reloadable=”true” 就表示有任何类发生的更新,web应用会自动重启 当web应用自动重启的时候,destroy()方法就会被调用 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
这句话的目的是告诉浏览器,等下发消息给服务器的时候,使用UTF-8编码- 一个Servlet的生命周期由 实例化,初始化,提供服务,销毁,被回收 几个步骤组成
- Tomcat把System.out.println放到起logs目录的catalina.out里了
- 页面跳转是开发一个web应用经常会发生的事情。 跳转的方式有两种,服务端跳转:
request.getRequestDispatcher("success.html").forward(request, response);
和客户端跳转response.sendRedirect("fail.html");
。