Servlet学习小结(上)

Servlet简介

**servlet是sun公司提供的一门用于开发动态web资源的技术
**servlet技术是基于 请求-响应 编程模型
**Sun公司在其API中提供了一个servlet接口,用户若想要开发一个动态web资源(开发一个Java程序向浏览器输出数据)需要完成以下两个步骤

a.编写一个类实现servlet接口

b.把开发好的JAVA类部署到web服务器中

serlvet作用:

1、接受浏览器发送过来的消息。
2、给浏览器返回消息。浏览器认识html。可以动态去输出html。

Request:请求。客户端向服务端发送的信息。
Response:响应。服务器向客户端放松的信息。
通常请求和响应是成对出现的。

浏览器请求—serlvet,serlvet会生产html。把html传送给浏览器(响应)。浏览器看到内容是html。

sun公司提供过的serlvet的api在javaEE的规范中。如果要使用servlet需要使用javaEE的api。(javeEE包) javaEE相关的包,(myeclipse自带。当新建一个web工程的时候,myeclipse会自动的把javaEE包导入工程中。) 注意:javaEE的api并不在jdk中。

编写serlvet的步骤:
1.实现serlvet接口(javax.servlet.Servlet)
2.重写serlvert接口中的service方法
3.在WebRoot/WEB-INF/web.xml中配置servlet的路径 。浏览器访问servlet的路径web.xml(新建web工程的时候,myeclipse自动创建出来的)

web.xml文件详解

Servlet学习小结(上)_第1张图片

url-pattern中的内容只是一个名字而已,随便写什么都可以!!!这个跟在浏览器中访问html文件是不一样的两个概念!!!!

浏览器访问servlet过程小结

Servlet学习小结(上)_第2张图片

url-pattern三种配置
1、完全路径匹配,以”/”开头 后面是具体的路径信息。
你输入什么内容。访问的时候,就需要输入什么内容,才可以找到对应的servlet
例如

<url-pattern>/hellourl-pattern>

在访问的时候 http://ip:端口/应用名/hello 才可以找到hello的servlet
2、目录匹配,以/*结尾
例如 /abc/* —这这个url-patten 对应的servlet
在访问的时候只有/abc/xx /abc/dd /abc/cc
http://ip:端口/abc/abx
http://ip:端口/abc/bdsf
/abc/ssss
/abc/fdsafd/asdf/asdf
3、扩展名匹配 *.扩展名
*.do
*.action
当访问的时候 输入a.do b.do
/ddd/asdf/a.do
访问的时候aa.do
/abc/a.do
在url进行匹配的时候,会寻找更具体的进行匹配
1完全路径》2目录匹配》3扩展名匹配

servlet的生命周期

init方法:当服务器创建一个serlvet的时候,会去调用init方法。 当我们第一次去访问一个servlet的时候,会去创建这个servlet对象。并且只会创建一次。
如果配置了load-on-startup 表示服务器启动的时候创建servlet。
service方法:客户端每一次请求,tomcat都会去调用servcie方法。处理用户的请求。并且给其响应。每一次请求都会调用servcie方法。
destroy 方法:当服务器销毁一个servlet的时候,会调用里面的destory方法。 当我们的web服务器,正常关闭的时候,会去调用destroy方法。否则不会调用destroy的方法。

**

在浏览器中,如何去访问一个html内容。

**
这个问题困扰了一个下午一直没看明白路径的书写,现在终于明白了!!!
首先哟啊明确的是我们项目部署的时候只会部署webRoot目录,所以说所有的路径都是相对于webroot目录的;
http://localhost:8080/day09首先根据这个地址定位到web项目,后面跟的才是我们需要访问的动态文件的路径,所以说路径都是相对于webroot的!!!
因为我们自己写的html文件都是写在webroot根目录下面的

小结
Servlet学习小结(上)_第3张图片

你可能感兴趣的:(JAVAWEB基础)