学习目标:
- 第一个完整的servlet代码
- 准备开发环境(编辑器等等)
- 到底什么是HttpServlet
- 代码部署的相关问题
1. 准备开发环境
tomcat主要提供web容器的功能
版本:Tomcat 7.0Eclipse是开发IDE
版本:Eclipse IDE for java EE Developers
注意:官网有很多版本,我们要的是Java EE开发的JDK6是开发环境
版本:JDK6
注意:JDK,JRE,JVM区别
简单的讲,JVM是Java的操作系统,但是只有它是跑不了Java程序的,必须得有运行环境,那就是JRE,有了JRE环境Java程序就可以运行了,但是如果你想调用API搞个Java程序开发,不可以!你还需要开发环境,那就是JDK!
2. 第一个完整的servlet代码
servlet编写步骤:
- 编写代码
- 注册代码
- web.xml方式注册
- 标注方式注册(servlet3.0)
上面这是标注方式的简单形式,看看稍微复杂一点的方式:
@Webservlet(
name="hello",
urlPatterns={"/hello.view"},
loadOnStartup=1
)
其中loadOnStartup=1是说该servlet需要在容器启动时就进行实例化,而不是在第一次访问时才被实例化。
如果要采用web.xml的方式:
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>cc.openhome.HelloServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello.do</url-pattern>
</servlet-mapping>
请注意,url-partern中的地址必须以/开头
3. 到底什么是HttpServlet
第一个servlet已经看完了,我们采用了IDE,它帮助我们自动实现了很多功能,那这些功能细节是什么样的呢,我们来具体看看servlet的本质是什么?
- servlet是接口,旨在与各种协议进行数据交互
- GenericServlet实现了servlet接口,主要作用是系统需求(初始化配置,日志等)
- HttpServlet继承了GenericServlet类,真正落地来处理http协议请求与响应,所以有doXXX等函数
- ServletConfig是初始化参数,GenericServlet对它既是依赖,又是代理
- ServletRequest为什么要转换成HttpServletRequest,因为ServletRequest原来设计的时候不光是处理http协议的。
- ServletResponse同上
4. 代码部署的相关问题
都用eclipse调试代码,如果手动写代码,然后部署到Tomcat下,应该是什么样的目录结构?
下面我们就来谈谈如何发布项目:
- 直接源码发布
如果是tomcat做web容器,那就将上图中所说的FirstServlet整个目录,拷贝到tomcat的webapps目录下,然后启动tomcat,直接访问就可以了。 - WAR包发布
我们也可以把整个FristServlet打包成一个WAR包,然后拷贝到tomcat的webapps下,重启tomcat,然后直接浏览器访问就可以了。
jar cvf ../FristServlet 打包命令
- 部署描述文件web-fragment.xml