式处理, 交互性相对低
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=new HashSet();
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 listPagesNewsDB(int page, int rowsPerPage,
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 flights = new ArrayList();
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