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)