自学内容网 自学内容网

Servlet学习--从概述到Cookie

用户通过浏览器访问服务器并发送请求,服务器中有动态资源
动态资源:
逻辑性
依赖于服务器才能运行,tomcat执行它(需要遵守一定的规则,在java中就是接口,也就是servlet)
servlet是一个小的Java程序,运行在服务器上。
要做的事就是自定义一个类,实现servlet接口,复写其中的方法,被tomcat识别后运行。

在idea中创建新项目,复写方法,在web.xml配置servlet,如下:

helloServlet
com.example.mydemo.HelloServlet

//这一段就是web的名称

helloServlet
/hello

//这是web的访问路径。
servlet执行原理:
1.当服务器接收到客户端浏览器的请求后,会解析请求URL(统一资源定位器)路径,获取访问的servlet路径。
2.查找web.xml文件,是否有对应的标签内容。
3.如果有,就找到相应的的全类名
4.tomcat会将字节码文件加载进内存,并且创造其对象。
5.调用方法。
servlet的生命周期,在调用servlet接口时,会重写五个方法,每一个方法有不同的作用。
代码:
public class ServletDemo2 implements Servlet {
@Override
public void init(ServletConfig servletConfig) throws ServletException {
//初始化方法,在servlet被 创建时执行,只会执行一次。
}

@Override
public ServletConfig getServletConfig() {
    return null;

//获取ServletConfig对象
}

@Override
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {

//每次servlet被访问时执行,执行多次。
}

@Override
public String getServletInfo() {
    return "";

//获取servlet的一些信息。
}

@Override
public void destroy() {

//销毁方法,在服务器被销毁时被执行,只执行一次。
}
}
生命周期:
1.被创建。init方法
默认情况下,第一次被访问时,servlet被创建
可以配置执行servlet的创建时机,第一次被访问时创建,的值为负数
在服务器启动时被创建的值为0或是正数。
如果init方法只被执行一次,说明servlet在内存中只有一个对象
多个用户同时访问时,可能存在线程安全问题。
尽量不要在servlet中定义成员变量。即使定义了,也不要修改值。

2.提供服务
3.被销毁
只有当服务器被正常销毁时,才会执行destroy方法。destroy在服务器被销毁之前执行完毕。

1.web软件架构
C/S:客户端/服务器端
B/S:浏览器端/服务器端
2.资源分类
1.静态资源(可以直接被浏览器解析)
2.动态资源(被访问时,首先转换为静态资源)

网络通信三要素:
1.IP:电子设备在互联网中的唯一标识
2.端口:应用程序在计算机中的唯一标识(0-65536)
3.传输协议:规定数据传输的规则

urlpartten配置webservlet里是路径,可以访问到的路径

是换行键

HTTP协议:
超文本传输协议
定义了客户端和服务器端通信时,发送数据的格式。
特点:基于1.TCP/IP协议的高级协议
2.默认端口号:80
3.基于请求/响应模型的 一次请求对应一次响应
4.无状态的协议,每次请求之间相互独立,不能交互数据
HTTP规定的数据格式
请求消息数据格式:
1.请求行
请求方式 请求URL 请求协议/版本
GET /login.html HTTP/1.1

请求方式:HTTP中有7种请求方式,常用的有两种
1.GET:请求参数在请求行中,在URL后,请求的URL长度有限制
2.POST:请求参数在请求体中,请求的URL长度没有限制,安全系数较GET较高

2.请求头
通常形式就是(请求头:)这样的形式
常见的请求头:
1.HOST访问主机
2.USER-Agent:浏览器告诉服务器,浏览器的版本
3.Referer:告诉服务器。当前的请求从哪 里来
作用有两个:1.防盗链 2.统计工作

3.请求空行
4.请求体

ServletRequst请求消息对象,request和response对象的原理、
1.TOMCAT会根据请求URL中的资源路径,创建类对应的对象
2.tomcat服务器会会创建request和response对象,request对象会封装请求消息数据。
3.tomcat将request和response两个对象传递给service方法,并且调用service方法。
4.我们可以根据request对象获取请求消息数据,通过response对象设置响应消息数据。
5.服务器在给浏览器做出响应之前,会从response对象中拿程序员设置的响应消息数据。

request作用功能:
1.获取请求行数据
请求方式 请求URL 请求协议/版本
获取请求方式有一个方法:
String GetMethod()
()获取虚拟目录:
getContextPath()
获取Servlet路径:
String getServletpath()
获取get方法的请求参数:
String getQueryString()
(
)获取URI
String getRequestURI()
String getRequestURL()
获取协议版本
String getProtocol()HTTP1.1
获取客户机的IP地址
String getRemoteAddr()

URL统一资源定位器
URI统一资源标识符
2.获取请求头数据
getHeader(String name)通过请求头的名称来获取请求头的值
3.获取请求体数据

其他作用:
获取请求参数通用的方式:
String getParameter(String name)可以根据name来识别这个参数的值。
String[] getParameterValues(String name)
请求转发:
共享数据
获取ServletContext

组件关联关系:
请求转发:forward:将客户端的请求转发给同一个应用程序中的其他web组件
请求重定向:redirect:将客户端的请求重定向到其他任意的URL上,表明该次请求响应流程已完成,返回返回一个相应给客户端,客户端根据响应重新发起一次新的请求,不使用之前的Request对象。
页面包含:include:
会话跟踪:就是一系列维持web应用中客户端和服务端会话状态的编程技术。
不去修改协议的前提下,解决一系列办法
URL重写:安全性低,操作麻烦
隐藏域
客户端保存信息:Cookies
服务端保存信息

使用cookies实现会话跟踪:
Cookie是一个对象,内容主要包括以Key-value形式保存的token信息,作为HTTP1请求头的一部分,传输由HTTP协议控制,最终保存在浏览器中


原文地址:https://blog.csdn.net/ZZZ_zzz555/article/details/143082478

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!