xml配置servlet
<!-- 映射和配置servlet -->
<servlet>
<servlet-name>helloservlet</servlet-name>
<!-- 定义servlet -->
<servlet-class>one.HelloServlet</servlet-class>
<!-- 配置servlet和对应的类绑定,并起一个名字 -->
<!-- 全类名 -->
<load-on-startup>1</load-on-startup>
<!-- oad-on-startup标签默认servlet的顺序 -->
</servlet>
<servlet-mapping>
<servlet-name>helloservlet</servlet-name>
<url-pattern>/hello</url-pattern>
<!-- 访问根目录下hello.jsp时会映射到helloservlet这个servlet -->
<!-- /代表这个web应用的根目录 -->
</servlet-mapping>
servlet 生命周期
以下都是由servlet容器负责调用
- 1.先调用构造方法,构造器(只有第一次请求servlet时才调用一次,说明servlet是单实例的)
- 2.init方法(构造方方法和init方法只调用一次,以后再请求只调用service方法)
- 3.service方法(每次请求都会调用service方法,实际用于响应请求)
- 4.destory方法:只被调用一次,当前servlet所在的web应用被卸载前调用,释放当前servlet所占用的资源
ServletConfig
- 方法
getinitParameter(String name)能获取制定参数名的初始化的参数
getinitParameterNames ()获取参数名组成的Enumeration对象
ServletContext
代表当前web应用
1.可以由ServletConfig获取
2.可以获取当前应用的各个信息
在Servlet中获取请求信息
- 1.在Servlet的service()方法中用于应答请求,因为每次请求都会调用service方法
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException
ServletRequest :封装了请求信息,可以从中获取到任何的请求信息
ServletResponse :封装了响应信息,若想给用户什么响应,均可使用该接口的方法实现。 - 2.ServletRequest方法
String getParameter(String name):
根据请求参数的名字返回参数值。
若请求参数有多个值,例如多选,则该方法只能获取第一个值。
Map getPerimeterMap():
根据请求参数的名字,返回参数对应的字符串数组
Enumeration getPerimeterNames():
返回参数名对应的Enumeration对象,类似于ServletConfig或ServletContext的getInitParameterNames()
String[] getPerimeterValues(String name) 返回请求参数的键值对:key:参数名,value:参数值,string数组类型 - 3.ServletResponse
getWrite(): 返回PrintWrite对象,到young对象的Print()方法,将Pring()中的参数直打印在客户的浏览器上。
PrintWrite out=request.getWrite();
out.println(“helloworld......”)
response.setContextType(“application/msworld”); 设置响应的相关信息,文本格式等
HttpServlet
1.首先,是一个servlet,针对http协议所定制
2.实际中,直接继承HttpServlet,并根据请求方式重写doXXX()方法接口
3.直接重写doXXX()方法