URL和URI:
URL统一资源定位符,表示对外暴露的整个网址
URI统一资源标示符,表示资源的访问路径,与servlet绑定的地址
HTTP请求结构:
HTTP请求包含三部分:请求行、请求头、请求体
请求行包含:请求方法、请求URI、HTTP协议和版本
HTTP响应结构:
HTTP响应包括三部分:响应行、响应头、响应体
响应行包含:HTTP协议及版本、状态码和状态码描述
HTTP常见状态码:
ContentType决定浏览器对响应体的处理方式:
请求转发与响应重定向
request.getRequestDispatcher().forward()
请求转发,只会产生一次请求,服务器跳转,地址栏中的地址不变,请求处理的方式要一致,只能在应用内转发;
response.sendRedirect()
响应重定向,会产生两次请求,地址栏中的地址会变,响应重定向后的请求默认是Get方法,需要用doGet()方法去处理;
设置请求自定义属性:(只适用于请求转发的场景)
request.setAttribute(属性名,属性值);
设置请求属性
Object attr=request.getAttribute(属性名,属性值);
获取请求属性
Cookie和Session
Cookie是浏览器保存在本地的文本内容,默认只有当前域名下的程序才能读取数据,Cookie具有实效性,会伴随请求头发送给服务器。
Cookie的实效性有两种:
- 默认Cookie有效期和当前浏览器进行绑定,浏览器关闭时失效
- 设置过期时间,Cookie过期后才会失效
Session用于保存浏览器窗口对应的数据,存储在服务器中,具有实效性,Session通过浏览器Cookie的SessionId值提取用户数据,Session默认时长是30分钟
request.getSession()
获取Session对象
get|set|removeAttribute()
获取|设置|删除Session属性
setMaxInactiveInterval()
设置Session超时时间
默认浏览器窗口关闭后cookie消失,session还存在,默认30分钟后session销毁;
在请求转发中,可以使用请求自定义属性完成跨请求的数据交换;在响应重定向中,可以使用session完成跨请求的数据交换功能;
Chrome浏览器中打开的不同页面携带相同的session信息
ServletContext
Servlet上下文对象,是Web应用全局对象,一个Web应用只会创建一个ServletContext对象,随着Web应用启动自动创建
ServletContext可以自定义属性,可以将一些静态数据存放在ServletContext自定义属性中,方便取用
Java Web三大作用域对象
- HttpServletRequest,请求对象
- HttpSession,用户会话对象
- ServletContext,Web应用全局对象
解决中文乱码问题:
由于发送方和接收方对数据使用不同的字符集解析会导致中文乱码问题,统一使用UTF-8编码即可解决中文乱码问题。
请求中的GET方法默认使用UTF-8编码,POST方法需要额外设置UTF-8编码。
响应中通过setContentType设置字符集即可
web.xml常用配置
1.设置默认首页,输入localhost:8080可以默认进入的页面
2.通配符的使用
启动时加载Servlet
- web.xml使用
<load-on-startup>
设置启动加载 <load-on-startup>0~9999</load-on-startup>
数字越小越靠前- 启动时加载在工作中用于系统的预处理
自定义错误页面
Java Web打包与发布
Java Web采用war包发布
Maven的Scope属性
使用maven打包后,将war包复制到tomcat的webapps目录下,即发布完成