Servlet概述
Servlet: 运行在服务端的Java小程序,是sun公司提供的一套规范,用来处理客户端请求、响应给浏览器的动态资源。
它是浏览器与服务器之间数据交互的桥梁。
作用: 用来处理从客户端发送过来的请求,并对该请求作出响应
职责:
1、获取请求参数
2、调用业务逻辑
3、分发转向
Servlet实例
Servlet规范规定,所有的servlet必须实现 javax.servlet.Servlet接口。
单实例,从用户访问开始创建,只创建一次
1、创建一个类,继承一个javax.servlet.http.HttpServlet类
2、配置web.xml
<servlet> <servlet-name>loginServlet</servlet-name> <servlet-class>com.it.web.servlet.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>loginServlet</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping>
3、部署
4、测试
注:页面的请求方式只有一种是post提交:有表单且表单的method="post"时才是post提交。其它情况都是get方式提交。
Servlet的生命周期
生命周期: 是指一个对象从创建到销毁的过程
servlet生命周期: 是指servlet从创建到销毁的过程
实例化--->初始化--->服务--->销毁
实例化: 用户第一次访问时
初始化: 用户第一次访问时 初始化方法init(ServletConfig config)只执行一次
服务: 用户每次访问时 service(..)服务方法执行
销毁: 应用程序(项目)卸载或者服务器关闭时 destory() 销毁方法(只执行一次)
url-pattern的配置
url-pattern配置方式共有三种:
1.完全路径匹配 :以 / 开始
例如: /demo1, /aaa/demo1, /aaa/bbb/demo1
2.目录匹配 :以 / 开始 需要以 * 结束.
例如: /* (所有) /aaa/* (aaa目录下的所有) /aaa/bbb/*
3.扩展名匹配 :不能以 / 开始。 以 * 开始的.
例如: *.do , *.action 、*.jsp 、*.jpg ***** 错误的写法 : /*.do
4.缺省路径 /
通常情况访问 html页面时,首先从当前web项目的web.xml文件寻找匹配路径,如果如果没有找到,再从tomcat默认的web.xml匹配,将使用缺省servlet
注:访问路径都是访问Servlet,要么自己写的,要么服务器默认的。
tomcat获得匹配路径时,优先级顺序:1 > 2 > 3 > 4
完全路径匹配 > 目录匹配 > 扩展名匹配 > 缺省路径
相对路径:都是需要找位置相对关系.不能以 / 开头的.
./ 当前路径 ../上一级目录
绝对路径:不需要找位置相对关系。要以 / 开始的.
(在服务端后台代码中以当前项目为基准;在页面中是以服务器8080为基准):
绝对路径中分为客户端路径和服务器端路径:
* 客户端路径:/后面一定要项目程名.(注:客户端的/代表8080后面的/)
* 服务器端路径:/后面不加项目名
ServletConfig:获得Servlet的配置信息
String getServletName(); ---获得Servlet在web.xml中配置的name的值.
String getInitParameter(String name); ---获得Servlet的初始化参数的. 根据配置文件中的key获得value
Enumeration getInitParameterNames(); ---获得所有Servlet的初始化参数的名称.
ServletContext getServletContext(); ---获取此应用对象(域对象)