1、java web
- 基于javaEE,需要在该框架的容器和组件支持下完成。
- 以分布式组件集合的形式存在(即由软件组件构成),而分布式软件组件在其各自的容器中运行。
1.1、容器
- 指的是提供特定程序组件服务的标准化运行环境,客户通过这些组件可以在javaEE平台上得到所期望的服务。
- 作用:为组件提供标准化服务(部署、执行、生命周期管理、安全等)和API接口
包括:
(1)、Applet容器。负责在web浏览器和java插件上运行java applet程序,对应于用户界面层。现在少用了。
(2)、应用客户端容器。负责web应用在客户端组件的运行,对应于用户界面层。
(3)、web容器。管理jsp和servlet等组件的运行,主要负责web应用与浏览器的通信。对应于表示层。
(4)、EJB容器。为Enterprise JavaBean组件提供运行环境。主要负责数据处理以及和数据库或其他java程序的通信。对应于业务层和数据访问层。
1.2、组件
- 指在应用程序中发挥特定功能的软件单位。实质就是在功能和使用上被标准化的几种特定java程序。
分类:
(1)、客服端组件。Applet和客户端应用程序。
(2)、web组件。web容器中的jsp、servlet、过滤器和监听器。
(3)、EJB组件。EJB容器中的EJB组件
2、java web开发技术
一个完整的web应用程序通常由如下组件构成:
(1)、表示层(视图)。一般由html和jsp页面。
(2)、控制层。servlet。
(3)、业务逻辑层。JavaBeab或EJB。
(4)、数据访问层(持久层)。jdbc、hibernate。
【1】、html
【2】、css
【3】、javascript
【4】、jsp
- 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
只要不关闭服务器将一直存在。所有用户共享。
【5】JDBC
Dao设计模式:实现了业务数据的对象化封装,数据访问和业务逻辑的分离。
四个组件:
DBUtils工具类---负责数据库的连接与关闭
Dao接口---定义增删该查的抽象方法,一个领域模型对应一个Dao接口。
Dao接口的实现类
VO值对象---一个VO对应一个数据表,便于把对数据表的操作转化成对java类的操作。
数据源与连接池技术
【6】JavaBean
- 遵循一定规范的java类;
- 封装了数据和业务逻辑;
- 供jsp和servlet调用。
【7】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实现数据共享。
【8】基本编程模式
(1)、jsp
(2)、jsp+javaBean
(3)、jsp+servlet
(4)、jsp+servlet+javaBean
(5)、jsp+servlet+javaBean+Dao模式
【9】EL和JSTL
EL与JSTL目的都是为了:提高开发效率,减少页面中jsp代码的数量、保持页面的简洁和可读性、可维护性。都作用在jsp页面表示层。
EL(Expression Language):表达式语句。
作用:获取范围变量的值,并在页面上显示出来。
这里的“范围变量”包括:
1、内部对象:jsp(pageContext)、作用域(pageScope、requestScope、sessionScope、applicationScope)、请求参数(param、paramValues)、cookie(cookie)、请求头(header、headerValues)
2、集合、数组
3、javaBean
4、其他对象或数据结构
JSTL(JSP Standard Tag Library):jsp标准标签库。
分类:
1、核心库:c,操作变量、流程控制、url生成和操作
2、函数:fn,字符串处理函数
3、数据库操作:sql,操作关系数据库
4、格式化:fmt,数字机日期的格式化、页面国际化
5、XML处理:x,操作Xml数据
【10】Ajax
运用js和xml实现浏览器和服务器异步通信的一种技术。实现页面的局部刷新和显示。
js原生Ajax:使用浏览器内置的ajax引擎完成异步通信
(1)创建Ajax引擎对象
(2)绑定监听、接受响应数据的处理
(3)提交地址
(4)发送请求
ajax实例1 2 3 4 5AJAX实例 6 42 43 44 45 46 47原数据48 49 50 51 52
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/text10 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 })
【11】过滤器
主要用来来接用户请求,实现如权限检查、编码转换、加密、站点访问权限控制等通用的“横向”模块。
【12】监听器
主要用来监听web应用的上下文信息、servlet请求、session会话等信息,并自动根据不同情况,在后台调用相应的处理程序。
除了监听ServletContext、HttpSession、ServletRequest等对象本身的变化(创建、销毁),还可以监听对象中属性的变化(增、删、改)