(17)Servlet

1 Web工程

1.1 将lib添加到依赖

在没用maven的情况下要添加lib,并设置为依赖

1.2 Web中的几个对象

2 Tomcat

http://localhost:8080/index.jsp

http:// 协议

localhost 地址 127.0.0.1代表本机

8080 端口 所有电脑中运行的进程都会占用一个端口 tomcat默认占用8080 MySQL 3306

关于Http协议 状态码 200成功  4**请求没成功

200 成功

400-资源请求失败 - 写法错误或者参数参数传递错误

403-访问受限 -权限问题

404-未发现资源 - 路径错误

500-服务内部错误 - Java代码错了

8080 3306 80(http默认端口)

查看端口--占用

cmd ->

netstat -nao

taskki71 /pid 28152 /f

传输:

结构:

2.1 tomcat功能 web服务器

功能1: web工程中http协议,数据传输也是http协议。Java不认识Http,所以需要tomcat启动程序并给当前程序暴露一个可访问的端口并且能够接收处理http请求带过来的数据和具体定位哪个请求的方法。

功能2: JSP页面是一个特殊东西。  JSP=JAVA(servlet)  当页面看

tomcat会将index.isp -> index_jsp.iava ->JVM-index_isp.class->JVM-->运行完成 ->HTML部分打印返回给浏览器

​​​​​​​2.2 配置Tomcat

3 Servlet的设计模式

​​​​​​​3.1 MVC设计模式

​​​​​​​3.2 连接数据库

4 会话

​​​​​​​4.1 什么是会话?

4.1.1Session

Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web页时,如果该用户还没有会话,则Web服务器将自动创建一个 Session对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在Session对象中。有关使用Session 对象的详细信息,请参阅“ASP应用程序”部分的“管理会话”。注意会话状态仅在支持cookie的浏览器中保留。

4.1.2 Cookie

Cookie,有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息 。所谓“cookie”数据是指某些网站为了辨别用户身份,储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。通俗来讲就是指缓存数据,包括用户名、密码、注册账户、手机号等公民个人信息。

1. session可以存储信息 - 存储在服务端(堆内存)

2. cookie也可以存储信息 - 客户端(浏览器本地)

​​​​​​​4.2 因为他们俩个都可以称为对话对象,什么时候用哪个?

如果是Java代码中使用的情况会选择session,如果是一些无关紧要的信息保存的时候选择cookie(读取比较麻烦)

​​​​​​​4.3 特性:

cookie(客户端会话):是一个浏览器存储的一个文件,默认文件存储的周期是一个会话(对于cookie而言,打开浏览器就是开启了一个会话,关闭就结束),可以设置生命周期

session(服务器会话):是一个servlet的对象,存储在服务器中的一个对象,比较特殊。默认情况也遵循cookie会话的特性。

​​​​​​​4.4 seesion会话原理?

当浏览器访问网页(JSP=JAVA=Servlet)的时候,首先经过了Java代码部分,这个时候无论是否请求后台都在通过Java代码都会创建一个session对象默认这个对象是周期就是默认的超时间(30min),同时为了体现出session会话的特性,Java部分会在创建完session之后将sessionId的值通过响应对象response添加cookie的形式添加到网页中(JSESSIONID),默认这个JSESSIONID的cookie遵循cookie默认一个会话的机制

 

5 Servlet 

5.1  Servlet的生命周期

ervlet 生命周期可被定义为从创建直到毁灭的整个过程。以下是 Servlet 遵循的过程:

  • Servlet 初始化后调用 init () 方法。
  • Servlet 调用 service() 方法来处理客户端的请求。
  • Servlet 销毁前调用 destroy() 方法。
  • 最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。

5.1.1 init() 方法

init 方法被设计成只调用一次。它在第一次创建 Servlet 时被调用,在后续每次用户请求时不再调用。因此,它是用于一次性初始化,就像 Applet 的 init 方法一样。

5.1.2 service() 方法

service() 方法是执行实际任务的主要方法。Servlet 容器(即 Web 服务器)调用 service() 方法来处理来自客户端(浏览器)的请求,并把格式化的响应写回给客户端。

每次服务器接收到一个 Servlet 请求时,服务器会产生一个新的线程并调用服务。service() 方法检查 HTTP 请求类型(GET、POST、PUT、DELETE 等),并在适当的时候调用 doGet、doPost、doPut,doDelete 等方法。

5.1.3 doGet() 方法

GET 请求来自于一个 URL 的正常请求,或者来自于一个未指定 METHOD 的 HTML 表单,它由 doGet() 方法处理。

GET 方法向页面请求发送已编码的用户信息。页面和已编码的信息中间用 ? 字符分隔,如下所示:

http://www.test.com/hello?key1=value1&key2=value2

5.1.4 doPost() 方法

POST 请求来自于一个特别指定了 METHOD 为 POST 的 HTML 表单,它由 doPost() 方法处理。

另一个向后台程序传递信息的比较可靠的方法是 POST 方法。POST 方法打包信息的方式与 GET 方法基本相同,但是 POST 方法不是把信息作为 URL 中 ? 字符后的文本字符串进行发送,而是把这些信息作为一个单独的消息。消息以标准输出的形式传到后台程序,您可以解析和使用这些标准输出。Servlet 使用 doPost() 方法处理这种类型的请求。

5.1.5 post和get区别

1、数据提交方式,get–提交的数据url可以看到,post看不到;
2、get一般用于提交少量数据,post用来提交大量数据,get最多提交2kb数据,post理论上没有限制。

3、get提交的数据在浏览器历史记录中,安全性不好;也就是说用post安全性更高。

5.1.6 destroy() 方法

destroy() 方法只会被调用一次,在 Servlet 生命周期结束时被调用。destroy() 方法可以让您的 Servlet 关闭数据库连接、停止后台线程、把 Cookie 列表或点击计数器写入到磁盘,并执行其他类似的清理活动。

5.2 Request 与response

5.2.1 etParameter()

​​​​​​​

5.2.2 setAttribute

5.2.3 getRequestDispatcher 与 sendRedirect

request.getRequestDispatcher

response.sendRedirect 网页重定向

5.2.4 invalidate

5.2.5 AddCookie

5.3 Cookie

5.3.1 setMaxAge

​​​​​​​5.4 过滤器

request.getRequestURI()

filterChain.doFilter(servletRequest,servletResponse)

​​​​​​​5.5 监听器

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值