B/S 信息流向可变化, B-B B-C B-G等信息、流向的变化, 更像交易中心。
119、STRUTS的应用(如STRUTS架构)
Struts 是采用Java Servlet/JavaServer Pages技术,开发Web应用程序的开放源码的framework。采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架。
Struts有如下的主要功能:
一.包含一个controller servlet,能将用户的请求发送到相应的Action对象。
二.JSP自由tag库,并且在controller servlet中提供关联支持,帮助开发员创建交互式表单应用。
三.提供了一系列实用对象:XML处理、通过Java reflection APIs自动处理JavaBeans属性、国际化的提示和消息。
48、编程题: 写一个Singleton出来。
Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。
一般Singleton模式通常有几种种形式:
第一种形式: 定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。
public class Singleton {
private Singleton(){}
//在自己内部定义自己一个实例,是不是很奇怪?
//注意这是private 只供内部调用
private static Singleton instance = new Singleton();
//这里提供了一个供外部访问本class的静态方法,可以直接访问
public static Singleton getInstance() {
return instance;
}
}
第二种形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
//这个方法比上面有所改进,不用每次都进行生成对象,只是第一次
//使用时生成实例,提高了效率!
if (instance==null)
instance=new Singleton();
return instance; }
}
选择排序
public static void main(String[] args){
int[]ary={8,6,3,5,2,1};
ary=selectionSort(ary);
String s=Arrays.toString(ary);
System.out.print(s);
}
public static int[] selectionSort(int[] ary){
for(int i=0;i for(int j=i+1;j if(ary[i]>ary[j]){ int temp=ary[i]; ary[i]=ary[j]; ary[j]=temp; } } } return ary; } 冒泡排序 for(int i=0;i for(int j=0;j if(ary[j]>ary[j+1]){ int temp=ary[j]; ary[j]=ary[j+1]; ary[j+1]=temp; } } } return ary; 用二重循环实现,外循环变量设为i,内循环变量设为j。外循环重复9次,内循环依次重复9,8,…,1次。每次进行比较的两个元素都是与内循环j有关的,它们可以分别用a[j]和a[j+1]标识,i的值依次为1,2,…,9,对于每一个i, j的值依次为1,2,…10-i。 插入排序 for(int i=1;i int temp=ary[i]; int j; for(j=i-1;j>=0;j–){ if(temp ary[j+1]=ary[j]; }else{ break; } } ary[j+1]=temp; } return ary; 打乱排序 import java.util.HashSet; import java.util.Iterator; import java,util.Set; public class Iterator overSetDemo{ public static void main(String[] args){ Set set.add(“D”); set.add(“A”); set.add(“C”); set.add(“B”); for(Iteractor i=set.iterator() : i.hasNext();){ String s=(String)i.next(); System.out.print(s+” “); } } } //MySQL 中的分页查询实现 import java.io.InputStream; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import week07.domain.Flight; import week07.domain.News; import week07.util.ConnectionUtils; public class FlightDaoImplForMySQL { /** * 分页查询flight表的所有列的数据 * * @param page * 第几页 * @param rowsPerPages * 每页显示行数 * @param con * 数据库连接 * @return 查询到的数据以News对象的形式存储到List中返回 * @throws Exception */ public List Connection con) throws Exception { int from = (page – 1) * rowsPerPage; String sql = “select * from flight limit , ;”; Connection conn = null; PreparedStatement pStmt = null; ResultSet rs = null; Flight flight = null; List try { conn = ConnectionUtils.openConnection(); pStmt = conn.prepareStatement(sql); pStmt.setInt(1, from); pStmt.setInt(2, rowsPerPage); rs = pStmt.executeQuery(); while (rs.next()) { String id = rs.getString(1); String num = rs.getString(2); flight = new Flight(id, num); flights.add(flight); } } catch (SQLException e) { e.printStackTrace(); } finally { ConnectionUtils.clos