servlet的生命周期、cookie和session

文章介绍了Servlet的基础知识,包括其在Maven项目中的应用示例,展示了如何编写一个简单的HelloServlet。同时,文章详细阐述了Servlet的生命周期,包括加载、实例化、初始化、服务及销毁过程。此外,文章对比分析了Cookie和Session的工作原理、安全性和存储差异,强调了它们在存储位置、数据安全、数据类型、有效期和存储限制方面的区别。
摘要由CSDN通过智能技术生成

一、servlet

1、基础概念

servlet 技术主要应用于动态页面开发。是一种独立于操作系统平台和网络传输协议的服务端的Java应用程序,它用来拓展服务器的功能,可以生成动态的 web 页面。

2、在maven 中用 servlet 写的 hello world

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import java.io.IOException;
@WebServlet("/hello")
    public class HelloServlet extends HttpServlet {

        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            resp.getWriter().write("Hello  world");
        }

//        @Override
//        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//            doPost(req, resp);
//        }
    }

在 pom.xml 中引入的 servlet 依赖:

<dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
      <scope>compile</scope>
    </dependency>

运行结果:(还要注意路径)

 PS:若 Tomcat 能运行 JSP 但运行不了 servlet,(可能配置问题或者路径问题

则按照此路径找到该文件:

打开后,按下面的修改即可:

<!-- <Context> -->
<Context xmlBlockExternal="false">

3、生命周期

servlet 生命周期:指servlet 容器创建 servlet 实例,响应客户请求后最后销毁的全过程。 

 描述:

(容器加载servlet类)当第一次有web客户请求servlet服务或当web服务启动;

(创建servlet实例对象)容器环境根据客户环境创建一个或多个servlet对象实例,并把这些实例加入到servlet实例池中;

(servlet初始化)容器环境调用servlet的初始化方法init()进行初始化,并向servlet传递参数;

(容器生成请求和响应对象)容器利用HttpServletRequest和HttpServletQesponse对象,封装从客户端收到的HTTP请求和由servlet生成的响应;

(调用service方法提供服务)容器调用HttpServlet . service()提供服务,并将请求和响应对象传递给该方法,再从请求对象读取HTTP请求数据,通过session对象访问状态信息,并用HttpServletQesponse对象生成HTTP响应数据;

(用destroy方法注销servlet)当web服务器和容器关闭时,会调用HttpServlet . destroy()方法关闭所有打开的资源,并进行一些关闭前处理。

二、cookie 和 session

1、工作流程

cookie:是客户端的机制。

服务器把每个用户的数据以cookie的形式(比如用户名、密码等)写给用户各自的浏览器,当用户使用浏览器再次访问服务器中的web资源时,就会带着各自的数据去,这样web资源处理的就是用户各自的数据了。

session:是服务器端的机制。

服务器 可以为每个用户浏览器创建一个session对象,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session对象中,当用户使用浏览器访问其他程序时,其他程序可以从用户的session中取出该用户的数据并为用户服务。

PS:可参考:http://t.csdn.cn/Ty0O0

2、区别

(1)存储位置:cookie存储在客户端;session存储在服务端。

(2)安全性:cookie以文明方式存储在客户端,安全性相对较弱,较容易遭到不法获取;session存在服务器内存中,安全性相对较强。

(3)存取方式:cookie只能保存ASCII;session可以保存任意数据类型。

(4)有效期:cookie可设置为长时间保存;session一般有效时间较短,客户端关闭或session超时都会失效。

(5)存储大小:cookie可存储数据最大为4K;session可存储数据远高于cookie。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值