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("<h1>Hello Servlet!</h1>");
            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地址映射起来
如下所示

<?xml version="1.0" encoding="UTF-8"?>
<web-app>
 
    <servlet>
        <servlet-name>HelloServlet</servlet-name>
        <servlet-class>HelloServlet</servlet-class>
    </servlet>
 
    <servlet-mapping>
        <servlet-name>HelloServlet</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
 
</web-app>

一般<servlet> 标签下的 <servlet-name>
<servlet-mapping> 标签下的 <servlet-name> 必须一样
<servlet-name><servlet-class>一般人为写成一致的形式

在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

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值