javaweb


HTML

1.html: a href 标签中,target=""-----链接打开方式,当前窗口打开(self),或者新开窗口打开(blank)
2.<!--iframe在html上打开一个小窗口加载另一个页面,定义iframe窗口的name,在a 标签的target属性写上iframe的name-->
3.<ul>标签---无序排列,与<li>标签使用,
4.表单:<form>标签。html页面中,用来收集用户信息的元素集合,把这些信息发送给服务器
5.<!--form表单标签,input type=text / 文本输入框 , input type = password / 密码类型,value设置初始默认值
input type =radio 单选框,同一组name只能选一个。 input type checkbox 多选框 。select 下拉标签框,option标签下拉的内容。
textarea文本输入区域,rows=行,cols=每行的字符数。 rest=重置。submit=提交,button=按钮,file=提交文件
-->
6.<div>标签,内容独占一行。<span>标签--内容全在一行。<p>标签--默认会在段落上方或者下方各空出一行。
7. form表单发送信息给服务器(form里的内容),action是服务器地址,method提交方式默认是get,如果单行输入的字过大,则需要post。
服务器没有收到数据的3种情况
1.表单项不在提交的form标签中。
2.表单项没有name属性值。
3.单选,多选,下拉选择的标签既要添加name,也要添加value值

8.CSS语法规则:P(选择器){font-size(属性):80px(值)}----选择器{键值对} eg: div{color:blue;font-size:30px} 可以有多个键值对。
用法1.在<head>里用<style type="text/css">标签用 内容 p{font-size:80px}。 -------------------IDEA CSS-2
用法2(常用):创建一个css文件,在该文件写上内容样式,即P(选择器){font-size(属性):80px(值)},然后在html种用<link rel="stylesheet" type="text.css" href="css路径">标签引入
9. 1-标签选择器 <link>导入。 2-ID选择器<div ID=" 001"> ------在head里面写<style type=”“>实现 语法:#Id{样式}。3-class选择器<div class="">head里面实现,实现语法.class名{格式}
4-组合选择器,eg:class选择器和id选择器组合,实现 语法,<head>里面实现, .class,#ID{格式}。选择器之间用逗号隔开。

 

JS:
JS单独文件引用 与CSS文件引用一样,创建一个JS文件,再里面写JS代码,再对应标签用src='路径'调用。
1.在head或body用<script type=text/script>标签 。 类型:数值(number),字符串(String),对象(Object),Booolean,函数类型(function)。定义变量的格式:var 变量名(=)。
2.undefined----变量没有赋值(默认)。 null------空值。 NAN(not a number)----非数字非数值。alert相当于syso。
typeof(变量) 返回变量类型。
3.逻辑运算,运算或与非时,在哪能得到结果时,就返回该得到结果的值。
4.函数 : function 名字(形参){} --------------------函数调用 函数名字(形参); 函数不能被重载
5.关系运算:等于==字面值比较。全等于=== 比较值和变量类型。
6.函数的arguments隐形参数(只在function函数内)===java中 public void fun(...)
7.Object定义对象:var 变量名=new Object() 定义属性:变量名.属性名=值. 定义函数:变量名.函数名=function(){}
8.花括号定义对象:var 变量名={属性名:值,属性:值,函数名:function(){}};
9.事件:1.onload事件<body>标签: 1.静态注册:浏览器解析完页面就会自动触发的事件<body onload=“alert('...')”>可以调用函数。
2.动态注册:再JS标签中,windows.onload=function(){ alert('动态注册的onload事件') },不用 再<body>标签中写了。

2.onclick事件<button>标签。1.静态注册:<button onclick="alert('静态注册');">按钮一</button>。
2.动态注册:JS中,windows.onload=function(){var obj=document.getElementById('标签Id值')返回标签对象 ,再obj.onclick=function(){alert('动态注册')}调用事件 }

