MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计,用一种业务逻辑和数据显式分离的方法组织代码,将业务逻辑被聚集到一个部件里面,在界面和用户围绕数据的交互能被改进和个性化定制的同时而不需要重新编写业务逻辑
Serviet: server applet(运行在服务器端的小程序)
Servlet运行于支持Java的应用服务器中。从实现上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。
其中包含的API
javax.servlet | 其中包含定义servlet和servlet容器之间契约的类和接口 |
javax.servlet.http | 其中包含定义HTTP Servlet 和Servlet容器之间的关系 |
javax.servlet.annotation | 其中包含标注servlet,Filter,Listener的标注。它还为被标注元件定义元数据 |
javax.servlet.descriptor | 其中包含提供程序化登录Web应用程序的配置信息的类型 |
Servlet就是一个接口,定义了Java类被浏览器访问到(tomcat识别)的规则;
我们可以自定义一个类,来实现Servlet接口,实现方法的复写;其中存在的接口如下
public interface Servlet {
void init(ServletConfig var1) throws ServletException;
ServletConfig getServletConfig();
void service(ServletRequest var1, ServletResponse var2) throws ServletException, IOException;
String getServletInfo();
void destroy();
}
1.init用来初始化Servlet对象,这个方法在后续不会被调用,在调用这个方法时Servlet会传入一个ServletConfig对象对Servlet进行初始化;
2.service()方法,每次请求Servlet时都会调用这个方法
3.destroy,用于清除Servlet对象,也就象征着Servlet生命周期的结束
实现步骤:
1.创建JavaEE项目;
2.定义一个类实现Serviet接口;
3.实现接口中的抽象方法:
4.配置Servlet;
cookie(存储在用户本地终端的数据)
cookie的类型一般为小型文本型文件,相当于只支持Java的String类型;
基础的属性:
name | cookie的名称,类似于map键值对的key |
value | cookie对应名称的值,类似于map键值对的value |
maxAge | cookie的最大存活时间 |
domain | 可以访问该cookie的站点 |
path | 定义web站点可以访问该cookie的目录 |
response写入Cookie
Cookie cookie = new Cookie(String name, String value);
//声明Cookie;
cookie.setMaxAge(int maxAge);
//设置最大存活时间
cookie.setDomain("站点地址");
//设置可访问该Cookie的站点
cookie.setPath("/");
//设置可访问该Cookie的地址;
response.addCookie(cookie);
//添加Cookie
request读取Cookie
如果我们要寻找某个Cookie
1.先用request把所有的cookie取出;
2.然后再遍历寻找;
Cookie[] cookies = request.getCookies();
//取出Cookie
for (int i = 0; i < cookies.length; i++) {
if (cookies[i].getName().equals("kunkun")) {
retValue = cookies[i].getValue();
break;
}
}
//遍历寻找名为kunkun的Cookie
Session(cookie的好兄弟,也是一个用于储存信息的对象)
session在被称为会话控制,是服务器为了保存用户状态而创建的对象,服务器会为每一个游览器(客户端)创建一个唯一的session。这个session是服务器端共享,每个游览器(客户端)独享的。我们可以在session存储数据,实现数据共享。
同样都是存储数据那么session与cookie有什么区别吗?
Cookie是把用户的数据写给用户的浏览器
Session技术把用户的数据写到用户独占的session中
Session对象由服务器创建,开发人员可以调用request对象的getSession方法得到session对象
session对象的创建:
HttpSession session = request.getSession();
String sessionId = session.getId();
if (session.isNew()) {
response.getWriter().print("session创建成功,session的id是:"+sessionId);
}else {
response.getWriter().print("服务器已经存在session,session的id是:"+sessionId);
}
session对象的销毁:
①可以在xml中手动配置文件的失效时间;
<session-config>
<session-timeout>15</session-timeout>
</session-config>
②也可以在程序中调用session.invalidate手动销毁session
HttpSession session = request.getSession();
session.invalidate();
http报文tomcat
http(超文本传输协议)一种应用层协议
https 是在 http 基础之上做了一个加密解密的工作,当我们在浏览器中输入一个百度搜索的 "网址" (URL) 时, 浏览器就给百度的服务器发送了一个 HTTP 请 求, 百度的服务器返回了一个 HTTP 响应.
这个响应结果被浏览器解析之后, 就展示成我们看到的页面内容. (这个过程中浏览器可能会给服务器发送多个 HTTP 请求, 服务器会对应返回多个响应, 这些响应里就包含了页面 HTML, CSS, JavaScript, 图片, 字体等信息)
http请求(request)
平时我们俗称的 "网址" 其实就是说的 URL (Uniform Resource Locator 统一资源定位符). 互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它.
URl中:协议名,域名,端口号,带层次的文件路径,查询字符串,片段是可以省略的;
常用的GET与POST方法:GET:
GET 是最常用的 HTTP 方法. 常用于获取服务器上的某个资源。在浏览器中直接输入 URL, 此时浏览器就会发送出一个 GET 请求. 另外, HTML 中的 link, img, script 等标签, 也会触发 GET 请求.
特点:
a.首行的第一部分为 GE
b. URL 的 query string 可以为空, 也可以不为空.
c.header 部分有若干个键值对结构.
d.body 部分为空.
POST:
POST 方法也是一种常见的方法. 多用于提交用户输入的数据给服务器(例如登陆页面),通过 HTML 中的 form 标签可以构造 POST 请求, 或者使用 JavaScript 的 ajax 也可以构造 POST 请求.
特点:
1.首行的第一部分为 POST;
2.URL 的 query string 一般为空 (也可以不为空);
3.header 部分有若干个键值对结构.
4.body 部分一般不为空. body 内的数据格式通过 header 中的 Content-Type 指定. body 的长度由header 中的 Content-Length 指定.
tomcat:
Tomcat是一个基于Java的Web服务器,它可以解析HTTP请求报文,并根据配置文件将请求交给相应的Servlet进行处理。Servlet是Java编写的服务器端程序,用于处理客户端的请求并生成响应。