Servlet
Servlet 第一个例子
工程源码(Tomcat 需要手动设置下,见本节后续配置)
一切配置完,启动 Tomcat,在浏览器输入 http://127.0.0.1/j2ee/hello
,出现下面画面。
指定项目输出到classes目录
把项目的class文件输出由原来的 j2ee/bin 设置到 j2ee/web/WEB-INF/classes下,步骤:项目右键->properties->Java Build Path->Source->右下角的 Brower-> 指定位置是 j2ee/web/WEB-INF/classes。
为什么要有这一步? 在ecilpse中默认输出的class是在bin目录下,但是tomcat启动之后,在默认情况下,不会去bin目录找这些class文件,而是到WEB-INF/classes这个目录下去寻找。 所以通过这一步的配置,使得eclipse的class文件输出到WEB-INF/classes目录下,那么这样就和tomcat兼容了。
配置tomcat的server.xml 中的<context
如果配置 path = “/”,将和 webapps 下的 ROOT 项目冲突(可删除 ROOT)。
Servlet 获取参数
// 浏览器输入如下访问地址
http://127.0.0.1/j2ee/login
Servlet 返回响应到页面
在上一节的基础上,只需要做如下修改。
Servlet 中文问题
首先修改 login.html 的编码方式(UTF-8)和表单提交方式(post)。
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
转发与重定向
Servlet 生命周期和随项目启动而启动
当用户通过浏览器输入一个路径,这个路径对应的servlet被调用的时候,该Servlet就会调用构造方法
实例化,然后调用 init
方法初始化,再调用 service
方法做业务,项目卸载调用 destroy
方法销毁,最后由垃圾收集器回收。
怎么做到不用浏览器访问的情况下,Servlet 随 Tomcat 启动而初始化?
使用 Eclipse 创建 Dynamic Web Project
Eclipse 把 Java Project 变成 Dynamic Web Project
JSP
略。(用于页面渲染,避免 Servlet 一行一行地输出 HTML 进行渲染的难受)
MVC
Filter
略。(可对多个请求统一处理,面向切面编程)
Listener
略。(监听域对象生命周期及属性变化)
参考资料
[1] HOW2J.CN