3.onblur事件<select>标签失去焦点事件。1.静态注册,用户名:<input type="text" onblur="alert(’‘)"></input> F12控制台查看。
2.动态注册,与上边一样。
4.onsubmit事件<form>标签。 1.静态注册,<form action="http://www.baidu.com" onsubmit=" return 函数名;">函数手动返回false和true决定表单是否被提交。
2.动态注册, return false 表单直接被阻止提交。return true 表单被提交。、

10.document对象的查询方法: 1.getElementById--根据标签的id属性值来查询,返回该id属性的对象。
2.getElementsByNmae--根据标签的name属性来查询,返回name属性对象的集合。
3.getElementsByTagName--根据标签的名字来查询,返回标签属性的集合。

11.jQuery:导入jQuery库包。
$(function(){id查询标签对象--var $x=$(id) ,$x.click(function(){alert(""})})。----1.页面加载。2.id查询对象赋值。3.绑定事件(点击事件等。。。)

$核心函数的四个参数。 1.核心函数:$(function(){}) 函数里面的内容再页面加载完成之后会自动调用。
2.html格式:在核心函数里面写$(html代码).appendTo('body'),将html代码添加到<body>中。
3.选择器:eg在核心函数中,$('html标、签名')--多个标签对象以数组形式保存。$('#id')--查询某个id标签的对象
12.jQuery与dom对象的区别: 1.jQuery对象不能使用dom对象的属性和方法,dom对象也不能使用jQuery的属性和方法。

13.jQuery本质:在内存中,以dom对象组成的数组进行存储。

14.jQuery与dom的相互转换: 1.jQuery转换为dom对象:jQuery对象[下标]取出。 2.dom对象转换为jQuery对象:$(dom对象)。-----------------------------可以用alert输出转化的对象。

15.基本过滤选择器:$(jQuery对象:first)----选择第一个下标为0的值(第一个dom值)。 ----- $(jQuery对象:last)----选择数组中最后一dom值。 依此类推。
jquery对象可以是标签名,即tag查询,eg:$(button:first)-----查询第一个button标签所对应的值。-----等等。。。。。。。

$(':checkbox')-------------筛选type=checkbox的input属性。

16.内容过滤选择器:

17.jQuery属性操作: 1.html() 设置和获取起始标签和结束标签中的内容。 跟dom属性的InnerHTML一样,获取内容。
2.text() 设置和获取起始标签和结束标签的文本。 跟dom属性的InnerText一样,获取文本内容,包含标签。
3.val() 设置和获取表单项(radio,checkbox,)的 value属性值。 跟dom属性的value一样。
4.val()批量操作表单项--单选多选等。。 eg://-----------多次操作
$(':radio').val(['radio1']);-----------选择type=radio的标签数组,设置单选radio1
$(':checkbox').val(['checkbox1','checkbox2']);选择type=checkbox的标签数组,设置多选checkbox1,checkbox2
$('#slectmore').val(['multiple1','multiple2']);选择id=slectmore的标签数组,设置下拉选项为multiple1,multiple2
$('#slectone').val(['c++'])选择下拉列表的值位c++

//---------一次操作
$('#radio,:checkbox,#slectmore,#slectone').val(['radio2','checkbox3','multiple3','python']);

因为选择器获取的对象是数组储存。所以val()设置值需要中括号【】。

5.attr()---获取和返回某个对象的某个属性值。eg:alert($(':radio:first').attr('name'))--------返回name=radio的第一个对象的name属性值。(radio组的第一个对象)
alert($('radio:first').attr('name','abc'))------设置name=radio的第一个对象的name属性的值为abc,覆盖原有name值。
不建议操作checked,readOnly,selected,disabled
自定义属性。eg:alert($(':radio:first').attr('abc','abcvalue'))----设置abc属性值为abcvalue。

6.prop()--获取和返回某个对象的某个属性值,操作checked,readOnly,selected,disabled。
eg:alert($(':radio:first').prop('checked'))----返回name=radio的第一个对象的checked属性值,true or false
alert(#(':radio:first').prop('checked','false'))---设置为false。
18.jquery动画: 1.show() 将隐藏的元素显示,eg:$('#id').show() 。 2.hide() 将显示的元素隐藏, eg: $('#id').hide()。 3.toggle()可见就隐藏不可见就显示。eg:$('#id').toggle()。绑定点击事件使用,点击就可见,再点击就不可见。
淡入淡出动画:fadein()--


19.tomcat: 创建动态web工程: 1.部署tomcat到idea上 。 setting -->build-->Application servers --> + -->选择tomcat的路径。
2.创建一个java模块,对模块点击右键-->add framwork Support-->web application。 src是java代码。
3.右上角锤子框,点击edit --->点击+ -->选择tomcat server local -->点击deployment(工程路径) -->点击+选择java模块即可 ,tomcat启动是运行模块里面的index.jpx文件。
4.修改工程路径,-->Tomcat-->Deployment-->Application context 一般修改为工程名。
启动:默认访问TOMCAT里面,URL中的地址,-即web工程里面,index.jsp的页面,可以自己更改。

*************Servlet需要的jar包--在tomcat-lib下:tomcat-api, servlet-jar
20.Serverlet 1.serverlet是JavaEE的接口之一。 2.serverlet是javaweb三大组件之一:serverlet程序,Fileter过滤器,Listener监听器。
3.serverlet是运行在服务器上的一个程序,接收客户端发来的请求,并响应数据给客户端。
4.实现servlet一般继承HttpServlet类,有需要重写doget和dopost方法,以及service,init,destroy等方法。

21.Servlet的配置: 配置web.xml。 1.<servlet>标签中1.配置<servlet-name>为servlet类名,2.配置<servlet-class>servlet类的全路径名。(自定义继承httpservlet的类, mvc中的dispatcherservlet也是一个继承或实现servlet的类)
3<servlet-Mapping>标签中配置<servlet-name>为xml配置给谁用,与上面的一样,4.配置<url-pattern>访问的地址-/地址名

22.Servlet的生命周期:servlet的生命周期。
*web.xml配置文件。
* 启动tomcat后并进入手动的xml地址后
* 1.根据全类名调用无参构造创建对象。
* 2.调用init方法初始化
* 3.调用service方法
* 4.停止tomcat后调用destroy方法。
* 1,2,在首次进入xml地址执行,刷新页面不在执行。3刷新页面和首次进入都要执行。4在tomcat服务器关闭之后执行。

23.servlet判断get请求和post请求: 1.创建html文件,添加<form action='' method=''>标签, action是servlet访问地址,method=get/post。再在form标签中添加一个submit
2. 在servlet实现类中,在service方法中,将servlet对象强转化为 HttpServletRequest httpServletRequest=(HttpServletRequest) servletRequest;
并用 String method=httpServletRequest.getMethod接收返回的值, 然后判断,if(method.equals('get'/'post')){....}

24.获取servlet的配置信息,url地址和<servlet-name>值。 1.在web.xml<servlet>标签中配置<init-param>键值对信息,自定义配置,将url或者servlet程序其他信息设置成键值对。
(servletconfig) 2..在方法中返回config对象:ServletConfig servletconfig=getServletConfig()-----用于获取配置信息。
3.servletconfig.getInitParamater("<init-param>的key")------根据该key得到相应的value值。
******注意:extends HttpServlet重写init方法后,需要获取配置信息,则需要在重写的init方法中调用父类的init方法----super.init(config);


25.servletcontext对象:1.servletcontext是一个接口,表示servlet上下文对象。**2.一个web工程只能有一个servletcontext对象,属于整个web工程。**3.servlet对象在web启动时创建,在web关闭时销毁。
4.是一个域对象。

26.servletcontext类的四个作用。1.获取web.xml中配置 的<context-param>标签的内容参数。--servlet.getinitparamter()。 2.获取工程路径:servletcontext.getcontextpath() 。
3.获取工程部署的硬盘绝对路径:servletcontext.getRealpath() 。 4.键值对存取数据:servletcontext.setAttribute(key,value) , servletgetAttributr( "bykey").


27.get请求和post请求:get请求--1.form标签 method=get。2.a标签。3.link标签引入css。4.script标签引入js文件。5.img标签引入图片。6.iframe引入html页面。7.浏览器输入地址敲回车。
post请求--form标签 method=post。


28.常见相应码:200--请求成功。 302--请求重定向。 404--数据不存在(地址错误)。500--代码错误。


29.HttpServletRequest类的作用:每次只要有请求进入tomcat服务器,服务器就会把http的协议信息解析封装到Request对象中,然后传递到service方法(doget,dopost)中给我们使用,通过HttpServletRequest对象获取请求信息。

30.获取进入tomcat服务器中的用户端信息:1.HttpServletRequest req。 req.getRequestURI()--获取资源路径,即工程的哪个资源。req.getRequestURL()--获取客户端访问的绝对路径。 req.getRemoteHost()--获取客户端ip。

31.servlet获取提交到tomcat服务器地址的<input>标签的值:1.<form action="tomcat URL">,在对应的get/post请求方法中用HttpServletRequest req对象调用对应方法。
单个数据:req.getParameter("<input>标签的name值")--获取对应name值的数据。
多个数据:req.getParameterValues("name值")----以数组存在。 数组转化list可以输出。Arrays.aList("数组名")

32.servlet请求转发:即servlet1程序启动后跳转到servlet2. 1.HttpservletRequest req 调用getRequestDispatcher()并返回对应类型。 然后再用返回的对象调用forward(req,resp)方法。就执行servlet2。
RequestDispatcher requestDispatcher = req.getRequestDispatcher("/servlet2"); requestDispatcher.forward(req,resp); -----------------------一次请求转发之后的数据在这两个页面公用。


33.<base>标签:点击超链接时,以base里设置的路径进行跳转。
1.eg:A跳到B,B跳到C,C跳到A,而C里面A的超链接写的是/目录路径,所以跳转以C的页面进行跳转,故而出现路径错误,不能访问A。需要再<base>写上A的绝对路径。
2.用法,一般再title中使用。<base href="地址.......">
++
34. 相对路径与绝对路径 1. .--表示当前目录 2. ..-------表示上一级目录 3.资源名--------表示当前目录/资源名。 4.绝对路径-------http://ip:port/工程路径/资源路径

35.web中/的不同意义: 1.再web中/是一种绝对路径, /被浏览器解析得到的地址是:http://ip:port/, 如果被服务器解析得到的路径是:http://ip:port/工程路径。

36.HttpServletResponse类的作用:表示所有服务器响应的信息。如果需要设置返回给客户的信息,可以通过HttpServletResponse对象来设置。
两个输出流: 1.字节流:getOutputStream()常用于下载,传递二进制数据。 2.字符流:getWrite()常用于传回字符。 ****两个流只能存在一个,即用了字节流就不用字符流。
设置客户端响应信息:resp.getWriter()得到输出流对象,利用该对象调用.write("")写入要响应的信息。
响应中文乱码: resp.setContentType("text/html;charset=UTF-8"); 放在流对象创建之前,建议放在首行

 


****jar包:tomcat--lib下:jsp-api
37.jsp--java sevlet page:由于servlet回传给客户端的信息操作比较繁琐,所以一般用jsp代替servlet回传数据。
1.jsp如何访问:jsp和html一样都是存放在web目录下,访问也跟html一样。都是直接 文件名.jsp
2.jsp是一个servlet程序,其源码继承了httpservlet类。源码也是通过out.write输出流,输出数据回传给客户端。
3.jsp的创建:在动态web工程中,在web目录下右键new一个jsp文件。
4.jsp源码查看:每次创建一个jsp文件并启动tomcat服务器访问该jsp文件,在tomcat内存中就会生成对应的jsp源码,在tomcat控制台中,catalina_base就是生成的源码路径,/work里

38.jsp文件头部生命介绍<page指令>:<%@ page contentType="text/html;charset=UTF-8" language="java" %>
1.language:翻译的语言,只支持java
2.contentType:设置响应头contentType的内容
3.pageEncoding:设置jsp页面的编码-utf-8
4.import:给当前jsp页面导入需要的包
------------输出流的属性5,6--------
**5.autoflush:设置out是否自动刷新内存,默认为ture,boolean值。
6.buffer:设置out缓冲区大小,默认为8kb。
-----------------------------------------
**7.errorpage:设置当前jsp页面发生错误后,需要跳转到哪个页面去显示错误
8.session:设置当前jsp页面是否获取session对象,默认为true。

用法:<%@ page 属性名='值'>

39.jsp声明脚本:格式<%! 脚本 %>------------------------------基本不用

40.**jsp表达式脚本: 格式<%=表达式% >-----------写进客户端页面中

41.jsp代码脚本:格式:<% java语句 %>-----作用:可以在jsp页面中编写我们自己需要的功能

代码脚本和表达式脚本组合使用,将代码中的内容显示通过<%=%>显示在页面之中。 **<%%>一段代码可以由几个<%%>组成,<%=>不能在<%%>中使用,只能单独使用。eg :循环语句。

42 jsp文件中的注释:1.html注释:<!-- -->,注释类容会被写进jsp源码的_jspService方法中,以out.writer(”注释类容“)---响应给客户端。
2.java注释:// ,注释类容会被翻译到java源码中。
3.jsp注释:shift+ctrl+/ ,真正注释。


43.jsp的四大域对象:1.pageContext(pageContextImpI类)------当前jsp页面有效
2.request(HttpServletRequest类)---------一次请求有效
3.session(HttpSession类)-----------------一个会话范围类有效(打开浏览器访问服务器直到关闭浏览器)
4.application(ServletContext类)-----------整个web工程范围类有效(只要web工程不停止,数据都在)
优先顺序:pageContext====>request====>session====>application

44.jsp输出给客户端:out.writer("内容")输出--------只能输出字符串。 out.print()------------输出所有类型数据(常用)

45.jsp静态包含:格式:<% include file="要包含的页面路径" %>---------即将包含的路径的页面内容添加到当前jsp文件中,利于网站的维护与修改。

46.jsp动态包含:格式:<jsp:include page="要包含的页面路径"></jsp:include>

47.EL表达式:主要是为了替换jsp的表达式。 输出在页面
格式:${表达式},当表达式的值时null时,EL表达式输出空串,而jsp输出是null。 ---------------EL主要输出域对象的数据。eg:$(key值)
当jsp四个域中都有相同key时,输出按照优先顺序:pageContext====>request====>session(重启浏览器数据消失)====>application
四大域相同key时----利用pagescope,requestscope,sessionscope,applicationscope输出对应的attribute值。-----四大隐含对象
eg:$(pagescope.key值)----输出pagecontext,$(requestscope.key值)----输出request。。。。等
当域的key值是其他类型时,eg:key.1.1 时, ----${pagescope["key.1.1"]}输出

48:JSTL标签库:代替jsp的脚本代码。
core核心库的使用:1.set标签<c:set/> 往域中保存数据。eg:<c:set scope="reuest" var="key" valuse="值"
2.if标签:<c:if test="${判断语句}"></c:if>判断语句。 eg:<c:if test="${12==12}"></c:if>------------------test属性表示判断的条件。没有if 判断。
3.choose标签:<c:choose> <c: when test="${判断语句}"> </c:when> </c:choose> -----------when标签表示当前。
4.forEach标签遍历:<c:forEach beagin="" end="" var=""></c:forEach> eg:<c:forEach beagin="1" end="10" var="i">${i}</c:forEach> -----遍历1-10
5.forEach遍历数组:<c:forEach item="数据源/集合名等" var=”data“></c:forEach>--------------------item表示数组/集合名 , var表示遍历到的数据
6.forEach遍历map:<c:forEach item="数据源" var="data"></c:forEach>
7.forEach遍历list集合:

49.cookie:保存数据。用于用户名免写。写一个类继承httpservlet。写一个方法形参为request和response。 在方法中new一个cookie 。 cookie cookie=new cookie(“name”,“value”);
然后将cookie add出去。 response.addcookie(cookie)加到浏览器中。 通过f12 查看cookie。 可以设置cookie过期时间。 -1的过期时间为session, 即一次会话有效。 0的过期时间为1970年,即创建就过期。
大于0的时间自定义过期时间。 注意:cookie中文乱码,中文需要经过解码才可以显示,不然报错。


50.过滤器:写一个类实现Filete接口,在类上@WebFileter(urlpatterns="过滤路径"),重写3个方法,在dofileter中执行过滤请求的操作,
filterChain.doFilter(servletRequest,servletResponse);表示放行,交给传给服务器。
如果没有放行,则该请求被过滤,无效。

51.拦截器与静态资源配置:都是写一个配置类需要实现WebMvcconfigurer接口,拦截器重写addinterceptors方法,并且需要拦截器类实现handlerInterceptor接口,重写方法,在prehandle中写拦截逻辑。
静态资源的配置,在 WebMvcconfigurer接口实现类中,实现addresourcehandlers方法。 registry.addResourceHandler(请求).addResourceLocations(资源)配置静态资源。

 

52.session:浏览器与服务器session的关联。 服务器每次创建session会话时。都会创建一个cookie对象(KEY=VALUE)cookie对象的key是JSESSION,value是session的id。
通过浏览器响应,把session的id返回给客户端。set-cookie:Jsession=........。有了session的cookie之后,每次请求,浏览器都会把session的id以cookie的形式发给服务器,服务器通过id查找到对应的session(request.getSession)。

【******
json:轻量级数据交换格式,客户端与服务器进行数据交换。
53.json: json的定义,再js中定义: var jsonname={ "key":value},key用""包裹,value可以是多任何类型,int,String,boolean,json等等。 json的访问: alert(jsonname."key")。
var jsonname={"key":{"key1":value1}} ----值为json格式,--访问:alert(jsonname."key".key1) -访问key的内层json的值。
json也可以存多个json的value,此时遍历内层value需要遍历,遍历也是通过foreach遍历。

54json的存在形式,1.对象形式存在,叫js对象。用于操作json中的数据的时候。var json=JSON.parse(jsonsring)--转为js对象。
2.字符串形式存在,叫json字符串,用于服务器与客户端进行数据交换。 var jsonstring=JSON.stringify(js对象)--转换为字符串,输出形式==tostring。

55json与javabean的互转:导入gson包。 Gson gson=new Gson(); gson.toJson(待转对象)-- 转为json , gson.fromJson(代转对象,代转类型的反射)--转为javabean。
eg: Gson gson=new Gson(); Person person =new Person(); String personjson=gson.toJson(person); Person person1=gson.fromJson(personjson,Person.class);
*******】


56.ajax:$.ajax(
{
url:"请求地址",
type: get(post) ---默认为get。 如果要post的话,可以直接将$.ajax()-->$.post()。
data:{"key":"拿到的数据"}, ---------- key为服务器中的数据(控制器方法需要获得的数据) , value为页面中标签对应name的值。
success: function (data){请求成功时调用的函数。data是形参名,代表的前端返回的数据, return返回的}
}
)

$.get("url","请求参数",function(形参){ });

$.post("url","请求参数",function(形参) { });

eg: 注册格式的提示: 注册时,两次密码输入不正确,爆红提示密码错误。
一般用在函数里,比如onblur事件中。
$.ajax({
type:""请求方式,
url:"${pagecontext.request.contextpath}/ajax/index", ------------------触发ajax函数时,请求的地址。
data:{"password":$("#password").val()}, --------------------password--表示前端mvc中的数据(形参), 后面的表示给该形参传递的数据表单值。
success:function(data){ -------------------------数据回调函数,前端return的数据赋值给data**
if (data(name).tostring()=="后端数据"){
$('#后端提示框id').css("样式")
}

}
}
)

 

57.在html中在head标签外,<script>标签表示js语言区, 跟jsp中<script type="text/javascript">作用一样。 <a><input type=button ></a>为a标签绑定button --用于函数调用,删除成功alert,等等。

 

 

**************转发可以获取WEB-INF下的资源,重定向不能获取,不能通过浏览器访问。

posted @ 2021-12-15 19:51  Martin,Yu  阅读(120)  评论(0)    收藏  举报