[JAVA EE]创建Servlet——实现Servlet接口笔记1

创建Servlet的方式之一:实现servlet接口

servlet的生命周期:

1、实例化:创建servlet实例对象

2、初始化:调用init方法完成初始化工作

3、服务:调用service方法来处理用户请求

4、销毁:调用destroy方法来释放占用的内存资源

package com.mashang.web;

import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;

@WebServlet("/my")
public class MyServlet implements Servlet {
    //生命周期方法:当servler实例对象创建时,就会调用该方法来完成初始化工作,该方法只会被调用一次
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("MyServlet init");
    }

    @Override
    public ServletConfig getServletConfig() {
//        获取servlet配置
        return null;
    }
    //生命周期方法:调用service方法来处理用户请求,该方法被多次调用,用户请求就是调用该方法
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        //执行业务操作
        System.out.println("service运行中");
        //接收客户端向服务器发起的键值对
        System.out.println(servletRequest.getParameter("name"));
        System.out.println(servletRequest.getParameter("age"));
        //客户端发送请求后,向客户端返回"myServlet"响应
        servletResponse.getWriter().write("myServlet");

    }

    @Override
    public String getServletInfo() {
        //获取servlet信息
        return null;
    }
    //生命周期方法:当sevice实例化对象销毁前,就会调用该方法来释放占用的内存,而且也只会被调用一次
    @Override
    public void destroy() {
        //销毁
        System.out.println("MyServlet Destory");
    }
}

通过service方法处理用户的请求:

通过request(servletRequest)对象得到客户端的相关信息和请求信息(请求行、请求头、请求体);

通过response(servletResponse)对象的方法设置(响应状态码、响应头)

[JAVA EE]创建Servlet——实现Servlet接口笔记1_第1张图片

 [JAVA EE]创建Servlet——实现Servlet接口笔记1_第2张图片

[JAVA EE]创建Servlet——实现Servlet接口笔记1_第3张图片


一、requestd 请求对象:封装了用户提交到服务器端的数据,调用该对象的相关方法可以获取封装的信息。

request对象获取请的方法:

String getParameter(String name):返回name 指定参数的参数值;

String[ ] getParameterValue(String name):将name指定参数的所有参数值以数组的形式返回;

Enumeration getParameterNames():返回所有可用属性名的每局;

MapgetParameterMap():将所有的请求参数和参数值以key/value的形式保存。

解决post提交方式的中文乱码问题:request.setCharacterEncoding("UTF-8)

解决get提交方式的中文乱码问题:user = new String (user.getbytes("iso8859-1"),“utf-8”)

解决当一次请求结束,随着request对象的销毁,该作用域中的数据也会被销毁

request.setAttribute(name,value)

request.getAttribute(name)

重定向是客户端发出了两次请求,所以重定向后的页面无法读取到request域中所保存的数据。


二、response响应对象:用于将服务器端的数据发送到客户端,对客户端的请求作出响应。

response.setContentType("text/html;charset=utf-8"):通知浏览器以什么字符集显示服务器回送的数据。

响应数据:response.getWriter().write("服务端传回数据")

你可能感兴趣的:(java,ee,servlet,java-ee,java)