servlet

1、servlet的概念

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

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

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

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

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

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

名称            说明                      所在包session

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

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

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

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

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

2、servlet的生命周期

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

一、 实例化---》Servlet容器建立Servlet的实例

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

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

三、 服务-----》若是请求Servlet,则容器调用Service()方法

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

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

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

3、建立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

4、servlet的部署和运行:

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

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

5、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方法

6、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进行编码,

相关文章
相关标签/搜索