JAVA WEB开发基础知识总结
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JSP 组件
JSP容器
JSP文件 请求
浏览器 响应 生成Servlet源代码
经编译的Servlet类
JSP容器初次执行JSP的过程
JSP 组件
JSP在本质上就是Servlet,但创建方式不 同。 Servlet完全由Java程序代码构成。擅长流 程控制和事务处理。 JSP由HTML和JSP标签构成,便于生成动态 页面。
Java Servlet API
HttpServletRequest: Servlet容器把HTTP请求信息包存放在 HttpServletRequest对象中,Servlet组 件从request对象中读取用户的请求数据。 可以存放request范围内的共享数据。
public Object getAttribute(String name); public void setAttribute(String name, Object o); public HttpSession getSession();
JAVA WEB的发展
JSP & Scriptlet
现在人们不是把HTML代码放在Servlet或者Java代码 中,而是把Java代码(作为script-lets)放在HTML代 码中——这就是Java Server Pages (JSP)。每一个 JSP都同时负责处理请求和页面表现。
JAVA WEB的发展
JAVA WEB的发展
伟大的均衡器——Ajax
在2005年初,Web应用又增异彩。按照Jesse James Garrett的 说法, Ajax的全称是 “Asynchronous JavaScript and XML”。 相对说来,这些技术没有一样是新的。实际上,早在6 年以前(从Internet Explorer 5开始),可进行异步调用的主要 Web浏览器组件——XMLHttpRequest对象就已经提供了支持。 真正推陈出新的是这些技术的应用。
JAVA WEB的发展
基于组件的框架
当Web应用变得更加复杂的时候,人们便意识到一个页面已经 不再是一个独立的逻辑了——一个页面上会存在多个表单,有 内容更新的链接,还有其他很多自定义的Widget——而这些都 需要进行逻辑处理来完成各自的任务。出于解决这种复杂度的 需要,基于组件的框架开始流行起来。它们在用户界面组件和 表示这些组件的类之间提供了一层紧密的连接,它们是事件驱 动型的,并且比起基于Action的框架而言,更具有面向对象的 特征。一个组件可以是一个HTML输入框,一个HTML表单,框 架所提供的或是开发人员创建的Widget。像提交表单或者是点 击链接这样的事件,都与代表组件的类的方法或者是特定的监 听类,有着一对一的映射关系。基于组件的框架还有一个好处, 那就是你可以在多个Web应用之间重用组件。JSF,Wicket 和 Tapestry等都是基于组件的框架。
Web组件Βιβλιοθήκη Baidu三种关联关系
请求转发 URL重定向 包含
请求转发
通常运用于Web应用控制层的Servlet流程控制器。 Servlet类使用javax.servlet.RequestDispatcher.forward()方法 来转发所收到的HTTP请求。只能把请求转发给同一Web应用中的组 件,而不能转发给其他Web应用的组件。 JSP页面中可以使用<jsp:forward>标签来转发请求。 转发的源组件和目标组件共享request范围内的共享数据。
MVC 概述
MVC设计模式强制性地把应用程序的输入、处理和输出分开。
JSP Model1
JSP Model2
JAVA WEB 应用概述
核心技术:Java Server Page, Servlet
Servlet 组件
运行于Servlet容器中,可以被Servlet容器动态加载。 按照请求/响应的方式工作
Java Servlet API
ServletContext: Servlet容器为每个Web应用创建一个 ServletContext实例,ServletContext可 以存放application范围内的共享数据。
public Object getAttribute(String name); public void setAttribute(String name, Object object);
Java Servlet API
HttpServletResponse: 用于生成HTTP响应。
Java Servlet API
HttpSession: Servlet容器为每个HTTP会话创建一个 HttpSession实例, HttpSession可以存 放session范围内的共享数据。
public Object getAttribute(String name); public void setAttribute(String name, Object value); public ServletContext getServletContext();
URL重定向
使用HttpServletResponse的sendRedirect()方法向浏览器返回包含重定 向的信息,浏览器根据这一信息发出新的请求,请求访问重定向目标组件。 类似于请求转发,区别: Web组件可以将请求重定向到任一URL,而不仅仅是同一应用中的URL。 重定向的源组件和目标组件之间不共用同一个HttpServletRequest对象, 不能共享request范围内的共享数据。
JAVA WEB 基础知识总结
2010年8月
JAVA WEB的发展
Servlets
Servlets是Java在Web应用中的开创性的尝试。在遵 循HTTP协议的前提下,Servlets可以将URL映射到一 个特定的类上,而该类中的方法将会被调用。 人们马上就意识到,虽然这是一次大踏步式的前进,但 是这种在Java代码中生成HTML代码的方式,对项目维 护而言简直就是一场噩梦。每次当用户界面发生了变化, Java开发人员就需要更改Servlet代码,重新编译,然 后把应用重新部署到服务器上。
包含
一个Web组件聚集来自同一个应用中其他Web组件的输出数据,并使用 聚集的数据来创建响应结果。 源组件和目标组件共用同一个HttpServletRequest对象,共享request 范围内的共享数据。 Servlet类使用javax.servlet.RequestDispatcher.include()方法包含 其他Web组件。 JSP使用<include>指令包含其他Web资源。
共享数据在WEB应用中的范围
Session: 同一个HTTP会话中的Web组件共享它。存 放于HttpSession对象中。
以下情况会话将结束生命周期,Servlet容器会将Http会话所占用 的资源释放掉。 客户端关闭浏览器 会话过期 服务器端调用了HttpSession的invalidate()方法 (*)使用Session要注意资源占用的问题。
共享数据在WEB应用中的范围
共享数据在WEB应用中的范围
Request: 用户请求访问的当前Web组件,以及和当前 Web组件共享同一个用户请求的其他Web 组件。例如:用户访问的JSP网页,其 <%@include%><forword>包含的JSP 文件也能访问该JSP网页request范围的共 享数据。
基于Action的框架
基于Action的框架把Servlet和JSP的概念合并到了一起。它的想 法是把对当前用户所见的页面请求的处理动作,分拆成处理逻辑 和表现逻辑,让它们各司其职。这种实现方式使用了源自于 Smalltalk的一个模式,名为模型-视图-控制器——最近的叫法是 前端控制器,而Sun则给它起名为Model 2。 在这个模式中,Servlet是控制器,集中处理所有的客户端页面请 求。它把所请求的URL与被称为Action的工作单元映射到一起。 Action的工作就是通过访问HTTP会话、HTTP请求和表单参数等 调用业务逻辑,最后把响应映射到以POJO(plain old java object)形式存在的模型上,来完成特定的功能。最后,Action 返回的结果会通过配置文件映射到JSP页面上,JSP会渲染视图并 显示给用户。