小汤学编程之JavaEE学习day02——Servlet使用步骤、生命周期、接收与返回数据、GET与POST、转发与重定向

在这里插入图片描述

一、Servlet使用步骤
二、Servlet生命周期
三、Servlet接收与返回数据
四、GET请求与POST请求的区别
五、转发与重定向


一、Servlet使用步骤

servlet是运行在服务器上的应用程序。
Servlet是单实例多线程的。

  • 创建web项目,在web.xml中配置Servlet信息。
  • 编写Servlet.java
...
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        ...// 该Servlet要执行的逻辑代码
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}
  • 运行项目
  • 浏览器地址:http://ip:端口号/项目名称/映射地址http://localhost:8080/test_war_exploded/index.jsp


二、Servlet生命周期

在这里插入图片描述

  • 加载跟实例化Servlet。

Servlet 通过调用 构造 方法进行实例化,构造方法必须为无参构造方法。默认是在第一次被访问的时候构造对象。

也可以在web.xml中通过
<load-on-startup>N</load-on-startup>
配置Servlet被创建的时机。
(N为一个整数表示优先级,>=0表示在web服务器启动的时候创建,<0表示第一次访问时创建)

  • Servlet 实例创建完毕后立马通过调用 init () 方法进行初始化。

如果初始化失败抛出ServletException,Servlet对象将会被垃圾回收器回收。init初始化操作只会执行一次。初始化时机紧跟Servlet创建。

  • Servlet 调用 service() 方法来处理客户端的请求。
  • Servlet 通过调用 destroy() 方法终止(结束)。
  • 最后Servlet 由 JVM 的垃圾回收器进行垃圾回收。


三、Servlet接收与返回数据

接收表单数据:request.getParameter("xxx");
返回数据:response.getWriter().write("xxx");

返回的数据可以通过回调函数的data参数取得。


四、GET请求与POST请求的区别

getpost
参数拼接在url,不安全post的参数封装到请求体,相对安全
传的只能是字符串类型除了传字符串还可以传非字符串类型比如文件
数据大小限制2kb,速度快理论上大小没有限制,速度慢


五、转发与重定向

转发:req.getRequestDispatcher("xxx").forward(req,res);

一次请求,返回200,地址栏无变化。

重定向:res.sendRedirect("xxx");

二次请求,第一返回302,第二次请求会使用第一次请求响应中的Location头信息地址进行访问。第二次请求返回200或者304,地址栏会改变。

抉择使用转发还是重定向的时候,一般由是否传值、传值的方式所决定。例如,若使用request传值,由于request只在一次请求中存活,故只能使用转发这种一次请求的方式。若使用session传值,由于session存活范围更大则可以使用重定向来跳转页面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值