`
renjie120
  • 浏览: 237735 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
D11bba82-ec4a-3d31-a3c0-c51130c62f1c
Java应用集锦
浏览量:22914
社区版块
存档分类
最新评论

关于java web开发中的很多小问题集锦

    博客分类:
  • java
 
阅读更多

1、导出excel文件,文件名的中文问题

public static void setFileDownloadHeader(HttpServletRequest request, HttpServletResponse response, String fileName) {
        final String userAgent = request.getHeader("USER-AGENT");
        try {
            String finalFileName = null;
            if(StringUtils.contains(userAgent, "MSIE")){//IE浏览器
                finalFileName = URLEncoder.encode(fileName,"UTF8");
            }else if(StringUtils.contains(userAgent, "Mozilla")){//google,火狐浏览器
                finalFileName = new String(fileName.getBytes(), "ISO8859-1");
            }else{
                finalFileName = URLEncoder.encode(fileName,"UTF8");
            }
            response.setHeader("Content-Disposition", "attachment; filename=\"" + finalFileName + "\"");
        } catch (UnsupportedEncodingException e) {
        }
    }

 使用方法:

               HSSFWorkbook workbook = getHssfWorkbook(forms, "中文名.xls", headers);
		
		response.reset();
		response.setCharacterEncoding("UTF-8");
		response.setContentType("octets/stream");
		setFileDownloadHeader(httpRequest,response,"中文文件名.xls");
		response.setHeader("Connection", "close");
		response.setHeader("Content-Type", "application/vnd.ms-excel");

  2、生成一个随机的字符串,可以作为主键:

UUID uuid = UUID.randomUUID();
UUID.randomUUID().toString().replace("-","")

 3、json解析工具,jackson的json工具方法:

//得到对象的json串
 private String getJsonStr(Object obj){
    	try {
			return JSONMapper.getInstance().writeValueAsString(obj);
		} catch (Exception e) {
			logger.error(e.getMessage(),e);
		}
    	return null;
    } 

//解析字符串为简单java对象
JSONMapper.getInstance().readValue(json,Oper.class);

//解析字符串为复杂的java对象
String str = FileUtils.readFileToString(new File("/opt/hotel.json"),"GBK");
 ObjectMapper objectMapper = JSONMapper.getInstance();
objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true);
returnT =  objectMapper.readValue(str, new TypeReference<ResultHandleT<RouteProductVo>>() {}); 

//jackson的配置属性:
 objectMapper.configure(JsonParser.Feature.ALLOW_COMMENTS, true);//是否允许解析使用Java/C++ 样式的注释(包括'/'+'*' 和'//' 变量)
        objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);//是否将允许使用非双引号属性名字, (这种形式在Javascript中被允许,但是JSON标准说明书中没有)
        objectMapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);//是否允许单引号来包住属性名称和字符串值
        objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true);//是否允许JSON字符串包含非引号控制字符(值小于32的ASCII字符,包含制表符和换行符)。 如果该属性关闭,则如果遇到这些字符,则会抛出异常。
        objectMapper.configure(JsonParser.Feature.INTERN_FIELD_NAMES, true);//决定JSON对象属性名称是否可以被String#intern 规范化表示。,如果允许,则JSON所有的属性名将会 intern() ;如果不设置,则不会规范化,
        objectMapper.configure(JsonParser.Feature.CANONICALIZE_FIELD_NAMES, true);// 默认下,该属性是开放的。此外,必须设置CANONICALIZE_FIELD_NAMES为true
        objectMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);//该特性决定了当遇到未知属性(没有映射到属性,没有任何setter或者任何可以处理它的handler),是否应该抛出一个JsonMappingException异常。这个特性一般式所有其他处理方法对未知属性处理都无效后才被尝试,属性保留未处理状态。

  4、读取文本内容,转换为字符串:

import org.apache.commons.io.FileUtils;
String str = FileUtils.readFileToString(new File("d:\\酒店分组数据.txt"),"GBK");

 5、freemark中,进行select的默认选择:

<#list min..max as x> 
	<#if  fangxing.roomCount==x  >
	<option value="${x}" selected>${x}</option>
	<#else>
	<option value="${x}">${x}</option>
	</#if>
</#list>

 6、页面加载完毕之后执行的js,没有生效,改成添加一个时间之后定时执行就可以了。setTimeOut

 

7、freemark小技巧 

${(fangxing.internet)!'-'}       如果字段为空就默认为后面的‘-’

假设前提:user.name为null 
${user.name},异常 
${user.name!},显示空白 
${user.name!'vakin'},若user.name不为空则显示本身的值,否则显示vakin 
${user.name?default('vakin')},同上 
${user.name???string(user.name,'vakin')},同上

判断是否存在,通过exists关键字或者"??"运算符。都将返回一个布尔值 
user.name?exists 
user.name?? 

显示日期类型字符串:
${(base.createTime?string("yyyy-MM-dd HH:mm:ss"))!'无数据 '}

  8、对list里面的自定义对象进行排序: 

Collections.sort(depFlightInfos,new Comparator<FlightSearchFlightInfoDto>(){
	@Override
	public int compare(FlightSearchFlightInfoDto dto1, FlightSearchFlightInfoDto dto2) {
		if("departureTime".equals(req.getSortStr())){//比较当地起飞时间
			try {
			String departureTime1 = dto1.getDepartureTime();
			String departureTime2 = dto2.getDepartureTime();
			DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
				Date dt1= format.parse(departureTime1);
				Date dt2= format.parse(departureTime2);
				if("ASC".equals(req.getSortType().toUpperCase())){
					return dt1.compareTo(dt2);
				}else{
					return dt2.compareTo(dt1);
				}
			} catch (ParseException e) {
				logger.error(ExceptionUtils.getStackTrace(e));
			}
		}else if("differentPrice".equals(req.getSortStr())){//比较差价
			if(CollectionUtils.isNotEmpty(dto1.getSeats())&& CollectionUtils.isNotEmpty(dto2.getSeats())){
				BigDecimal  diffPrice1 = dto1.getSeats().get(0).getDifferentPrice();
				BigDecimal  diffPrice2 = dto2.getSeats().get(0).getDifferentPrice();
				if("ASC".equals(req.getSortType().toUpperCase())){
					return diffPrice1.compareTo(diffPrice2);
				}else{
					return diffPrice2.compareTo(diffPrice1);
				}
			}
			return 0;
		}
		return 0;
	}
});
return depFlightInfos;
 

9、使用bigDecimal进行小数点的转化,四舍五入等:

hotelPrice.setScale(0, BigDecimal.ROUND_UP)   直接往上取0位小数
10、ajax请求报400错误,以为是找不到url的问题,在浏览器输入可以输出结果。然后百度发现是因为请求的对象数据太长 了!!
错误原因可能是请求头不符合协议标准,一般都是由于cookie过长导致。
An http 400 bad request error means the server thinks your web browser is not obeying all the HTTP protocol rules.
11、从java文件获取相对位置的文件:
    String jsonFile = FitSdpClientTest.class.getResource("../../../../../../json/sdpclient.testSearchProductGoodsInfo.txt").getFile();
12、删除svn下面的文件:
直接在cmd中执行下面的命令 ----------红色替换为对应的文件夹
for /r D:\test %i in (.svn) do rd /s /q %i
13、简单的js校验
$(document).ready(function() { 
	$('input[valid]').each(function(){ 
	var $this = $(this); 
	var valid = $this.attr('valid'); 
	if(valid=='email'){ 
		$this.blur(function(){ 
		mailValid($this); 
	});  
	}else if(valid=='num'){ 
			$this.keyup(function(){ 
			onlyNum($this[0]); 
		}); 
	} else if(valid=='decimal'){ 
			$this.keyup(function(){ 
			onlyDecimal($this[0]); 
		}); 
	} 
	}); 
}); 

function onlyNum(obj){  
  obj.value=obj.value.replace(/\D/gi,""); 
}  

function onlyDecimal(obj){  
  obj.value=obj.value.replace(/[^\.0-9_]/gi,""); 
}  
 14、关于mysql的查询小陷阱:
写一个查询语句的时候,在mysql数据库中:  where          (  voi.product_main_type_code!=2  )      AND voi.order_no = '111703200000156'
上面的判断,要考虑为空的情况,不然在mysql里面上面的sql查询不出来=null的情况!!
 (voi.product_main_type_code is null || voi.product_main_type_code!=2  )
15、spring加载文件的时候,报错:
加载一个bean的时候,报错:org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.lvmama.lvf.common.trace.TraceContextRecorder] found for dependency:
出错的是一个接口,原来是没有找到对应的impl实现类!!建立一个对应的impl实现类,就可以了!!!
16、oracle数据库中,在一条sql语句里面进行多个统计的sql:
SELECT INTERFACE_KEY,
       COUNT(CASE
               WHEN RESULT IS NULL OR RESULT = '' OR RESULT = 'SUCCESS' THEN
                1
             END) SUCC_COUNT,
       COUNT(CASE
               WHEN RESULT = 'FAIL' THEN
                2
             END) FAIL_COUNT,
       COUNT(*) TOTAL
  FROM T_FAPI_FLOW
 where SEARCH_TIME >=
       to_date('2017-03-01 00:00:00', 'yyyy-MM-dd hh24:mi:ss')
   and INTERFACE_KEY = 'ACTUALTIME_TRAFFIC_UNION_QUERY_INFO'
 GROUP BY INTERFACE_KEY
 ORDER BY TOTAL DESC
 17、jquery UI中的常用代码,包括表格,以及弹出框,dialog:
列的格式化:
 {
                name : 'cityStatus',//有效性
                index : 'cityStatus',formatter:formatValid,
                align : 'center',
                sortable:false
            }

function formatValid(cellvalue, options, rowObject) { 
        return  "INVALID"==cellvalue?"无效":"有效";
     }

多选列表: multiselect : true,
得到多选的列的id集合:
var ids = "";
		if(id==null || id==""){
			ids = $("#vasTransferCityList").jqGrid('getGridParam','selarrrow');
			if(ids.length == 0){
				alert("请选择接送机城市!")
				return false;
			}
		}else{
			ids = id;
		}

弹出框:
<div id="configAddLayer" class="content content1" style="display:none; width: 400px; height: 380px;">
	。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。。。。
	</div>

显示弹出框:
	$('#configEditLayer').dialog({
				title:'修改城市',
				width:600,
				height:400,
				modal:'true'
			});

关闭弹出框:
$("#configAddLayer").dialog('close')  ;
 
18、快速的查看一个日期字符串对应的long,以及一个long对应的日期字符串:在浏览器的console中输入:
long查询对应日期:new Date(1493201002146) 
字符串查long:new Date("2017-05-8").getTime()  	
19、jquery ajax请求:
$.ajax({
		url : payUrl,
		type : 'post',
		dataType : "json",
		contentType : "application/json;",
		data : JSON.stringify({
			orderId : orderIdVal,
			flightOrderNo : orderNoObj,
			orderMainId : orderMainIdVal,
			payerId : paymentIdVal,
			payerName : paymentNameVal
		}),
		success : function(data) {
			 
		},
		error : function(data) {
		 

		}
	});
 20、tomcat的远程调试
在tomcat的 apach/bin/startup.bat开始处中增加如下内容: SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8788  
然后打开eclipse里面的debug中:


 启动tomcat之后,设置java代码里面的断点就可以了。
21、oracle数据库,求两个时间差的天数:
select trunc(ROOM_DATE) - trunc(sysdate) shijiancha,
       to_char(ROOM_DATE, 'yyyy/mm/dd') dd
  from HOTEL_ROOM_ITEM
 order by ROOM_DATE desc
22、java里面的验证码Kaptcha插件,放到linux环境不好用报错,解决办法:
验证码不出来,原来是linux服务器的问题,一行一行打断点,找到原来是font的问题.
去掉font之后,打印exception,然后出现:异常,根据异常做了两件事情:
1、配置临时环境变量:export DISPLAY=localhost:0.0
2、根据异常Could not initialize class sun.awt.X1 ,修改tomcat启动文件catalina.sh!!

 

23、oracle数据库查看数据库版本:select * from v$version;

 

24、使用mybatis自动生成mapper的工具生成mapper文件命令:java -jar mybatis-generator-core-1.3.2.jar -configfile generatorConfig.xml 

 

25、java后台收到中文乱码,一种解决方法: 

temp = new String(temp.getBytes("ISO-8859-1"), "UTF-8") ;

还有可能是因为,页面编码,服务器编码,eclipse设置编码,jsp请求ajax编码等等原因。
 

26、window.open居中显示: 

var openUrl = "";//弹出窗口的url 
var iWidth=800; //弹出窗口的宽度; 
var iHeight=600; //弹出窗口的高度; 
var iTop = (window.screen.availHeight-30-iHeight)/2; //获得窗口的垂直位置; 
var iLeft = (window.screen.availWidth-10-iWidth)/2; //获得窗口的水平位置; 
window.open('http://www.baidu.com',"","height="+iHeight+", width="+iWidth+", top="+iTop+", left="+iLeft);
 

 27、得到一个java文件在服务器上面的路径: 

System.out.println(ConnectionUtil.class.getResource("/resource/jchem.properties").getPath() );  
 

28、oracle强大的导出工具expdp:

expdp scott/tiger@orcl directory=dpdata1 dumpfile=expdp.dmp Tables=emp query='WHERE deptno=20';

exp scott/tiger@orcl file=expdp.dmp Tables=emp

 29、递归创建文件夹:

public static void mkDir(File file){
if(file.getParentFile().exists()){
file.mkdir();
}else{
mkDir(file.getParentFile());
file.mkdir();
}
}
public static void main(String[] args) {
File file = new File("c:/2/1/s/e");
mkDir(file);
}

 30、jsp中使用struts标签,选择下拉菜单:

  <select name="object.hintType" value='${object.hintType}'>
   <option value="0" <c:if test="${object.hintType==0}">selected</c:if>>
       不再提醒
   </option>
   <option value="1" <c:if test="${object.hintType==1}">selected</c:if>>
       继续提醒
   </option>
      </select>

 31、文本出现下划线:

style="text-decoration:underline"

 32、工具包进行反射的调用: 

BeanUtils.setProperty(hotelForm,propertyName, img);
  33、把class文件夹下面的class生成jar包: 
直接在classes文件夹里面cmd命令:::
jar -cvf aaaaaa.jar com/*         

  34、读取java属性文件: 

static {
		PropertyResourceBundle config = (PropertyResourceBundle) PropertyResourceBundle
				.getBundle("SystemConfig");
		ACCOUNT = config.getString("zhongtai_account");
		PASSWORD = config.getString("zhongtai_password");
		IP = config.getString("zhongtai_ip"); 
	}
 

 

35、查询oracle数据库中全部表名:

 

select * from all_tab_comments t where t.OWNER = 'HOLIDAYBAK'
 

36、金额大写的js函数: 

$(function(){ 
	$('input[isMoney]').each(function(){
		var $this = $(this);
		$this.next().html(numToCny($this.val()));
	});
	$('input[isMoney]').keyup(function(){
		var $this = $(this);
		$this.next().html(numToCny($this.val()));
	});
});

function numToCny(num)
{
    if (isNaN(num) || num > Math.pow(10, 12))
        return ""
    var cn = "零壹贰叁肆伍陆柒捌玖"
    var unit = new Array("拾百千", "分角")
    var unit1 = new Array("万亿", "")
    var numArray = num.toString().split(".")
    var start = new Array(numArray[0].length - 1, 2)
    function toChinese(num, index)
    {
        var num = num.replace(/\d/g, function($1)
        {
            return cn.charAt($1) + unit[index].charAt(start-- % 4 ? start % 4 : -1)
        })
        return num
    }
    for (var i = 0; i < numArray.length; i++)
    {
        var tmp = ""
        for (var j = 0; j * 4 < numArray[i].length; j++)
        {
            var strIndex = numArray[i].length - (j + 1) * 4
            var str = numArray[i].substring(strIndex, strIndex + 4)
            var start = i ? 2 : str.length - 1
            var tmp1 = toChinese(str, i)
            tmp1 = tmp1.replace(/(零.)+/g, "零").replace(/零+$/, "")
            tmp1 = tmp1.replace(/^壹拾/, "拾")
            tmp = (tmp1 + unit1[i].charAt(j - 1)) + tmp
        }
        numArray[i] = tmp
    }
    numArray[1] = numArray[1] ? numArray[1] : ""
    numArray[0] = numArray[0] ? numArray[0] + "元" : numArray[0], numArray[1] = numArray[1].replace(/^零+/, "")
    numArray[1] = numArray[1].match(/分/) ? numArray[1] : numArray[1] + "整"
    return numArray[0] + numArray[1]
}
  37、struts的循环list,然后再做判断标签: 
<s:iterator value="list" var="stu"    status=“aaa”>
     <s:property value="#stu.hasImg" />
<s:if test="#stu.hasImg==1">   //注意这里,没有大括号
    </s:if>
    <s:else>无图片</s:else>
</s:iterator> 

关于status属性:
#status.odd 是否奇数行 
#status.count 当前行数 
#status.index 当前行的序号,从0开始『#status.count=#status.index+1』 
#status.first 是否第一行 
#status.last 是否最后一行 
#status.modules(int) 当前行数取模 
判断方法是:
<s:iterator value="list" status="st">
<s:if test="#status.last">
........
</s:if>
</s:iterator>
 38、关于oracle的行列转,10g中换有一个函数: wmsys.wm_concat

 

38、poi中合并单元格 

CellRangeAddress region = new CellRangeAddress((short)start, (short) (start+i-1), cols[ii],  (cols[ii])); 
sheet.addMergedRegion(region);

在用poi在EXECL报表设计的时候,遇到单元格合并问题,用到一个重要的函数:
CellRangeAddress(int, int, int, int)
参数:起始行号,终止行号, 起始列号,终止列号
 39、oracle中的job,以及创建一个执行job的存储过程: 
variable update_order_job number;
begin
   dbms_job.submit(:update_order_job, 'PROCE_UPDATE_ORDER;', sysdate, 'sysdate+1/1440');--每1执行PROCE_UPDATE_ORDER存储过程
end;



创建JOB执行存储过程:
#1,--创建Job
variable update_order_job number;
begin
   dbms_job.submit(:update_order_job, 'PROCE_UPDATE_ORDER;', sysdate, 'sysdate+1/1440');--每1执行PROCE_UPDATE_ORDER存储过程
end;  
#2,--创建Job或:
declare  update_order_job number;
begin
   dbms_job.submit(update_order_job, 'PROCE_UPDATE_ORDER;', sysdate, 'sysdate+1/1440');--每1执行PROCE_UPDATE_ORDER存储过程
end;  
#3,删除Job
begin
   dbms_job.remove(23);--和select * from user_jobs; 中的job值对应,看what对应的过程
end;   
#4,执行Job
begin
   dbms_job.run(24);
end;  
#5,查看Job
select * from user_jobs; 
 40、导出oracle中的全部的序列的sql语句: 
select 'CREATE SEQUENCE '||t.sequence_name||' minvalue '||t.min_value||' maxvalue'||' '||t.max_value||' increment by '||t.increment_by ||' start with '||(t.last_number)||' nocache order nocycle;' from user_sequences t
 41、在js里面上传一个富文本编辑器中的含有特殊转义字符,post到后台要进行字符串的转义: 
function replace(str) {
    return str.replace(/&amp;nbsp;/g, '').replace(/&amp;/g, '').replace(
            /&nbsp;/g, '');
}

return replace(encodeURI(vals)); 
 

42、log4j的写法:很多很多的logger import不要写错: 

import org.apache.log4j.Logger;
private static Logger logger = Logger.getLogger(ToBigOrderServiceImpl.class);

 43、mybatis中执行存储过程: 

<select id="copyProduct" statementType="CALLABLE">  
    <![CDATA[  
        {call PROCE_COPY_PRODUCT (#{productId,mode=IN,jdbcType=VARCHAR})}  
    ]]>  
    </select> 

对应的Mapper接口文件: 
    void copyProduct(String productId);
 44、linux中设置java环境变量:
export JAVA_HOME=/usr/share/jdk1.6.0_14 
export PATH=$JAVA_HOME/bin:$PATH 
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
 45、设置tomcat使用的java内存: 
JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=256m -XX:PermSize=512m -XX:MaxPermSize=512m"
 46、通过wsdl2java.bat生成的webservice客户端,然后调用方法示例如下:
MobileCodeWS mobileCodeWS = new MobileCodeWSLocator();
        MobileCodeWSSoap mobileCodeWSSoap;
        try {
            mobileCodeWSSoap = mobileCodeWS.getMobileCodeWSSoap();

            String mobileCodeInfo = mobileCodeWSSoap.getMobileCodeInfo(
                    "18721266529", null);
            System.out.println(mobileCodeInfo);

        } catch (ServiceException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (RemoteException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
 47、修改oracle数据库的用户名密码:alter user muhol_psm2 identified by eholiday_psm2 

48、在spring容器加载完毕之后,执行一段代码: 

public class InstantiationCaches implements
        ApplicationListener<ContextRefreshedEvent> {

    @Override
    public void onApplicationEvent(ContextRefreshedEvent event) {
        if (event.getApplicationContext().getParent() == null) {
            System.out.println("初始化缓存容器.");

            new Thread(new Runnable() { 
                @Override
                public void run() {
                    ICacheInit tfProductCache = (ICacheInit) SpringContextUtil
                            .getBean("tfProductDetailInfoCache");
                    tfProductCache.initCache(); 
                } 
            }).start(); 
        }
    }
}

在spring配置文件中添加:
    <bean class="com.atoz.util.InstantiationCaches">
    </bean>
 49、spring的自动加载注解:@Autowired 
在spring的注解注入中,可以使用@Autowired
如果要修改对应的注解不是默认使用名称,就:
@Autowired 
@Qualifier("tfProductDetailInfoCache")
private ITfProductDetailInfoService tfProductDetailInfoService;
 50、异步上传图片的js:ajaxfileupload.js

 

51、oracle中关于用户的一些强大的sql语句: 

--删除用户之后 先锁定用户
alter user muholb2c_psm3 account lock;

--找到当前用户全部的会话id
SELECT * FROM V$SESSION WHERE USERNAME='MUHOLB2C_PSM3' 

--杀掉全部的会话
alter system kill session  '211,35901'

--删除用户
drop user muholb2c_psm3 cascade

--在指定表空间上面创建用户
create user muholb2c_psm3
          identified by muholb2c_psm3
         default tablespace TBS_PSM_B2C
          quota 10M on TBS_PSM_B2C ;

--对用户授权     
grant DBA to muholb2c_psm3;
 

 

52、Md5密码加盐处理:一般是密码直接md5处理,但是如果在密码前面加上一个变化的值,例如(用户名+密码)然后在进行md5加密,就安全多了。因为即使密码一样的情况,也不会被加密成为一样的数据(因为用户名不一样。。)

 

53、tomcat7启动报错:

java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addFilter

 

解决方法为:在Tomacat7的context.xml文件里的<Context>中加上<Loader delegate="true" />


True,表示tomcat将遵循JVM的delegate机制,即一个WebAppClassLoader在加载类文件时,会先递交给SharedClassLoader加载,SharedClassLoader无法加载成功,会继续向自己的父类委托,一直到BootstarpClassLoader,如果都没有加载成功,则最后由WebAppClassLoader自己进行加载。
False,表示将不遵循这个delegate机制,即WebAppClassLoader在加载类文件时,会优先自己尝试加载,如果加载失败,才会沿着继承链,依次委托父类加载。

 

54、查看是否打开8788端口:netstat -an | grep 8788

 

55、mybatis插入的时候,设置主键根据序列设置值:

 <insert id="insert" parameterType="com.atoz.pojo.ZoneTravelLine" >
   <selectKey resultType="java.lang.Integer" keyProperty="id" order="BEFORE" >
      select SEQ_zone_travel_line.nextval from dual
    </selectKey>
    insert into ZONE_TRAVEL_LINE (ID, ZONEID, TRAVEL_LINE
      )
    values (#{id,jdbcType=DECIMAL}, #{zoneid,jdbcType=DECIMAL}, #{travelLine,jdbcType=DECIMAL}
      )
  </insert>
 56、动态编译部署java工程,修改java代码不重启工程:配置jrebel插件
-Xms512m -Xmx512m -XX:PermSize=64M -XX:MaxPermSize=256M -noverify -javaagent:E:/jr-ide-idea/lib/jrebel/jrebel.jar -Drebel.log=c:\rebel.log  -Drebel.dirs=D:\xiujiala\Webroot\WEB-INF\classes
 57、根据beanUtils写的一个进行copy类的方法:
public class BeanCopy {
    public static <T> T copyBeanFrom(Object src, Class<T> clazz) {
        try {
            T ans = clazz.newInstance();
            BeanUtils.copyProperties(ans, src);
            return ans;
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException(e.getMessage());
        }
    }
}

测试类:
        SsoUserLoginToken query = new SsoUserLoginToken();
        query.setCustomerid("123123");
        query.setLoginType("123");
        query.setMobile("3222222222222");

        UserLoginTokenBean ans = BeanCopy.copyBeanFrom(query,
                UserLoginTokenBean.class);

        System.out.println(ans.getCustomerid());
 58、js计算除法,有精度控制 下面是返回123.45% 精度为2
function accDiv(arg1,arg2) {
        var t1 = 0,t2 = 0,r1,r2;
        try {
            t1 = arg1.toString().split(".")[1].length
        } 
        catch (e) {
        }

        try {
            t2 = arg2.toString().split(".")[1].length
        } 
        catch (e) {
        }

        with (Math) {
            r1 = Number(arg1.toString().replace(".",""))
            r2 = Number(arg2.toString().replace(".",""))
            var aa = (r1 / r2) * pow(10,t2 - t1)*100;
            return aa.toFixed(2);
        }
    }
 
 
  • 大小: 39.9 KB
分享到:
评论

相关推荐

    java web开发实战1200例第i卷

    《Java Web开发实战1200例第I卷》是一本深入浅出的Java Web编程教程,涵盖了丰富的实例,旨在帮助读者从实践中掌握这门技术。这个压缩包包含的"1-12源码"是书中的前12个示例项目的完整源代码,为学习者提供了实际...

    《Java Web开发速学宝典》李宁

    总的来说,《Java Web开发速学宝典》的随书光盘代码为读者提供了一个很好的学习平台,通过实际操作和代码分析,可以有效地掌握Java Web开发的基本技能和常用技术。在学习的过程中,不断练习和实践,将理论知识转化为...

    java web开发框架

    在Java Web开发中,这通常通过JavaBeans或Entity类来实现,它们封装了数据库操作和其他业务服务。 2. **视图(View)**:视图是用户界面,负责展示数据。Java Web框架提供了多种视图技术,如JSP(JavaServer Pages...

    Java Web开发实战经典.rar

    《Java Web开发实战经典》这本书很可能包含了以上所有或大部分知识点的详细讲解,通过阅读并实践书中的例子,初学者能够全面了解并掌握Java Web开发的核心技能。无论你是希望成为一名全栈工程师,还是专注于前端或...

    Java Web开发(PDF版)

    Java Web开发是编程领域中的一个重要分支,主要涉及...总之,这份"Java Web开发"的PDF教程应该会涵盖上述的很多内容,逐步引导初学者进入这个领域。通过深入学习,你可以构建动态、交互式的Web应用,满足各种业务需求。

    Java.Web开发学习手册

    在本段内容中,包含了关于Java Web开发学习的多个知识点,其中包括Java Web入门、Java程序员的薪资水平、Java学习的迷茫与解决途径。首先,我们来详细说明Java Web入门的概念以及为什么Java Web是Web开发中的一个...

    Java Web开发技术大全.zip

    Java Web开发技术是构建互联网应用程序的关键领域,涵盖了服务器端编程、网页交互以及数据库管理等多个方面。这个名为"Java Web开发技术大全.zip"的压缩包显然包含了一整套的学习资源,旨在帮助开发者深入理解和掌握...

    Learn Java for Web Development(java Web开发)

    Java Web开发是当今最流行、最活跃、也最重要的编程和开发活动之一。从单一网页到支持电子商业的网站再到完整的Web应用程序,Java编程语言及其框架让开发人员在Web应用程序的开发过程中具有很大的灵活性和生产力。 ...

    Java WEB开发中的中文乱码问题解决方法.pdf

    在Java Web开发中,中文乱码...通过以上设置,可以在很大程度上避免在Java Web开发过程中遇到的中文乱码问题。当然,每个项目具体情况可能不同,需要根据实际情况灵活调整编码设置,以达到最佳的编码兼容性和一致性。

    Java web 整合开发实战

    Spring框架是Java Web开发中广泛应用的MVC框架,提供了依赖注入、AOP(面向切面编程)等功能,极大地简化了应用的架构设计。在第二章中,你可能会学习Spring的配置、bean管理以及如何将它与Servlet和JSP集成。 在...

    Java Web轻量级开发全体验11代码

    在Java Web开发领域,"轻量级"一词通常指的是不依赖大型、重量级的服务器端框架,而是采用更加灵活、高效和小巧的工具集来构建应用程序。这样的开发方式有助于提高开发效率,减少资源消耗,并易于维护。本主题聚焦于...

    Java及Web开发参考手册大全

    这个名为“Java及Web开发参考手册大全”的压缩包文件很可能包含了一系列有关Java编程语言和Web开发的详细指南、教程以及最佳实践文档。以下是对这些主题的一些核心知识点的详细说明: ### Java编程语言 #### 基本...

    Java Web开发教程

    在本教程中,我们将深入探讨Java Web开发的核心概念、技术和工具。 首先,Java Web开发的基础是Java语言,它是一种面向对象的编程语言,以其稳定性和跨平台特性闻名。在Web开发中,我们主要使用Java的Servlet和JSP...

    Java Web开发从初学到精通随书光盘源码

    Web开发中,Strurts+Hibemate+Spring已经成为轻量级开发J2EE的标准配置,但一些Ajax和JSF框架也应用很广泛,这些是目前Java程序员必须掌握的技能。《Java Web开发从初学到精通》的编写顺序从基础到框架,先让读者...

    Tomcat与Java.Web开发技术详解

    最后,“tomcatjava.webkfjs_600it”很可能是一份完整的Tomcat与Java.Web开发的电子书,包含了详细的理论知识、实践示例和问题解决方案。 学习这些内容可以帮助开发者建立扎实的Java Web开发基础,理解Web应用的...

    基于Java web开发的网上书店系统

    总之,基于Java Web开发的网上书店系统是一个综合性的项目,涵盖了Web开发的多个方面,对于学习和实践Web开发技术具有很高的价值。通过这个项目,开发者不仅可以提升编程技能,还能深入理解如何将技术应用到实际业务...

    Java Web开发详解:XML+DTD+XML Schema+XSLT+Servlet3.0+JSP2.2深入剖析与实例应用/孙鑫编著

    《Java Web开发详解——XML+DTD+XML Schema+XSLT+Servlet3.0+JSP2.2深入剖析与实例应用》语言生动、通俗易懂、讲解细致,大部分章节都提供了多个例子,而且很多例子都是目前Web开发中经常使用的功能,具有相当高的...

    Java Web整合开发与项目实践

     本书讲解细致、通俗易懂,大部分章节都提供了多个例子,且很多示例都是目前Web开发中经常使用的功能,具有相当高的实用价值。本书适合作为Java Web开发自学者的学习用书,也可以作为从事Java Web开发的程序员参考...

    java web开发常用文档

    java web开发当中常用到的帮助文档,包括java api,DHTML中文文档,css中文文档,javascript中文文档,打包一次性发上来方便大家开发查阅,在CSDN上发现好多资源积分要的特高,绝对坑爹,以免大家受我这样的苦,免积分...

    Java+Web开发实践教程ppt课件Java实用源码整理learns

    【Java+Web开发实践教程】是一门深入浅出的课程,旨在帮助学习者掌握Java语言在Web开发中的应用。这门教程通过PPT课件的形式,结合Java实用源码的整理,提供了丰富的学习材料,适合初学者和有一定基础的开发者进行...

Global site tag (gtag.js) - Google Analytics