web总结

1、从用户回到虚拟机
su root
输入密码(liunx系统输入密码时不显示的直接输完回车即可)

步骤
1、新建一个gitee

30号的工作总结
1、环境搭建
1构建环境
安装软件 jdk maven git 通过yum安装
2安装环境
安装JRE Tomcat3.5 MySQL(MariaDB)
2、新建项目 (每次有新的项目时需要一次 以后项目苟能开发BUG不再修复)
1在代码仓库(gitee核github上新建项目仓库)
2在开发环境(window)上clone项目并进行共呢个开发,BUG修复
3在构建环境(linux)上clone项目为了以后进行构建
4在开发环境(windows)核生产环境(linux)的MYSQL都新建库核表
3、功能上线(每次开发新功能BUG修复之后都需要进行这些操作)
1在开发环境上进行git pull
2在开发环境进行代码编写+测试
3在开发环境进行git commit +push操作

构建阶段
1、在构建环境(linux)上进行git pull
2、在构建环境(linux)上利用maven进行项目构建(clean compile package)

部署阶段
1进行版本更新
tomcat/webapps/ROOT删掉
打包好的目录里复制到tomcat/webapps/ROOT(新版本)
让新版本生效(重启)


监控需求
0 进程
1 CPU
ps:ps aux 、ps-elf
top q退 shift+p以CPU排序 hift+m以内存排序
2内存
交换分区
top
free
3网络
netstat-nlpt
windows:netstat-nao
4)IO
iostat


学会看tomcat日志
tomcat/log


总结基于Servlet 的Web开发
1 资源
2HTML
< h1> ;;< h6>
< ol>
< ul >< li >
<a href="url’>
from method="方法“ action=”url“ enctype=”“

input type =“text”|password |file“
button


CSS 块级元素vs内联元素

JS
1、如何定义变量
2、如何定义函数
3、如何调用函数
4、字符串,数组,对象

应用
1 会操作DOM树
1查找结点:document.querySelector
选择器
元素选择器 ”h1“
id选择器
类选择器
2创建元素节点: .document.createElement(“标签名称”)
3手上有元素对象时(elements)
img.src=“url”
修改标签的内部文本
element.innerText=“…”
修改标签 的内部HTML结构
element,innerHTML="html"内容
为元素添加孩子元素
element.appendChild(childElement);

2 会进行绑定 (点击Click、ajax成功事件(load))
element,οnclick=函数名称

3 进行ajax操作
var xhr=new XMLHttpRequest();
xhr.open(“方法”,“url”);
xhr.send();
function ajax 成功之后 {
var text=xhr。resposeText;
var data=JSON.parse(text);

}

Web 服务器 Tomcat
命令
bin/startup.bat/sh 启动
bin/shutdown.bat/sh 停止

