JavaEE 学习笔记 1、应用程序的的三层结构:1,表示层:由用户界面和用于生成 界面的代码组成。2,中间层:包含系统的业务和功能代码。3,数据 层:负责完成存取数据库的数据和对数据进行封装。 2、格式化的数据流,比如 html 数据流,就是进行了 html 格式 化,通过网络传到客户端浏览器中,浏览器就能识别这样的数据,其 他格式的数据或者未格式化的数据是不能识别的。text/plain 代表 的是未格式化的文本。 3、客户端浏览器发送浏览请求,服务器把没有 JSP 代码的静态 html 网页传给客户端浏览器,当客户端填写了有关数据后,点击提 交并把相关数据 (参数) 传递过去, 服务器端有含有 JSP 代码的网页, 然后服务器找到这个网页,并执行其中的代码,然后生成具有 html 格式的数据流通过网络回传到客户端浏览器中, 这样就完成了请求回 应的过程。 这个原理同样也适合 ASP, 以及 ASP.net, 只不过 ASP.net 是代码网页分开而已。 4、在 JSP 技术出现之前,如果想生成 HTML 页面,那就只有再服 务器端运行 JAVA 程序,并输出(打印)HTML 格式内容。运行在服务 器端的 JAVA 程序就是 Servlet。 5、什么是 Servlet?
import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloServlet extends HttpServlet
{
1
Public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException { response.setContentType("text/html;charset=gb2312"); PrintWriter out=response.getWriter(); out.println(""); out.println(" "); out.println(" "); out.println("你好,欢迎来到 Servlet 世界"); out.println(" "); out.println(" "); out.close();
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException { doGet(request,response); } }
创建的 Servlet 类必须继承 HttpServlet 类 实现 doGet()或者 doPost() 6、转发 转发:对应的 Servlet 代码: 转发 dispatcher.forward(request,response); 转发是在服务器端起作用的,当使用 forward()方法时, Servlet 容器传递 HTTP 请求,从当前的 Servlet 或 JSP 到指定的 Servlet 或 JSP,此过程仍然在 request 作用范围内。转发后,浏览 器的地址栏内容不变。 重 定 向 : 对 应 的 Servlet 和 JSP 代 码 都 是
response.sendRedirect("ch02/ok.jsp"); 重定向是在用户的浏览器端工作的, Servlet 对浏览器做出响 是
2
应后, 浏览器再次发送一个新请求, sendRedirect("ch02/ok.jsp"); 到 指定的 ok.jsp 页面。重定向后,浏览器的地址栏内容发生变化。
转发和重定向:在刚刚学习转发和重定向的时候,在使用方面哪 种方式进行页面的跳转,这是困扰很多学员的问题。其实他们之间
有 一个很清晰的区别, 那就是数据的传递。 如果你想把数据通过 request 作用域传递到下一个页面或 Servlet,那就使用转发。反之,就使用 重定向。 7、session 是由服务器也就是 Web 容器创建的。 8、java 语言为我们提供了一种序列化机制,可以把一个实现了 Serializable 接口的对象转换成一组 byte 数据,在用到这个对象的 时候,能把这些 byte 数据恢复出来,重新构建那个对象。那么序列 化有什么好处呢?程序在运行时,会产生对象,这些对象会随着程序 的停止而消失,但是我们想把这些对象保存下来,让这些对象在程序 运行终止后,仍然存在,可以让程序再次运行时读取这些值,或者在 其他程序中使用这些保存下来的对象,在这种情况下,我们可以使用 序列化来完成。 9 、 网 页 中 传 到 服 务 器 上 参 数 , 是 通 过 request 对 象 的 getParameter 方法实现获取到的。 10、集合类中的 Map 接口和 Set 接口,我们通过 Map 接口中的 keySet()方法,可以把 Map 中的 Key 键以 Set 形式返回,再通过 toArray()方法,将 Set 对象转换为 Object 类型数组,之后我们来遍
3
历数组,以数组元素为 key 值,取出 Map 中所存储的数据。 Set 就是没有重复元素的集合。Set 接口是继承了 Collection 接口, 并被其他类如 HashSet 类、TreeSet 所实现的接口,在 Set 接口中, 为我们提供了一些常用的方法:Object[] toArray() Set 中所有元素的数组 int size() boolean add() boolean isEmpty() 返回 Set 中的元素数 返回 Set 中添加元素 返回 Set 中不包含元素,则返回 true 返回一个包含
11、 常用的集合类和接口: List 接口、 ArrayList 类、 LinkedList 类、Map 接口、HashMap 类,以及 Set 接口与 HashSet 类。
List 接口:该接口与其实现类是容量可变的列表,可按索引访 问集合中的元素,是有序的集合。 Collection 接口 ↙ List 接口 ↙ ArrayList 类 ↘ LinkedList 类 ↘ Set 接口 ↓ HashSet 类 ↘ TreeSet 类
ArrayList 是以 Array 方式实现的 List,允许快速随即存取,相 对于 LinkedList 不适合进行插入和移除元素操作。 LinkedList 提供最佳顺序存取,适合插入和移除元素。
4
Set 接口:是一种不包含重复元素的 Collection,也就是说在 Set 中最多只能有一个 null HashSet 能够快速定位一个元素,但是它要求存入 HashSet 的对 象必须元素实现 HashCode()方法。 TreeSet 将放入其中的元素按需存放。 Map 接口:不同于 List 和 Set,它不继承与 Collection 接口。它的 层次结构如图所示: Map 接口 ↙ Hashmap 类 ↘ Properties 类
12、JSP 技术是在 Servlet 技术的基础上形成的,它的主要任务是 简化页面的开发。在编写程序的时候,我们把大量的 Java 代 码卸载了 JSP 页面中,
进行程序控制和业务罗逸的操作,而 这违背了 JSP 技术的初衷,为程序员和美工带来了很大困扰, 为了解决这个问题,在进行项目设计时采用 MVC 设计模式。 13、MVC 设计模式: 是一种流行的软件设计模式,它把系统分为以下 3 个模块。 模型(Model) 可以分为业 模型(Model):对应的组件是 JavaBean(Java 类)。 (Model) 务模型和数据模型,他们代表应用程序的业务 逻辑和状态。 视图(View) 视图(View):对应的组件是 JSP 或 HTML 文件。提供可交互的 (View) 客户界面, 向客户显示模型数据。 负责展示数据、
5
获得用户输入的部分。 控制器(controller):对应的组件是 Servlet。相应客户的 控制器(controller) (controller 请求,根据客户的请求来操作模型,并把模型 那个的乡音结果经由视图展现给各户。负责从 V 接收用户输入,调用 M(Model),返回数据到 V(view)
14、在程序中,我们要经常建立与数据库的连接,之后再关闭这 个连接。这些操作是频繁的,并且是耗费资源的。在进行企 业级开发时需要稳健和高效的数据访问层(DAO) ⑴ 完成对数据库的 GRUD 操作。 ⑵ 能够处理数据库发生的各种错误。 ⑶ 可以灵活地修改配置。 ⑷ 提供方便使用的工具。 ⑸ 高性能。 15、数据库连接池(由 JDBC2.0 中提供的 javax.sql.DataSource 来实现)在初始化的时候将创建一定数量的数据库连接放到连接池 中,这些数据库连接的数量是由最小数据库连接数来设定的。 16、DataSource 对象是由 Web 容器(Tomcat)提供的,因此不 能再程序中采用创建一个实例的方式来生成 DataSource 对象,而需 要 采 用 JAVA 的 另 一 个 技 术 JNDI ( Java Naming and Directory
6
Interface),来获得 DataSource 对象。 可以简单的把 JNDI 理解为一种将对象和名字绑定的技术,容器 生产处对象,这些对象都和唯一的名字绑定。外部程序可以通过名字 来获得该对象。 javax.naming.Context 提供了查找 JNDI Resource 的接口,例 如,可以通过以下代码获得名称为 jdbc/books 的数据源的引用: Context ctx=new InitialContext(); DataSourceds=(DataSource)ctx.lookup("java:comp/env /jdbc/books"); 得 到 DataSource 对 象 后 , 可 以 通 过 DataSource 的 getConnection()方法来获得数据库连接对象 Connection。当程序结 束数据库访问
上一篇:
JavaEE(JSPServlet)常见题_jsp代码
下一篇:
重庆交通大学机电与汽车工程学院毕业设计(论文)工作规范修订20140430