Java WEB 学习笔记
Java web 工程结构
Servlet 生命周期
1.装载web.xml
2.创建 构造函数
3.初始化 init()
4.提供服务service()
5.销毁 destroy()
有却只有一个对象
Java的注解
注解通过@interface关键字定义
在类上使用
元注解**
基础注解可以应用到其他注解上面(作用给其他注解解释说明)
@Retention(注解存活时间)
RetentionPolocy.SOURCE 注解只在源码阶段保留,在编译器进行编译时它将被丢弃忽视
RetentionPolocy.CLASS 注解只被保留到编译进行的时候,它并不会被加载到 JVM 中
RetentionPolocy.RUNTIME 注解可以保留到程序运行的时候,它会被加载进入到 JVM 中,所以在程序运行时可以获取到
@Documented(将注解中的元素包含到 Javadoc 中)
@Target (指定了注解运用的地方)
ANNOTATION_TYPE
CONSTRUCTOR
FIELD
METHOD
…
@Inherited(如果它的子类没有被任何注解应用的话,那么这个子类就继承了超类的注解)
@Repeatable(可重复的)
预注解
@Deprecated
@Override
@SuppressWarnings
@SafeVarags
@FunctionalInterface
合理的创建标题,有助于目录的生成
直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC
语法后生成一个完美的目录。
初始化加载
init()
load-on-startup
@WebServlet(urlPatterns=""(必须提供地址),loadOnStartup=2)
210 运算结果是 1024.
Http请求结构
mozilla链接: link
响应的结构
HTTP 常见状态码
ContentType 作用
请求转发与响应重定向
req.getRequestDispatcher("/index").forward(request,response)
请求转发不跳转地址
服务器跳转 只产生一次请求 c - s1 - s2 - c
res.sendRedirect("/index")
响应重定向跳转地址 浏览器端跳转 产生两次请求 c - s1 - c - s2 - c
自定义属性**
请求允许创建自定义属性
设置: request.setAttribute(属性名,属性值)
获取: Object attr = request.getAttribute(属性名)
Cookie
cookie -> 在本地
默认有效期浏览器窗口
Session
Session (用户会话)保存浏览器窗口数据 - > 在服务器 tomcat
通过cookie的sessionId值提取用户数据
ServletContext 三大作用域对象
HttpServletRequest – 请求对象
HttpSession – 用户会话对象
ServletContext – web应用全局对象
getServletContext
中文乱码
request.setCharacterEncoding(“UTF-8”); -> POST方法第一行
tomcat 8.x默认utf-8 ->GET
配置tomcat /conf/server.xml:
<!-- 对于URIEncoding属性只需要在Tomcat7(包含)以前的版本中设置,Tomcat8无需设置 -->
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
响应也需要设置utf-8
response.setContentType("text/html; charset=utf-8");
web.xml常用配置
index.html
mvc设计模式(M模型-V视图-C控制层)
servlet — jsp — javabean
处理数据-显示数据-封装数据