--------------------------------XML
xml是什么?
xml是一种表示数据的格式,按照xml规则编写的文本文件称为xml文件。
xml:可扩展标记语言。
百度百科:https://baike.baidu.com/item/%E5%8F%AF%E6%89%A9%E5%B1%95%E6%A0%87%E8%AE%B0%E8%AF%AD%E8%A8%80/2885849?fromtitle=xml&fromid=86251
html也是标记语言,html里面的标记是固定的,每个标记有自己的功能。
xml里面的标记我们可以自己定义。
xml用来表示数据,用来做数据传输。
xml用干什么?
在后续的web开发中很多配置文件,都使用xml来编写。
使用xml编写配置文件,结构清晰,配置清楚。
xml用来?
编写配置文件
数据传输
加入有一个手机APP客户端,是一个网上商城的软件,打开软件需要显示商品列表。那么这个商品列表的数据就可以使用xml来传输。
xml语法
大小写敏感
有开始标记必须有结束标记(标记是成套的)
标记可以是单标记,但必须自己闭合
标记可以包含标记(可以嵌套,嵌套成对嵌套)
标记可以有自己的属性(属性值必须加引号)
标记里面可以有内容
必须有根标记,也叫做根元素。(根元素是其他元素的父元素)
xml文档声明
<?xml version="1.0" encoding="UTF-8"?>必须放在第一行
标记命名
区分大小写
不能使用空格和冒号
不建议以XML xml Xml 等跟xml相关名字
xml中特殊符号的表示
http://www.w3school.com.cn/xml/xml_syntax.asp
注释
平时编写xml文件的时候,是没有固定规则的,标记名,属性名,属性值我们可以按照我们的需求随意来开发。
但是当我们使用别人的框架的时候,一般需要提供一个配置文档,来配置我们使用这个框架的时候的一些属性。这个时候,这个配置文档就需要按照框架的要求来编写。框架的要求就是对xml文档的约束。我们可以通过DTD和Schema文档来编写对文档的约束。
对XML的约束
DTD,Schema
java.util.Date
java.sql.Date
Date d = null;
java.util.Date d = null;
定义了约束之后,可以防止我们写错文档
比如某个配置文件,按照相同的约束来书写,更容易让别人阅读和别的程序读取。
什么是DTD
DTD用来约束xml文档,规定xml文档中元素的名称,子元素的名称和顺序,元素的属性。
一般来说我们很少编写自己的DTD文档约束,我们一般会遵循框架提供的DTD约束文档来编写配置文件。
当我们编写的xml不符合DTD约束规则的时候,会报错,方便我们找错。
怎么引入DTD约束
http://www.w3school.com.cn/dtd/dtd_intro.asp
1,内部引入 2,外部引入(本地)
3,外部引入(网络)
示例:Struts框架的配置文档的首行
schema约束(比DTD牛逼,替代DTD)
schema约束文档本身也是一个xml文档,后缀为xsd
语法更加容易阅读,更加友好
功能更加强大,类型更加完善
里面有命名空间
同样,我们也不需要写schema约束文档,我们只需要直接使用框架提供给我们的约束文档即可。
schema文档的使用
http://www.w3school.com.cn/schema/schema_howto.asp
xml解析方式
DOM方式
DOM文档对象模型(树形结构)
DOM方式解析,就是把xml文档加载到内存形成树形结构,可以进行增删改的操作。
xml里面的dom
html里面的dom
差不多,都是用来解析标签的,解析成一个树,并得到一个document对象。
我们可以使用dom4j来进行dom方式的解析。
dom4j是一个开源是xml解析软件包。
解析的时候需要做的事情
1,解析根元素
2,解析有哪些子元素
3,解析一个元素又哪些属性
4,得到元素的文本内容
5,修改、添加、删除某个元素节点
6,修改、添加、删除某个属性
dom4j解析xml 代码
https://blog.csdn.net/qq_24065713/article/details/77970469
本章讲东西,蛮有用的,不会立即用到,会在后面的开发中慢慢接触到。
------------------------------------------------------------------------JavaWeb基础(JSP)
Java Web和Java EE的区别
Java Web就是以Java语言为基础,使用JSP和Servlet来开发Web程序。Web程序简单理解就是我们平时说的网站。
Java EE是Java的企业级应用,里面包含的功能比较多。JavaEE是个大杂烩,包括Applet、EJB、JDBC、JNDI、Servlet、JSP等技术的标准,运行在一个完整的应用服务器上,用来开发大规模、分布式、健壮的网络应用。这里的网络应用也可以理解为我们平时使用的网站。
可以粗略地认为**JavaWeb就是JavaEE的一部分**,是成为JavaEE大师过程中的第一站。
https://www.zhihu.com/question/52002845/answer/364360839
使用Java EE开发的应用
国内:淘宝,京东,工行的网银,12306 …
国外:http://www.sohu.com/a/107889267_411661
学习Java Web首先要学习的两门技术
JSP Servlet
JSP和Servlet前置技术
前端技术:HTML、CSS、JavaScript
编程技术:Java语言编程
数据库:MySQL、Oracle、SQL Server
后续学习
SSM SSH框架
SSM:Spring SpringMVC MyBatis
SSH:Spring Struts Hibernate
JSP是什么
百度百科:https://baike.baidu.com/item/JSP/141543?fr=aladdin
简单来说JSP = html + Java代码
在一个正常的网页上,加入java代码之后,就成为了一个jsp页面。
JSP用来开发动态页面
什么是静态页面,什么是动态页面!
SiKi学院的首页,登录后用户名的显示。
静态页面上的内容(文字、图片)是不改变的。Web前端工程师开发出来后的页面就是一个静态页面。我们后端人员需要把静态页面变成动态页面。
Java Web开发需要的软件
JDK 8
Eclipse IDE For Java EE
Tomcat 8.5 9
32还是64位根据自己的电脑选择
Tomcat是干什么的
Eclipse编写代码—>.java—>jdk---->.class—>jre运行
Eclipse编写代码—>.jsp/servlet–>tomcat运行
客户端访问tomcat
Tomcat基本使用
哪个目录放置项目
怎么启动
怎么访问
Eclipse的使用
怎么配置JDK
怎么配置Tomcat
怎么创建Web工程
项目结构
源码
web内容(html,jsp,图片等资源)
web-inf:配置文件和java程序
web.xml
classes
lib
发布到tomcat后的结构
怎么创建jsp文件
jsp文件解析
修改字体大小
window - prefer - general - appearance - colors and fonts
怎么运行web项目
默认的编码
ISO-8859-1
乱码问题以及怎么解决
utf-8
怎么在jsp页面上写java代码
<%
%>
这个东西可以多次出现
实现一个显示当前登录的用户名
jsp内容输出表达式
<%=
%>
jsp中java代码可以和页面html代码组合使用
成员变量和局部变量
一个jsp对应一个java类,运行的时候,一个jsp会创建一个对应的java对象。
<%! %> jsp定义表达式
注释
<%-- --%>
不起任何实际作用
还可以注释 <% %>
在java代码中依然可以使用java支持的注释
jsp引入java类
<%@page import=“java.util.Random”%>
<%@page import=“java.util.Random,java.text.*”%>
---------------------http协议和jsp内置对象
什么是协议
当我们跟别人合作的时候,需要是先定义好双方要做的事情,利益怎么分配等事情。免得在合作的时候出现分歧。
什么是http协议
http协议规定了我们在发起http请求的时候,这个请求的数据包里面都包含了什么样的数据
以及数据按照什么样的先后顺序存放在数据包里面。
http请求和http响应
https://blog.csdn.net/chen1403876161/article/details/51546653
什么是jsp的内置对象
不需要声明,不需要创建,就可以直接使用的对象,就是内置对象。
九大内置对象。
request,response,out
一个请求一个request
案例:
SiKi学院的登录、注册、修改个人资料
首页显示 课程列表
对于登录请求
获取用户输入的用户名和密码request
pageContext
pageContext.forward(“xxx.jsp”);
pageContext.include(“xxx.jsp”);
pageContext.getRequest getResponse get…
page是jsp页面对应的类对象
session
会话
session request 生命周期
session对象什么时候会被销毁
关闭浏览器
到达有效时间(长时间不操作网站)
application
web容器的生命周期
网站启动起来,创建一个applition,当网站关闭后,application被销毁。
一个web应用只有一个application对象。
其他问题
------------------------------------------------------------------------JavaWeb基础(Servlet)
什么是Servlet
如果一个jsp页面单纯的只是处理逻辑,不做页面显示用的话,这个时候可以让这个请求交给Servlet来处理。
Servlet在哪里创建
Servlet是一个类,继承自javax.servlet.http.HttpServlet
Servlet两种配置方式
1,xml配置文件
2,注解的方式@WebServlet
先详解web.xml
配置方式
x
xx
获取参数的时候的乱码问题
得到当前项目名
String basePath = “/”+request.getServletContext().getContextPath();
response.getWriter().append 给客户端响应
Servlet生命周期
第一次被请求的时候会调用init
每一次被请求会调用service方法
终止调用destroy
ServletContext(Servlet环境,就是jsp的内置对象之一)
整个工程可以认为是一个ServletContext对象(我们在jsp页面获取到的application)
可以认为ServletContext管理着生成的所有的Servlet
(ServletContext里面都可以存放东西,在其他任意地方都可以取)
怎么获取?
jsp里面:application内置
servlet里面:this.getServlet.Context()
ServletConfig
一个Servlet有一些配置信息,一个Servlet对应的配置信息对应一个ServletConfig对象。
怎么获取?
this.getServletConfig();
转发和重定向
转发通过request
重定向通过response
转发
里面只有一个请求(可以通过request来传递数据)
浏览器地址不会发生改变
重定向
里面有两个请求(通过url传递数据)
通过application来传递数据,不这么做!!!
地址会发生改变
代码
转发
request.getRequestDispatcher("/xxx.jsp").forward(request,response);
重定向
esponse.sendRedirect("/project_name/xxx.jsp");