servlet

一、servlet的概念

Servlet是一种独立与平台和协议的服务器端java应用程序,通过Servlet可以生成动态web页面,同时使用Servlet还可以在服务器端对客户的请求进行处理,控制程序的执行。

Servlet的主要作用就是交互式的浏览和更新数据,并生成动态的页面内容展示。

1. 服务器接收客户端发送的请求。

2. 服务器将请求信息发送至Servlet.

3. Servlet进过处理后,生成响应的内容。

4. Servlet将响应的内容返回客户端。

名称            说明                      所在包

servlet接口  JavaServlet的基础接口,定义了Servlet必须实现的方法   javax.servlet

GenericServlet  继承自servlet接口属于通用的不依赖于协议的servlet    javax.servlet

HttpServlet  继承自GenerticServic类在此继承上扩展了http协议的Servlet javax.servlet.http

HttpServletRequest  继承自servletRequest接口用于数据的读取    javax.servlet.http

HttpServletResponse 继承自servletResponse接口用于返回数据   javax.servlet.http

二、servlet的生命周期

Servlet容器:是用来装载Servlet对象的一种容器。是负责管理Servlet的一类组件。

1、 实例化---》Servlet容器创建Servlet的实例

2、 初始化---》该容器调用init()方法

  init()方法:初始化方法只会别调用一次,在创建servlet时候调用

3、 服务-----》如果请求Servlet,则容器调用Service()方法

  service()方法时执行任务的主要方法,每次服务器接收到一个servlet请求,都会启动一个线程并调用服务,service()方法会检查http请求类型,调用相应的doGet或doPost方法

4、 销毁-----》销毁实例之前调用destroy()方法。

  destroy()方法也只会被调用一次,在servlet生命周期结束时调用,会关闭数据库连接,停止线程等,destroy()方法执行后GC会回收servlet对象。

三、创建servlet

(1).创建servlet的三种方法

1.继承servlet接口(interface)

2.继承GenericServlet类(class)

3.继承httpServlet类(class)

(2).在web.xml中添加servlet的配置

<servlet>
	<servlet-name>myServlet</servlet-name>
	<servlet-calss>servlet.MyServlet</servlet-calss>
</servlet>
<servlet-mapping>
	<servlat-name>myServlat</servlat-name>
	<url-pattern>/myServlet</url-pattern>
<servlat-mapping>
<servlet>
  <servlet-name>servlet</servlet-name>
  <servlet-class>servlet.servlet</servlet>
  <init-param>    <!-- 初始化参数 -->
    <param-name>charSetContent</param-name>
    <param-value>utf-8</param-value>
  </init-param>
</servlet>
<servlet-mapping>
  <servlet-name>servlet<servlet-name>
  <url-pattern>utf-8</url-pattern>
</servlet-mapping>

(3).创建servlet类:

package demo.web.servlet;

import java.io.IOException;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MyServlet3 extends HttpServlet {

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		System.out.println("调用了doGet方法");
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		super.doPost(req, resp);
	}

	@Override
	protected void service(HttpServletRequest arg0, HttpServletResponse arg1)
			throws ServletException, IOException {
		super.service(arg0, arg1);
	}

	@Override
	public void destroy() {
		System.out.println("调用了销毁的方法");
	}

	@Override
	public void init(ServletConfig config) throws ServletException {
		System.out.println("init被初始化了");
		String initParam=config.getInitParameter("charSerContent");
		System.out.println(initParam);
	}
	

}

说明:<url-pattern>标签里面可以有三种设置方法:

    1./myservlet

    2./xx/*

    3.*.do

四、servlet的部署和运行:

1.servlet的运行比较简单,只要通过url就可以实现访问,servlet的访问名称必须与web.xml文件中设置的url的映射名一致。

2.在浏览器中输入:localhost:8080/项目名/url-pattern对应的类型 (如果是第一种输入/myservlet,第二种输入/xx/任意字符,第三种是任意字符.do),就会在控制太输出信息。

五、servletRequest对象和httpServletRequest对象

当用户请求时有servlet容器创建servletRequest对象,这个对象被容器作为service()方法之一传给servlet,servlet能够利用servletRequest获取客户端的数据请求数据。

1.servletRequest对象常用方法

常用方法                  说明

getAttribute(String name);        获取名字为name的值

setAttribute(String name,Object obj);   设置名字为name的值

getParameter(String name);        获取表单中传入的参数

2.HttpServletRequest对象常用方法

常用方法                   说明

String getContextPath();          获取上下文路径

Cookie[]  getCookies();            返回客户端发送的所有cookie对象

HttpSession getsession();          返回和此次请求相管理的session,没有则创建一个新的session

String getMethod();             返回此次请求service所调用的方法,doGet,或doPost方法

六、servletResponse接口和HttpServletResponse接口

1.servletResponse接口用来封装响应接口

常用方法                    说明

PrintWriter  getWriter();            返回PrintWriter对象,用于向客户端发送文本

String getCharacterEncoding();         获取编码类型

String setCharacterEncoding();         设置编码类型

void setContentType(String type);       设置发送到客户端的响应的内容类型

2.httpServletResponse接口常用方法

常用方法                    说明

void addCookie(Cookie cookie);        设置一个cookie到响应中,这个方法可多次调用设置多个cookie

void addHeader(String name,String value);   将一个名字为name的值为value的响应报头添加到响应中

void sendRedirect(String location);       重定向

void encodURL(string url);           使用sessionId对重定向的url进行编码,

 

posted @ 2016-07-01 22:34  夏中伟  阅读(353)  评论(0编辑  收藏  举报