- 基于javaEE,须要在该框架的容器和组件支持下完成。
- 以分布式组件集合的形式存在(即由软件组件构成),而分布式软件组件在其各自的容器中运行。
- 指的是提供特定程序组件服务的标准化运行环境,客户经过这些组件能够在javaEE平台上获得所指望的服务。
- 做用:为组件提供标准化服务(部署、执行、生命周期管理、安全等)和API接口
包括:javascript
(1)、Applet容器。负责在web浏览器和java插件上运行java applet程序,对应于用户界面层。如今少用了。php
(2)、应用客户端容器。负责web应用在客户端组件的运行,对应于用户界面层。css
(3)、web容器。管理jsp和servlet等组件的运行,主要负责web应用与浏览器的通讯。对应于表示层。html
(4)、EJB容器。为Enterprise JavaBean组件提供运行环境。主要负责数据处理以及和数据库或其余java程序的通讯。对应于业务层和数据访问层。java
- 指在应用程序中发挥特定功能的软件单位。实质就是在功能和使用上被标准化的几种特定java程序。
分类:node
(1)、客服端组件。Applet和客户端应用程序。web
(2)、web组件。web容器中的jsp、servlet、过滤器和监听器。ajax
(3)、EJB组件。EJB容器中的EJB组件sql
一个完整的web应用程序一般由以下组件构成:数据库
(1)、表示层(视图)。通常由html和jsp页面。
(2)、控制层。servlet。
(3)、业务逻辑层。JavaBeab或EJB。
(4)、数据访问层(持久层)。jdbc、hibernate。
- Java Server Page, Java EE 组件,本质上是 Servlet。
- 运行在 Web Container.接收 Http Request,生成 Http Response(默认协议是 Http 请求和响应)
- JSP 使得咱们可以分离页面的静态 HTML 和动态部分——咱们须要的技术。
- 使页面能够混和html代码、Java代码以及JSP标签;容许访问组件
标记:
(1)、jsp指令标记。page、include、taglib。
(2)、jsp动做标记。include、forward、param、useBean、setProperty、getProperty。
(3)、jsp成员声明标记。声明全局变量。
(4)、jsp程序片。
(5)、jsp表达式。
重要内置对象:
(1)、request
重要方法:set/getAttribute()、set/getParameter()、getCookie()、set/getCharacterEncoding()
(2)、response
重要方法:setCharacterEncoding()、setContentType()、sendRedirect()能够跳转到任意页面且不带request信息。setHeader()能够定时刷新或定时重定向网页等操做。
(3)、out
(4)、session
重要方法:getId()、set/getAttribute()、idNew()、getCreationTime()、getLastAccessedTime()
(5)、application
只要不关闭服务器将一直存在。全部用户共享。
Dao设计模式:实现了业务数据的对象化封装,数据访问和业务逻辑的分离。
四个组件:
DBUtils工具类---负责数据库的链接与关闭
Dao接口---定义增删该查的抽象方法,一个领域模型对应一个Dao接口。
Dao接口的实现类
VO值对象---一个VO对应一个数据表,便于把对数据表的操做转化成对java类的操做。
数据源与链接池技术
- 遵循必定规范的java类;
- 封装了数据和业务逻辑;
- 供jsp和servlet调用。
按照servlet规范编写、由服务器调用和执行的服务器端程序。
继承自父类HttpServlet的重要方法:
init():全局执行一次。
service():根据请求类型会调用doGet()和doPost()方法。
doGet()。
doPost()。
destroy():servlet对象注销时自动调用。
这些方法构成了servlet的生命周期,即建立、服务、消亡。
内置对象:
request、respose、session(request.getSession()获取)、out(request.getWriter())
servlet组件和jsp组件能够经过request、session、application、cookie和javaBean实现数据共享。
(1)、jsp
(2)、jsp+javaBean
(3)、jsp+servlet
(4)、jsp+servlet+javaBean
(5)、jsp+servlet+javaBean+Dao模式
EL与JSTL目的都是为了:提升开发效率,减小页面中jsp代码的数量、保持页面的简洁和可读性、可维护性。都做用在jsp页面表示层。
EL(Expression Language):表达式语句。
做用:获取范围变量的值,并在页面上显示出来。
这里的“范围变量”包括:
一、内部对象:jsp(pageContext)、做用域(pageScope、requestScope、sessionScope、applicationScope)、请求参数(param、paramValues)、cookie(cookie)、请求头(header、headerValues)
二、集合、数组
三、javaBean
四、其余对象或数据结构
JSTL(JSP Standard Tag Library):jsp标准标签库。
分类:
一、核心库:c,操做变量、流程控制、url生成和操做
二、函数:fn,字符串处理函数
三、数据库操做:sql,操做关系数据库
四、格式化:fmt,数字机日期的格式化、页面国际化
五、XML处理:x,操做Xml数据
运用js和xml实现浏览器和服务器异步通讯的一种技术。实现页面的局部刷新和显示。
js原生Ajax:使用浏览器内置的ajax引擎完成异步通讯
(1)建立Ajax引擎对象
(2)绑定监听、接受响应数据的处理
(3)提交地址
(4)发送请求
ajax实例1 <html> 2 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <title>AJAX实例</title> 6 <script language="javascript" type="text/javascript"> 7 8 var xmlHttpRequest; //定义一个变量用于存放XMLHttpRequest对象 9 10 function createXMLHttpRequest(){ 11 if(window.ActiveXObject){//IE浏览器的建立方式 12 xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP"); 13 }else if(window.XMLHttpRequest){ //Netscape浏览器中的建立方式 14 xmlHttpRequest = new XMLHttpRequest(); 15 } 16 } 17 18 19 function httpStateChange(){//判断异步调用是否完成 20 if(xmlHttpRequest.readyState == 4){ 21 //判断异步调用是否成功,若是成功开始局部更新数据 22 if(xmlHttpRequest.status == 200||xmlHttpRequest.status == 0){//查找节点 23 var node = document.getElementById("myDIv");//更新数据 24 node.firstChild.nodeValue = xmlHttpRequest .responseText; 25 } else{ 26 alert("异步调用出错/n返回的HTTP状态码为:"+xmlHttpRequest.status + "/n返回的HTTP状态信息为:" + xmlHttpRequest.statusText); 27 } 28 } 29 } 30 31 //ajax异步操做 32 function getData(name,value){ 33 createXMLHttpRequest();//建立XMLHttpRequest对象 34 if(xmlHttpRequest!=null){ 35 xmlHttpRequest.open("get","ajax.text",true)//建立HTTP请求 36 xmlHttpRequest.onreadystatechange = httpStateChange;//监听,接受数据并处理 37 xmlHttpRequest.send(null);//发送请求 38 } 39 } 40 41 </script> 42 43 </head> 44 45 46 <body> 47 <div id="myDiv">原数据</div> 48 49 <input type = "button" value = "更新数据" onclick = "getData()"> 50 51 </body> 52 </html>
Jquery中的Ajax:对js原生的ajax进行了封装,封装后的ajax的操做方法更简洁,功能更强大
重要方法:
jQuery.ajaxSetup()---设置未来的 Ajax 请求的默认值。
jQuery.ajax()---执行异步 HTTP (Ajax) 请求。
jQuery.get()---使用 HTTP GET 请求从服务器加载数据。
jQuery.getJSON()---使用 HTTP GET 请求从服务器加载 JSON 编码数据。
jQuery.post()---使用 HTTP POST 请求从服务器加载数据。
序列化方法:
jQuery.param()---建立数组或对象的字符串序列化表示,适合在 URL 查询字符串或 Ajax 请求中使用。
serialize()---将表单内容序列化为字符串。
serializeArray()---将表单内容序列化为JSON数组。
View Code1 $.ajax({ 2 url:'/comm/test1.php', 3 type:'POST', //GET 4 async:true, //或false,是否异步 5 data:{ 6 name:'yang',age:25 7 }, 8 timeout:5000, //超时时间 9 dataType:'json', //返回的数据格式:json/xml/html/script/jsonp/text 10 beforeSend:function(xhr){ 11 console.log(xhr) 12 console.log('发送前') 13 }, 14 success:function(data,textStatus,jqXHR){ 15 console.log(data) 16 console.log(textStatus) 17 console.log(jqXHR) 18 }, 19 error:function(xhr,textStatus){ 20 console.log('错误') 21 console.log(xhr) 22 console.log(textStatus) 23 }, 24 complete:function(){ 25 console.log('结束') 26 } 27 })
主要用来来接用户请求,实现如权限检查、编码转换、加密、站点访问权限控制等通用的“横向”模块。
主要用来监听web应用的上下文信息、servlet请求、session会话等信息,并自动根据不一样状况,在后台调用相应的处理程序。
除了监听ServletContext、HttpSession、ServletRequest等对象自己的变化(建立、销毁),还能够监听对象中属性的变化(增、删、改)