javaweb基础
HTML和CSS
<font color="" size="" face=""></font>
<br>
//换行 <hr>
- //无序
-
var 变量名=new Objject();
-
var 变量名={
-
var patt=new RegExp(pattern,modifiers)
-
var patt=/pattern/modifiers/
- HTML,css
- 提供给所有人看的数据始终不会变化
-
淘宝,几乎所有网站
-
提供给所有人的数据都会发生变化,不同时间不同地点看到的数据也不同
-
技术栈:serviet/isp,asp,php
- 微软:国内最早流行的就是ASP
- 在HTML中嵌入了VB脚本,ASP+COM
- //有序
//Javaweb相对路径
表
//表格//行//列1.1 | 1.2.. |
tr 行标签 th表头标签 td单元格标签 b加粗 cellspacing单元格间距
colspan=“ #” 表跨#列合并 rowspan="#"表跨#行合并
iframe的作用以及使用
<iframe src="" name="abc">
</if...>在页面开辟一个小区域,单独显示一个页面
<a href=“” target=“abc">//target使用iframe
表单
表单格式化
表单提交细节:
action="":提交服务器地址 method="":get/post设置提交方式
表提交的时候,数据没有发送给服务器的原因:
1.表单项没有name属性
2.单选,复选(下拉列表中option)都需要添加value属性
3.表单不在提交的form标签中
GET请求特点:
1.浏览器地址栏中的地址是:action属性+?+请求参数(name+value&name+valu)
2.不安全,有数据长度的限制
POST特点:
1.浏览器地址栏中的地址是:只有action属性
2.安全,没有数据长度限制
CSS其他标签
div:默认独占一行
span:长度是封装数据的长度
p标签:段落标签
JS
声明函数
函数声明1:function 函数名(可以带参,也可以不带){ 函数体 }
函数声明2:var 函数名=function(形参列表){函数体}
注意:js函数不允许重载,否则原先函数将会被覆盖
object自定义对象
属性名:值,
属性名:值,
函数名:function(){}
};
事件
点击事件(onclick)
静态注册:
Onload="被调用的函数"//浏览器解析完页面之后就会自动触发的事件
动态注册:
<button id="b1">
按钮2</button>
window.onload=function(){
var btnobj =document.getElementById("b1")
btnobj.onclick=function(){函数体}
}
失去焦点事件(onblur)
静态注册
function onblurFun(){
console.log("静态注册失去焦点事件")//console是控制平台对象,向浏览器的控制台打印输出,用于测试。.log用于打印输出
}
动态注册
window.onload=function(){
var passworldobj=doucment.getElementById(" ");
passworldobj.onblur=function(){函数体}
}
内容发生改变事件(onchang)
静态
<select onchange="f1"
>
<option>..</option>
</selec
>
动态
<select id="f1"
>
<option>..</option>
</selec
>
动态:与前面相似
DOM模型
正则表达式
document对象查询优先顺序:id>name>tagname
节点(标签对象)常用属性和方法:
.基本概念
web开发:
静态web
动态web
2.1静态web
*.html, *.htm这些都是网页后缀,如果服务器上存在这些东西,我们可以直接读取
缺点:无法动态更新,无法和数据库交互
2.2动态web
缺点:如果服务器动态web资源出现了错误,我们需要重新编写我们的后台程序
优点:可以动态更新,与数据库交互(数据持久化)
.web服务器
ASP:
php:
优点:开发速度快,功能强大,跨平台,代码简单
局限性:无法承载大访问量的情况
JAP/Serviet:
B/S:浏览和服务器
C/S:客户端和服务器
Jquery
引入jquery库:
jquery核心函数$
$()就是调用$这个函数
1.当传入参数是一个函数时,即【函数】,表示页面加载完成之后自动调用该函数,相当于window.onload=function(){}
2.当传入参数是一个html字符串时,会根据这个字符串创建元素节点对象
eg:$("
"+"<span>div-span1</span>
"+"".appendTo("body"));
3.当传入参数为【选择器字符串时】,表示根据id/标签名/类选择权查询标签对象
eg:$("#id属性值");//id选择器 , $(“标签名”);//标签名选择器
$(".class属性值");类选择器
jquery对象:
jquery对象是dom对象数组+jquery提供的一系列功能函数
jquery对象与dom对象区别
jquery对象不能使用dom对象的属性和方法,dom对象也不能使用jquery对象的属性和方法
jquery对象是dom对象互转
dom对象转为jquery对象:$(dom对象)
jquery对象转为dom对象:jquery对象【下标】取出相应的dom对象
基础选择器
$("#id名"),$("*")//所有, $(".class名"), $("div,span")
层级选择器
$("form input")//找出表单所有input元素
$("form >input")//找出表单所有的子集input元素
$("label+input")//匹配所有跟在label后面的input元素
$("form~input")//找到所有与表单同辈的input元素
基本过滤选择器
$("li(标签元素,可变):first/last");//获取匹配的第一个/最后一个元素
$("··:not(select)")//去除所有给定..选择器匹配的元素 :not(select)
$("tr:even")//查找表格中所有偶数行(tr) :even
$("tr:eq(2)")//查找第二行 :eq(index)
$("tr:gt(0)")//查找下标比0大的行,即从第二行查找 :gt(index)
$("tr:lt(2)")//查找下标比2小的行,即从第一行查找 到第二行 :lt(index)
$("h1:header")//查找h1标签 $(":header")
$(":animated")//匹配所有正在执行动画的元素
内容过滤器
$(":contains(text)")//找出某个元素下包含的文本元素
$(":empty")//匹配所有不包含子元素或者文本的空元素
$(":parent")//匹配所有包含子元素或者文本的空元素
$("div:has(p)")//匹配包含p元素的div元素 $(":has(selector)")
属性过滤器
$("div[id]")//查找含有id属性的div属性
$("input[name="dsm"]")//查找name为dsm的input属性
$("input[name^="dsm"]")//查找name以dsm开始的的input属性
$("input[name$="dsm"]")//查找name以dsm结束的的input属性
....
表单选择器
xml
作用:
1用来保存拥有自我描述性数据
2.可以作为项目或者模块的配置文件
3.可以作为网络传输数据的格式(现在以json为主)
构造一个xml文件
<?xml version="1.0" encoding="utf-8" ?>
eg:
...
.....
xml元素
xml命名:名称可以含字母,数字以及其他字符,不能以数字,xml或者标点符号开始,不能包含空格
文本区域:
.Tomcat
初始Tomcat:
下载,启动,配置环境
例题:网站如何进行访问的
输入域名,先检查本机的c:\windows\system32\drivers\etc\hosts配置文件下有没有这个域名映射
1.有:直接返回对应的ip地址,这个地址中,有我们需要访问的web程序,可以直接访问
2.没有:去DNS服务器找,找到的话就返回,找不到就返回找不到
发布一个web网站
将自己写的网站放到服务器(Tomcat中)指定的web应用文件夹(webapps)下,就可以直接访问了
网站该有的结构
自己尝试用tomcat发布一个静态网站:
第二种部署web:
找到目录:conf\catalina\localhost下,创建一个.xml文件,写入如下内容:
//path:工程访问路径 docBase:工程目录地址
手托浏览器和手动输入地址访问浏览器区别:
手托浏览器:使用的协议是file://协议,浏览器直接读取file后面路径
手动输入地址访问浏览器:使用http协议
ROOT,index.html工程的默认访问
在浏览器地址栏中输入访问地址(http://ip:port),默认访问ROOT工程
在浏览器地址栏中输入访问地址(http://ip:port/工程名),默认访问index.html页面
servlet
servlet是运行在服务器上一个java小程序,是javaee规范(接口)之一,是javaweb三大组件(servlet程序,filter过滤器,listener监听器)之一。它可以接受客户端发送的请求,并且作出响应给客户端。
手动实现一个servlet工程
1.写一个类实现servlet接口
2.重写servlet中所有方法,其中实现servic方法,此方法是接受请求并作出响应的
3.配置web.xml中servlet程序
mapping路径的优先级问题:
指定了固有的映射路径优先级高,没有此固有映射路径则选择其他路由如通配符的映射路径“/*''
************使用注解代替xml的servlet配置(经常用,很方便)
URL解析
Servlet周期
1.执行Serviet构造器方法
2.执行init初始方法
(仅在第一次访问的时候,第一,二步执行)
3.执行servic方法
(第三步每次访问都会被执行)
4.执行destroy销毁方法
(在web工程停止的时候,第四步才会停止)
servlet请求的分发处理
public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
System.out.println("3");
HttpServletRequest httpServletRequest=(HttpServletRequest) servletRequest;
//获取请求的方式
String method= httpServletRequest.getMethod();
if("GET".equals(method)){
doget();
}
else{
dopost();
}
}
public void doget(){
System.out.println("使用了get方法");
System.out.println("使用了get方法");
System.out.println("使用了get方法");
}
public void dopost(){
System.out.println("使用了post方法");
System.out.println("使用了post方法");
System.out.println("使用了post方法");
}
通过继承httpservlet实现servlet程序
(实际开发中,都是使用此方法来实现servlet程序)
1.写一个类继承Httpservlet类
2.根据业务需要重写doget或者dopost方法
3.到web.xml中的配置servlet 程序的访问地址
可以为一个dervlet设置多个url路径(2021版本的idea不加/):
GenericServlet
servlet程序创建时如果继承servlet类则必须实现init,service,destory等方法,较为笨拙。即如果仅继承servlet的子类GenericServlet,则不必实现servlet全部解口,较为方便,但依然不经常使用,后面会学习HttpServlet类是较为常用的
servlet继承体系
doget()和dopost封装了请求方式的获取
servletConfig类
作用:
1.获取servlet程序的别名servlet-name
servletConfig.getServletName();
2.获取初始化参数init-param
servletConfig.getInitParameter(name)//获取xml的初始化参数init-param,需要配置xml
3.获取servietContaxt对象
servletConfig.getservietContaxt();
ServletContext类
1.servletcontext是一个接口,表示servlet上下文对象
2.一个web工程,只有一个.servletcontext对象实例
3..servletcontext对象是一个域对象(像map一样可以存取数据的对象)
4.servletContext在web工程部署启动的时候的时候创建,在web工程停止的时候销毁
四个作用:
1.获取web.xml中配置的上下文参数表context-param
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletContext servletContext=getServletConfig().getServletContext();
servletContext.getInitParameter("")
}