日志:
logs/*.txt
web 资源目录下
webapps/这下的每个目录都是一家独立的点
ROOT:URL就是/
其他的:URL 中必须带着webapp名称(目录名)

HTTP 协议:
1 基于底层提供了可靠传输(TCP)
2 URL=协议+Web服务器定位(host+port)+路径+查询字符串(query String)
协议可以省略
Web服务器定位省略
路径分为:绝对路径 相对路径

3 Http协议 请求/响应 --以资源为单位

HTML+HTTP怎么使得资源之间产生关系
1 文档让浏览器自动请求资源
< img src =“url”>
< link href =“url”>
< script src =“url”>
2 用户做出动作可以请求其他资源
< a href =“url”>
< form action=“url”> +< butto type=“submit”>
3 资源主动引导浏览器请求其他资源===重定向

请求和响应
头(headers)
空行
正文(body)
请求
方法URL(路径)版本\r\n
Header-Name:Header-Value\r\n
\r\n
正文格式不做要求有

响应
版本 状态码 状态码描述\r\n
Header-Name:Header-Value\r\n
\r\n
正文格式不做要求有

请求:
1、方法的区别 GETvsPOST 语义不同
Get不带请求体 post允许
Get是幂等的 post不是 (幂等就是多次请求是不变的)
Get可以被缓存 Post不能
form表单提交,GET参数带着 query string Post参数带在请求体中

请求投中需要掌握的
1Content-Yype
2Cookie
响应
1 状态码代表的含义
整体上 1XX/2XX/3XX/4XX/5XX 2XX代表成功 3XX重定向 4XX客户端错了 5XX服务器错了
具体 200/404/405/500
301/302/306/307/308 重定向
2 响应头
Content-Type:
text/html
application/json
text/plain
Set-Cookie
重定向:
1 永久 临时
2 保留方法 退化成get


利用Idea+maven 开发Web项目
1 pom.xml 属于 maven 配置
打包方式 < packing> war < /packing>
2 maven 编译的时候采用1.8的语法
< properties>
< maven.compiler.source> 1.8< /maven.compiler.source>
< maven.target.source> 1.8< /maven.target.source>
< /properties>

3项目依赖
< dependencies>
< dependency> < /dependency>
< /dependencies>
用过 javax-servlet-api
mysql-connector-java
thymeleaf
jackson-databind

静态资源
必须放在: src/main/webapp
不能放在 src/main/webapp/WEB-INF
动态资源
代码只要在src/main/java 即可,具体哪里无所谓

动态资源的基本:
1 如何让一个类被Tomcat是为动态资源
1 @WebServlet (“url”)
url不包含context path(application context)
url 必须以 / 开头 不能出现空格
特例: ” “ 代表首页
”*/html" 统配所有以html结尾的URL
url不能和其他动态资源重复
2 继承HTTPServelt抽象类 并且重写doGet/doPost方法
2 响应内容的代码
resp.setCharacterEncoding(“utf-8”);
resp.setContentType(“text/html”,“text/plain”,“application/json”)
PrintWriter writer =resp.getWriter();
writer.printf();
3 重定向代码模板
resp.sendredirect(url);
4 如何从form(不是文件上传)中读取用户参数
req.setCharacterEncoding(:utf-8");
String value =req.getParameter (“key”)
value==null || (value.trim()).isEmpty() 可以视为用户没有填写内容
5 如何读取文件上传的参数
1 类必须用@MultipartConfig
2 req.setCharacterEncoding(“utf-8”)
3 Part part =req.getPart(“key”)
4 part.getInputStream() 进行IO处理
6 Cookie+Session
1 为啥需要 因为HTTP是无状态协议 但是需求是会话管理 (健忘的老板管理)
2 Cookie是会员卡 客户携带
3 Server是店里记录 保存在商店
4 server向Client种Cookie 通过响应头Set-Cookie
Client向Server发Cookie 通过请求头Cookie
5 这两个一般是配合使用但是都可以单独使用
6 动态资源使用Session代码模板
HttpSession session =req,getSession();
session,setAttribute(key,object);
session,getAttribute(key;
session,removeAttribute(key);
7 这两个最重要的应用是用户管理
登录 注册 注销
配合工作时序图(自行查看)


两个方法完成web开发
动态模板和前后端分离

动态模板:—Thymeleaf
核心概念 :引擎著需要一个 解析器一个上下文每次请求一个
进行引擎初始化的代码模板
1 @WebListener
2implements ServletContextListener
3重写servletContextIntialized(ServeletContextEvent sce)
4 初始化引擎代码模板
ServletContext servletContext=sce.getServletContext();
ServletContextTemplateResolver resovler
=new ServletContextTemplateResolver(servletContext)
//配置解析器

resovler.setTemplateMode’(Mode.HTML);

resovler.setCharacterEncoding(“utf-8”);
resover.setPrefix("/WEB-INF/templates/") //配置模板的位置
TemplateEngine engine=new TemplateEngine();
engine.setResovler(resolver);
//把引擎方法ServletContext
servletContext.setAttribute(“engine”,engine);
5 每次sevlet运行
1)取出来引擎
ServletContext servletContext=req.getServletContext();
TemplateEngine engine=servletContext.getAttribute(“engine”)
2)设置上下文
web Contextcontext=new WebContext(req, resq,servletContext)
context.setVariable(name,value)
3)模板处理
String content=engine.process(“模板文件位置“,context);
6Thymeleaf模板方言
th: 属性=” ′ ′ ′ " t h : t e t x t = " {'''}" th: tetxt=" "th:tetxt="{’’’}"
th: each=“item : ${list}”

前后端分离
1 把对象序列化成JSON格式
ObjectMapper objectMapper=new ObjectMapper();
String content=objectMapper.writeValueString(object);
//内容输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值