Javaweb学习笔记---Servlet

时间:2022-10-05 13:08:59

Javaweb学习笔记—Servlet

  • Servlet概述
    • 接受请求数据
    • 处理请求
    • 完成响应
  • 如何写Servlet(三种方式)
    • 实现javax.servlet.Servlet接口
    • 继承javax.servlet.GenericServlet类(继承Servlet接口)
    • 继承javax.servlet.http.HttpServlet类(继承GenericServlet类)
  • Servlet特性
    • 单例,一个类只能有一个对象;但可以存在多个类!
    • 线程是不安全的,所以它的效率是高的!
  • javax.servlet.Servlet接口
    • 先创建一个webproject,再在src创建一个类Servlet1类,继承servlet接口
    • servlet类由我们写
    • servlet中的方法大多数不是我们来调用,是由服务器来调用
    • servlet的对象不由我们创建,是由服务器来创建
    • 代码:
/**
- 查看servlet接口中的方法
*/


import java.io.IOException;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class Servlet1 implements Servlet {
/*
* 生命周期方法
* 在Servelet被销毁之前调用,并且只会调用一次
* 一般在关闭服务器之前调用
*/

@Override
public void destroy() {
// TODO Auto-generated method stub

}

/*
* 可以用来获取Servlet的配置信息
*/

@Override
public ServletConfig getServletConfig() {
// TODO Auto-generated method stub
return null;
}

/*
* 可以用来获取Servlet信息
*/

@Override
public String getServletInfo() {
// TODO Auto-generated method stub
return null;
}

/*
* 生命周期方法
* 会在Servlet对象创建之后马上执行,并只执行一次(初始化)
*/

@Override
public void init(ServletConfig servletConfig) throws ServletException {
// TODO Auto-generated method stub

}

/*
* 生命周期方法
* 会被调用多次
* 每次处理请求都是再调用这个方法
*/

@Override
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub

}

}
  • 浏览器访问Servlet
    • 给servlet类指定一个servlet路径(将servlet与一个路径绑定在一起)
    • 浏览器访问绑定的路径
<!-- web.xml -->

<servlet>
<servlet-name>xxx</servlet-name><!-- 随便写 -->
<servlet-class>webDemo.servlet.Servlet1</servlet-class><!-- 不能随便写,写需要绑定地址的servlet类 -->
</servlet>

<servlet-mapping>
<servlet-name>xxx</servlet-name><!-- 与上面对应 -->
<url-pattern>/Servlet1</url-pattern><!-- 必须以斜线开头,有几个斜线以及最后名称无要求,如:/aaa/bbb/ccc/xxx -->
</servlet-mapping>