学习笔记
- 格式:doc
- 大小:950.00 KB
- 文档页数:20
一、关于几个包的问题dao:Data Access Object:数据访问层,主要存放数据库操作(增删改查)相关代码;biz : business层,业务逻辑层,负责整个应用程序的相关业务流程,并用代码实现出来;util:即utility,工具辅助层,工具类,一组通用的代码集合,比如处理多语言功能,网站非法信息过滤等等功能的代码集;entity:实体层,对应数据库的一张表或者视图的实体类。
action : 顾名思义请求,主要是和view 即我们所说的视图就是页面打交道工作流程:一个请求发送到action(作用:MVC中的C),action控制它发送到哪个biz处理,如果用到数据库,那么biz在连接dao,然后返回要的数据,最后action在返回响应的页面(比如jsp),因为是面向对象,所以实体entity在中间传递数据。
以上为工作流程.二、关于Struts2不能使用EL表达式的问题最近重构一个之前自己所做的项目,把原来的EJB+Struts2改回用Spring2.5+Struts2+Hibernate3.3来做,之前用Jboss发布的,现在改用Tomcat5.5发布,谁知原来正确的<%@ taglib prefix="fmt"uri="/jsp/jstl/fmt"%>时间格式化在Tomcat5.5下不管用,提示:Unable to convert string "${deployTime}" to class"java.util.Date" for attribute "value": Property Editor not registered with the PropertyEditorManager上网查找资料后得知:主要原因是EL表达式无法被解析到.其实从后台取值并传值到前台来根本就没有错,而前台JSP页面EL表达式无效,解析不到EL表达式,引起的原因是web.xml中:<web-app version="2.5" xmlns="/xml/ns/javaee" xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_2_5.xsd">注意里面的web-app_2_5.xsd,就是这个引起的,在web-app_2_4.xsd中就不会出现这种问题(这个版本的isELIgnored默认设置为false)。
<web-app version="2.4"xmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee/xml/ns/j2ee/web-app_2_4.xsd">在不改变web.xml2.5版本的情况下解决办法是:在jsp页面头加:<%@page isELIgnored="false"%> 问题得以解决。
还有就是:<%@page isELIgnored="false"%>的优先级要高于web.xml中的设置,所以在JSP中的设置会盖掉web.xml中的设置.虽然Struts2标签里面不可以嵌套EL表达式,但是你在JSP页面里面还可以使用EL表达式。
如:<span>${pageContext.request.contextPath}</span>。
<span>标签是HTML标签,可以使用EL表达式取值。
需要注意的是:页面启用EL表达式:<%@ page isELIgnored="false" %> ,如果web.xml里用web-app_2_4.xsd声明的话,在JSP页面就不用再显式声明,默认是可以识别EL表达式的。
工程的web.xml声明部分一般有如下版本的xsd, web-app_2_2.xsd ,web-app_2_3.xsd,web-app_2_4.xsd ,web-app_2_5.xsd 。
将web.xml文件中的<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="/xml/ns/javaee" xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_2_5.xsd">部分改为如下:<web-app version="2.4"xmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee/xml/ns/j2ee/web-app_2_4.xsd"> 就可以显示出${}对应的真实后台的值了。
三、java 程序员必知的8大排序(2012-07-24 14:33:39)转载▼标签: java算法杂谈分类: IT 8种排序之间的关系:1, 直接插入排序(1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排 好顺序的,现在要把第n 个数插到前面的有序数中,使得这n 个数也是排好顺序的。
如此反复循环,直到全部排好顺序。
(2)实例(3)用java实现01package com.njue;0203public class insertSort {04public insertSort(){0 5inta[]={49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54 ,56,17,18,23,34,15,35,25,53,51};06int temp=0;07for(int i=1;i<a.length;i++){08int j=i-1;09temp=a[i];10for(;j>=0&&temp<a[j];j--){1 1a[j+1]=a[j];//将大于temp的值整体后移一个单位12}13a[j+1]=temp;14}15for(int i=0;i<a.length;i++)16System.out.println(a[i]); 17}18}2,希尔排序(最小增量排序)(1)基本思想:算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序,然后再用一个较小的增量(d/2)对它进行分组,在每组中再进行直接插入排序。
当增量减到1时,进行直接插入排序后,排序完成。
(2)实例:(3)用java实现01public class shellSort {02public shellSort(){03int a[]={1,54,6,3,78,34,12,45,56,100};04double d1=a.length;05int temp=0;06while(true){07d1= Math.ceil(d1/2);08int d=(int) d1;09for(int x=0;x<d;x++){10for(int i=x+d;i<a.length;i+=d){11int j=i-d ;12temp=a[i];13for(;j>=0&&temp<a[j];j-=d){ 14a[j+d]=a[j];15}16a[j+d]=temp;17}18}19if(d==1)20break;21}22for(int i=0;i<a.length;i++)23System.out.println(a[i]);24}25}3.简单选择排序(1)基本思想:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。
(2)实例:(3)用java实现01public class selectSort {02public selectSort(){03int a[]={1,54,6,3,78,34,12,45};04int position=0;05for(int i=0;i<a.length;i++){0607int j=i+1;08position=i;09int temp=a[i];10for(;j<a.length;j++){11if(a[j]<temp){12temp=a[j];13position=j;14}15}16a[position]=a[i];17a[i]=temp;18}19for(int i=0;i<a.length;i++)20System.out.println(a[i]);21}22}01public class selectSort {02public selectSort(){03int a[]={1,54,6,3,78,34,12,45};04int position=0;05for(int i=0;i<a.length;i++){0607int j=i+1;08position=i;09int temp=a[i];10for(;j<a.length;j++){11if(a[j]<temp){12temp=a[j];13position=j;14}15}16a[position]=a[i];17a[i]=temp;18}19for(int i=0;i<a.length;i++)20System.out.println(a[i]);21}22}4,堆排序(1)基本思想:堆排序是一种树形选择排序,是对直接选择排序的有效改进。
堆的定义如下:具有n个元素的序列(h1,h2,...,hn),当且仅当满足(hi>=h2i,hi>=2i+1)或(hi<=h2i,hi<=2i+1)(i=1,2,...,n/2)时称之为堆。