zoukankan      html  css  js  c++  java
  • 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进行编码,

  • 相关阅读:
    python模块--time模块
    python模块--如何相互调用自己写的模块
    Animating Views Using Scenes and Transitions
    fragment 切换
    android textview 设置text 字体
    android intent 5.1
    android EditView ime
    animation of android (4)
    animation of android (3)
    animation of android (2)
  • 原文地址:https://www.cnblogs.com/ablejava/p/5630731.html
Copyright © 2011-2022 走看看