Servlet基础

首先,在写这个之前,要了解到,无框架javaweb在后端现实应用场景中,基本不会用到,所以我并不打算研究javaweb特别高深的技术,而是记录javaweb中各控件的原理,为之后使用框架打打基础。

1.创建第一个servlet

首先是创建一个j2ee项目,导入servlet-api.jar包。
在idea中new project,选择web application即可创建项目

在src创建一个继承了HttpServlet的Servlet,叫HelloServlet,代码如下

import java.io.IOException;
import java.util.Date;

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

public class HelloServlet extends HttpServlet{

public void doGet(HttpServletRequest request, HttpServletResponse response){

try {
response.getWriter().println("

Hello Servlet!

");
response.getWriter().println(new Date().toLocaleString());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

这就是一个实现了doGet方法的Servlet

然后在项目的web/WEB-INF目录下创建 web.xml,然后把这个servlet和/hello地址映射起来
如下所示





HelloServlet
HelloServlet



HelloServlet
/hello


一般 标签下的
标签下的 必须一样
一般人为写成一致的形式

在WEB-INF下创建classes目录,把项目的class文件输出由原来的 bin 设置到 web/WEB-INF/classes下

启动项目,就可以在项目对应的/hello路径下看到Servlet的效果了。

2.servlet能干什么

继承HTTPServlet的servlet,会继承三个方法,
doGet,doPost,service
doGet,doPost很好理解,就是Get方法和Post方法如何处理request,response
在执行doGet()或者doPost()之前,都会先执行service(),service方法是用来判断,到底该调用doGet()还是doPost()

servlet中的常用方法:
request.getParameter 获取request中的参数
response.getWriter 获取response中的writer,写入html信息。

request.getRequestDispatcher 请求转发
response.sendRedirect 重定向
关于请求转发和重定向的区别可以看博文
https://blog.csdn.net/h2503652646/article/details/83661347
请求转发是一个请求一次响应,而重定向是两次请求两次响应。

3.servlet生命周期

Servlet的生命周期由五部分组成 实例化,初始化,提供服务,销毁,被回收
实例化:当对应的servlet被调用的时候,该Servlet就会被实例化,Servlet是单实例的,只会构造一次,第二次调用时候不再构造
初始化:同实例化,也只会构造一次
上面两个可以通过在servlet中实现构造方法和init方法去观察对应结果
提供服务:那就是调用servlet中的service方法呗
销毁:关闭tomcat的时候就进行销毁
回收:垃圾回收gc

你可能感兴趣的:(Servlet基础)