一个java工程师的前6年工作部分技术积累(一)

一、  JavaScript

1、判断输入0-1之间的小数

function checkPower(power)

{

var str = power.value;

var reg

=

/(^[1]$)|(^[1]\.[0]{1,2}$)|(^[0]\.[1-9][0-9]{0,1}$)|(^[0]\.[0-9][1-9]$)/;

if(!reg.test(str))

{

alert(‘权重必须为大于0小于或等于1的小数!‘);

power.focus();

return false;

}

return true;

}

2、判断校验输入的是否是以逗号分隔的的数字

形式如:0.34,0.43,0.23 的js

function cursorCheck(obj)          {

var str = obj.value;

var cursor = getCurror(obj); //光标位置

var cs = window.event.keyCode; //光标中包含的字符ASII码

if(cursor==0)

{

if(cs==44||cs==46)

{

return false;

}

}

else

{

var c = str.substring(cursor-1,cursor);

if((c==‘.‘||c==‘,‘)&&(cs==44||cs==46))

{

return false;

}

if(cs==46)

{

var t = str.substring(0,cursor);

var m = t.substring(t.lastIndexOf(‘,‘)+1);

if(m.indexOf(‘.‘)>-1)

{

return false;

}

}

}

return true;

}

3、js为table新添加一行

var detailT = document.all("myDivTable");

var newRow = detailT.insertRow();

var cell0 = newRow.insertCell(0);

cell0.width = "50";

cell0.align = "center";

var chbx = "<input style=‘width:16px‘ type=‘checkbox‘ name=‘chkbox‘ value=‘"

//+achieveKind.split("|")[0]

+achieveKind         +","+costUpperValue+","+costLowerValue+","+choujinKind+","+choujinValue+"," + document.all.relationId.value + "‘/>";

cell0.innerHTML = chbx;

var cell1 = newRow.insertCell(1);

cell1.width = "82px";

cell1.align = "center";

cell1.innerText = achieveName;

var cell4 = newRow.insertCell(2);

cell4.width = "135px";

cell4.align = "center";

cell4.innerHTML = costUpper;

var cell4 = newRow.insertCell(3);

cell4.width = "135px";

cell4.align = "center";

cell4.innerHTML = costLower;

var cell4 = newRow.insertCell(4);

cell4.width = "122px";

cell4.align = "center";

if (numberOrFormula[1].checked)//公式

{

cell4.title = document.all.relationId.options[document.all.relationId.selectedIndex].text;

}

cell4.innerHTML = choujinText;

4、日期格式限定

SimpleDateFormat format = new SimpleDateFormat();

format.applyPattern("yyyy-MM-dd");

String endDateStr = format.format(new Date());

String starDateStr = endDateStr.substring(0,8)+"01";

5、js保留小数点后2位

targetScore.toFixed(2);

6、定义锚点

<a name=‘anchor‘> </a>

<a href=‘anchor‘</a>

7、url传递乱码问题

function replaceStr(str)

{

str = str.replace(/%/g,"%25");

str = str.replace(/&/g,"%26");

str = str.replace(/\+/g,"%2B");

return str;

}

8、js判断某一路径下文件是否存在

var fso;

fso=new ActiveXObject("Scripting.FileSystemObject");

if(!fso.FileExists(file[i].value))

9、file标签,文本域不能输入

contentEditable=‘false‘

10、       js代码动态执行eval

eval("var mydate = new Date();");

eval可以将字符串生成语句执行,和SQL的exec()类似。

eval的使用场合是什么呢?有时候我们预先不知道要执行什么语句,只有当条件和参数给时才知道执行什么语句,这时候eval就派上用场了。举个例子:

我们要做一个function(),功能是输入网页中两个个对象的名称,然后程序就将这两个对象的值联接起来输出。

function output(a,b)

{

var tmpa,tmpb;

tmpa=document.all.a.value;

tmpb=document.all.b.value;

document.write(tmpa+tmpb);

}

output(‘input1‘,‘input2‘);

这样你执行的时候就会提示错误“document.all.a不是对象”以及“document.all.b不是对象”。原来javascript把a和b当成对象名称了,怎样能让javascript把a里面的值作为对象名称呢?这时候就要用eval了,把代码改成这样:

function output(a,b)

{

var tmpa,tmpb;

tmpa=eval("document.all."+a+".value");

tmpb=eval("document.all."+b+".value");

document.write(tmpa+tmpb);

}

output(‘input1‘,‘input2‘);

这样javascript就会先取出a,b的值,然后和前面的document.all.以及后面的.value组合运行,于是就可以

顺利取出input1和input2的值,我们的目的达到了。

11、       div样式

<div style="position:absolute; width:220; height:120; top:70; left:470" >

div 在固定位置显示

12、       table样式

<fieldSet style="width:650px;text-align:left;font-family: Verdana;padding:5px;">

<legend><font style="text-align:center;font-family:arial;font-weight:bold">基本信息</font></legend>

13、       弹模态窗口

window.showModalDialog(‘storeInfo.html‘,window,‘dialogHeight:300px;dialogWidth:500px;center:yes‘);

14、       Frameset设置

<html>

<head>

<title>

test frame

</title>

</head>

<frameset rows="270,*" border="10">

<frameset cols="20%,*">

<frame name="query1">

<frame name="query2">

</frameset>

<frameset rows=40%,*%>

<frameset cols="50%,50%" >

<frame name="list1">

<frame name="list2">

</frameset>

<frame name="deatil">

</frameset>

</html>

15、       js  boolean分析

定义变量  var tab;不赋值  tab为undefined;

Boolean 表达式

一个值为 true 或者 false 的表达式。如果需要,非 Boolean 表达式也可以被转换为 Boolean 值,但是要遵循下列规则:

所有的对象都被当作 true。

当且仅当字符串为空时,该字符串被当作 false。

null 和 undefined 被当作 false。

当且仅当数字为零时,该数字被当作 false。

16、       刷新页面

document.location.replace =当前页面location更新

17、       删除dom元素

document.getElementById("calendarBt1").removeNode(true);

18、       js 中typeof() 函数的用法

typeof 运算符把类型信息当作字符串返回。typeof 返回值有六种可能: "number," "string," "boolean," "object," "function," 和 "undefined."

function delTheLine(){

document.all[‘myform‘].reset();

}

function test(){

var myArray =new Array();

var inputObj = document.getElementById(‘te‘);

var str =‘thisisstring‘;

alert(‘ the type of(myArray) is  ‘+typeof(myArray));

alert(‘ the type of(inputObj) is  ‘+typeof(inputObj));

alert(‘ the type of(str) is ‘+typeof(str));

alert(‘ the type of(str) is ‘+typeof(str/1));

alert(‘ the type of(1==2) ‘+typeof(1==2));

alert(‘ the type of(delTheLine)‘ +typeof (delTheLine));

19、       数组添加,数组内元素连接

rolesArray.push(options[i].value);

rolesArray.join("~");

20、       刷新父页面

window.onunload=function(){

if(opener!=undefined){

opener.refresh();

}

}

21、       Js操作文本域内容连接(dom的使用)

function doHighLight(obj)

{

var code = obj.value;

obj.value = "";

var factors = document.getElementById("factor");

var xx      = new CLASS_HIGHLIGHT(code,factors);

var expSpan = document.createElement("SPAN");

expSpan.innerHTML = xx.HighLight();

obj.appendChild(expSpan);

}

22、       根据子页面的大小改变父页面的大小

parent.document.body.style.height = document.body.scrollHeight+1000;

23、       js等待与重复执行

例如:tttt=setTimeout(‘northsnow()‘,1000);

clearTimeout(tttt);

或者:

tttt=setInterval(‘northsnow()‘,1000);

clearInteval(tttt);

24、       js为页面元素添加属性、方法

添加属性:

document.getElementById("comment").setAttribute("readOnly","readonly");

document.getElementById("comment").removeAttribute("readOnly");

添加方法:

img.attachEvent(‘onclick‘,show);

其中img为页面对象。

25、       iframe 自适应高度

parent.document.all("框架ID名").style.height=document.body.scrollHeight;

parent.document.all("框架ID名").style.width=document.body.scrollWidth;

详细出处参考:http://www.jb51.net/article/15780.htm

26、       动态执行标签onclick事件

var funStr = document.getElementById("faultId");

funStr.click();

二、  CSS样式

1、readOnly

{

border:1px solid #eeeeee;

}

2、ellipsis

{

overflow:hidden;white-space:nowrap;text-overflow:ellipsis;

}

三、  Jsp

1、获取文件绝对路径

${pageContext.request.contextPath}

2、打印、预览

<OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" height=0 id=wb name=wb width=0></OBJECT>    html自带的

wb.execwb(7,1);////预览

window.print();////打印

3、table 列数据换行

style="word-break: break-all; word-wrap:break-word;"

4、jsp传递中文出乱码解决方案

templateName = new String(request.getParameter("templateName").getBytes("ISO-8859-1"),"GBK");

5、jsp标签对象添加方法

oPopup.document.body.attachEvent("oncontextmenu",function(){return false});

6、读文件

BufferedReader log = (BufferedReader) request.getAttribute("log");

char[] b = new char[2];

StringBuffer s = new StringBuffer(200);

String i = "";

while ((i = log.readLine()) != null)

{

out.write(i);

out.write("</br>");

}

log.close();

7、当前页面屏蔽右键

<BODY oncontextmenu="return false;" onclick="listMenu.style.visibility = ‘hidden‘;">

8、右键菜单显示

function showMenu()

{

var listMenu = document.getElementById("listMenu");

var rightedge = document.body.clientWidth-event.clientX;

var bottomedge = document.body.clientHeight-event.clientY;

if(rightedge < listMenu.offsetWidth)

listMenu.style.left = document.body.scrollLeft + event.clientX - listMenu.offsetWidth;

else

listMenu.style.left = document.body.scrollLeft + event.clientX;

if (bottomedge < listMenu.offsetHeight)

listMenu.style.top = document.body.scrollTop + event.clientY - listMenu.offsetHeight;

else

listMenu.style.top = document.body.scrollTop + event.clientY;

listMenu.style.visibility = "visible";

listMenu.style.display="block";

}

Listmenu 为div

四、  Java

1、获得系统字符集

System.out.println("System.getProperty("file.encoding"));

2、数据格式化

NumberFormat nf = new DecimalFormat("0.00");

nf.format(str);

不只可以转化为double类型,还可以是其他形式

3、创建文件

File file = new File(System.getProperty("java.io.tmpdir"), filename);

System.getProperty("java.io.tmpdir")获得发布图片文件路径

本机为 D:\Tomcat 5.0\temp\jfreechart-24660.png

4、Java调用存储过程

1、创建CallableStatement

2、赋值

CallableStatement pst = null;

sql_SltChkp.append("{call svc_state_audit_p(?,?,?,?,?,sysdate,?,?,?)}");

pst = conn.prepareCall(sql_SltChkp.toString());

pst.setString(1, cityCode);

pst.setString(2, dealerID);

pst.registerOutParameter(3, java.sql.Types.INTEGER);

pst.registerOutParameter(4, java.sql.Types.VARCHAR);

pst.executeQuery();

os_Code = String.valueOf(pst.getInt(12));

os_Msg = pst.getString(13);

5、编写标签

1、标签java文件

2、标签配置文件

3jsp 路径

java:

package com.neusoft.crm.product.common.taglibs;

import javax.servlet.jsp.JspException;

import javax.servlet.jsp.tagext.TagSupport;

import com.neusoft.tdframework.common.GlobalParameters;

import com.neusoft.tdframework.common.data.ParamObjectCollection;

import com.neusoft.tdframework.common.data.ParamObject;

import com.neusoft.tdframework.log.SysLog;

public class BaseSelectTag extends TagSupport {

public BaseSelectTag() {

super();

}

private String tagName = null;// 下拉列表的名字

private String selectFlag = null;// 是否有”请选择“一项

private String indiscriminating = null;// 是否将“请选择“改为其它的文本,如果为"true"改为"不区分";如果是"1"改为"全省";如果是"2"改为"全部";

private ParamObjectCollection selectColl = null;// 选择字段

private String selectvalue = null;// 显示项

private String selectType = null;

private String fixlength; // 固定长度

private String  // onclick的响应方法

private String onchange; // onchange的响应方法

private String disabled; // 不能改变

private String isAcceptServiceKind; // 是否受理缴费的服务类型

public int doEndTag() throws JspException {

try {

pageContext.getOut().write(getSelectXML());

} catch (Exception e) {

e.printStackTrace();

}

return super.doEndTag();

}

public int doStartTag() throws JspException {

return super.doStartTag();

}

private synchronized String getSelectXML() {

StringBuffer buf = new StringBuffer();

buf.append("<SELECT name=‘" + tagName + "‘");

if (fixlength != null && !fixlength.trim().equals("")) {

buf.append(" style=‘width:" + fixlength + "‘");

}

if (onclick != null && !onclick.trim().equals("")) {

buf.append("  + onclick + "‘");

}

if (onchange != null && !onchange.trim().equals("")) {

buf.append(" onchange=‘" + onchange + "‘");

}

if (disabled != null && !disabled.trim().equals("")) {

buf.append(" disabled=‘" + disabled + "‘");

}

buf.append("> \n");

try {

if (selectFlag.equals("true")) {

if ("true".equals(indiscriminating)) {

buf

.append("<option value=‘-1‘>\n<caption>不区分</caption>\n</option>");

} else if ("1".equals(indiscriminating)) {

buf

.append("<option value=‘‘>\n<caption>全省</caption>\n</option>");

} else if ("2".equals(indiscriminating)) {

buf

.append("<option value=‘‘>\n<caption>全部</caption>\n</option>");

} else {

buf

.append("<option value=‘‘>\n<caption>请选择</caption>\n</option>");

}

}

if (isAcceptServiceKind != null

&& isAcceptServiceKind.equals("true")) {

buf

.append("<option value=‘15‘>\n<caption>CDMA1X业务</caption>\n</option>");

}

if (selectColl == null) {

buf

.append("<option><value></value><caption></caption></option>");

} else {

for (int i = 0; i < selectColl.getRowCount(); i++) {

ParamObject vo = (ParamObject) selectColl.getElement(i);

if (selectvalue != null && selectvalue.length() != 0

&& selectvalue.equals(vo.getId())) {

buf.append(" <option value=‘" + vo.getId()

+ "‘ selected> \n");

buf.append("     <caption>" + vo.getName()

+ "</caption> \n");

buf.append(" </option> \n");

continue;

}

buf.append("<option value=");

buf.append(vo.getId());

buf.append(">\n");

buf.append("<caption>");

buf.append(vo.getName());

buf.append("</caption>\n");

buf.append("</option>\n");

}

buf.append("</SELECT> \n");

}

} catch (Exception e) {

SysLog.writeLogs("point", GlobalParameters.ERROR, "getItemInfoXml"

+ e.getMessage());

}

return buf.toString();

}

/**

* @return Returns the selectColl.

*/

public ParamObjectCollection getSelectColl() {

return selectColl;

}

/**

* @param selectColl

*            The selectColl to set.

*/

public void setSelectColl(ParamObjectCollection selectColl) {

this.selectColl = selectColl;

}

/**

* @return Returns the selectFlag.

*/

public String getSelectFlag() {

return selectFlag;

}

/**

* @param selectFlag

*            The selectFlag to set.

*/

public void setSelectFlag(String selectFlag) {

this.selectFlag = selectFlag;

}

/**

* @return Returns the selectvalue.

*/

public String getSelectvalue() {

return selectvalue;

}

/**

* @param selectvalue

*            The selectvalue to set.

*/

public void setSelectvalue(String selectvalue) {

this.selectvalue = selectvalue;

}

/**

* @return Returns the tagName.

*/

public String getTagName() {

return tagName;

}

/**

* @param tagName

*            The tagName to set.

*/

public void setTagName(String tagName) {

this.tagName = tagName;

}

/**

* @return Returns the selectType.

*/

public String getSelectType() {

return selectType;

}

/**

* @param selectType

*            The selectType to set.

*/

public void setSelectType(String selectType) {

this.selectType = selectType;

}

public String getFixlength() {

return fixlength;

}

public void setFixlength(String fixlength) {

this.fixlength = fixlength;

}

public String getOnchange() {

return onchange;

}

public void setOnchange(String onchange) {

this.onchange = onchange;

}

public String getOnclick() {

return onclick;

}

public void setOnclick(String  {

this.onclick = onclick;

}

public String getDisabled() {

return disabled;

}

public void setDisabled(String disabled) {

this.disabled = disabled;

}

public String getIsAcceptServiceKind() {

return isAcceptServiceKind;

}

public void setIsAcceptServiceKind(String isAcceptServiceKind) {

this.isAcceptServiceKind = isAcceptServiceKind;

}

/**

* @return the indiscriminating

*/

public String getIndiscriminating() {

return indiscriminating;

}

/**

* @param indiscriminating

*            the indiscriminating to set

*/

public void setIndiscriminating(String indiscriminating) {

this.indiscriminating = indiscriminating;

}

}

2、配置文件

<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE taglib

PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"

"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">

<taglib>

<tlibversion>1.0</tlibversion>

<jspversion>1.1</jspversion>

<shortname>om</shortname>

<!-- add by zhaofan begin-->

<tag>

<name>SelectTag</name>

<tagclass>com.neusoft.crm.product.common.taglibs.BaseSelectTag</tagclass>

<bodycontent>empty</bodycontent>

<info>SelectTag</info>

<attribute>

<name>selectFlag</name>

<required>true</required>

<rtexprvalue>true</rtexprvalue>

</attribute>

<attribute>

<name>indiscriminating</name>

<required>false</required>

<rtexprvalue>true</rtexprvalue>

</attribute>

<attribute>

<name>selectColl</name>

<required>true</required>

<rtexprvalue>true</rtexprvalue>

</attribute>

<attribute>

<name>selectvalue</name>

<required>true</required>

<rtexprvalue>true</rtexprvalue>

</attribute>

<attribute>

<name>tagName</name>

<required>true</required>

<rtexprvalue>true</rtexprvalue>

</attribute>

<attribute>

<name>fixlength</name>

<required>false</required>

<rtexprvalue>true</rtexprvalue>

</attribute>

<attribute>

<name>onclick</name>

<required>false</required>

<rtexprvalue>true</rtexprvalue>

</attribute>

<attribute>

<name>onchange</name>

<required>false</required>

<rtexprvalue>true</rtexprvalue>

</attribute>

<attribute>

<name>disabled</name>

<required>false</required>

<rtexprvalue>true</rtexprvalue>

</attribute>

<attribute>

<name>isAcceptServiceKind</name>

<required>false</required>

<rtexprvalue>true</rtexprvalue>

</attribute>

</tag>

<!-- add by zhaofan end-->

</taglib>

3jsp 路径

<%@ taglib uri="/WEB-INF/tld/product.tld" prefix="product"%>

6、获得本类的路径

URL url = this.getClass().getResource("");

7、Iterator使用

for (Iterator iterator = list.iterator(); iterator.hasNext();) {

EmployeeInfoVO vo = (EmployeeInfoVO) iterator.next();

str.append("\t<option value=‘"+vo.getEmployeeId()+"‘ >");

str.append(vo.getEmployeeName());

str.append("</option>\n");

}

8、Action中实现登陆其他系统(HttpClient)

HttpClient httpClient = new HttpClient();

String path = requestd.getContextPath();

String url = "http://127.0.0.1:8080/springdeo/dfdf.jsp";

//post请求

PostMethod postMethod = new PostMethod(url);

//填入各个表单域的值

NameValuePair[] data = {

new NameValuePair("ID", "11"),

new NameValuePair("mtg", "0"),

new NameValuePair("haveCookie", "0"),

new NameValuePair("backID", "30"),

new NameValuePair("psw", "password")

};

//将表单的值放入postMethod中

postMethod.setRequestBody(data);

//执行postMethod

int statusCode = 0;

try {

statusCode = httpClient.executeMethod(postMethod);

} catch (HttpException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

//HttpClient对于要求接受后继服务的请求,象POST和PUT等不能自动处理转发

if (statusCode == HttpStatus.SC_MOVED_PERMANENTLY || statusCode == HttpStatus.SC_MOVED_TEMPORARILY) {

//从头中取出转向的地址

Header locationHeader = postMethod.getResponseHeader("location");

String location = null;

if (locationHeader != null) {

location = locationHeader.getValue();

System.out.println("The page was redirected to:" + location);

}else {

System.err.println("Location field value is null.");

}

return mapping.findForward("query");

}

else {

String str = "";try {

str = postMethod.getResponseBodyAsString();

} catch (IOException e) {

e.printStackTrace();

}

System.out.println(str);

}

postMethod.releaseConnection()

9、Action中读xml文件并将信息写到jsp页面

DocumentBuilderFactory factory = DocumentBuilderFactory

.newInstance();

DocumentBuilder builder = factory.newDocumentBuilder();

URL url = this.getClass().getResource("");

String path = url.getFile().substring(0,

url.getFile().indexOf("WEB-INF"));

String xmlFilePath = path + "WEB-INF/classes/log4j.xml";

Document document = builder.parse(new File(xmlFilePath));

String filePath = null;

Element rootElement = document.getDocumentElement();

/*获得标签列表*/

NodeList list = rootElement.getElementsByTagName("appender");

int lengh = list.getLength();

for (int i = 0; i < lengh; i++)

{

Element  el =(Element)list.item(i);

String name = el.getAttribute("name");

/*循环标签、选择自己要处理*/

if("FILE_DEBUG_DAILY".equals(name))

{

NodeList nl = el.getElementsByTagName("param");

int le = nl.getLength();

for (int j = 0; j < le; j++)

{

Element  eln =(Element)nl.item(j);

if("File".equals(eln.getAttribute("name")))

{

/*获得值*/

filePath = eln.getAttribute("value");

}

}

}

}

BufferedReader bf  = null;

if(year.equals(todayDate)||"".equals(year))

{

file = new File(filePath);

if(file.exists())

{

bf = new BufferedReader(new FileReader(filePath));

}else

{

StringReader b = new  StringReader("日志文件不存在");

bf = new BufferedReader(b);

}

}else

{

file = new File(filePath+"."+year);

if(file.exists())

{

bf = new BufferedReader(new FileReader(filePath+"."+year));

}else

{

StringReader b = new  StringReader("日志文件不存在");

bf = new BufferedReader(b);

}

}

servletWrapper.getRequest().setAttribute("log", bf);

-------------------------------转到三jsp-6

10、       写文件

int i=0;

byte[] chrBuffer = new byte[10]; //缓冲\r

try

{

FileInputStream bf = new FileInputStream("D:\\4433.txt");

FileOutputStream bfo = new FileOutputStream("D:\\ee44");

while ((i=bf.read(chrBuffer))!=-1)

{

bfo.write(chrBuffer,0,i);

}

}

11、       Jndi

<bean id="pms_dataSource"

class="org.springframework.jndi.JndiObjectFactoryBean">

<property name="jndiName">

<value>java:comp/env/jdbc/pmsframework</value>

</property>

</bean>

12、       获得web.xml下的配置信息

getServlet().getServletConfig().getInitParameter(

GlobalParameters.ENCODING)

13、       读取类型为properties的配置文件

ResourceBundle rb = ResourceBundle.getBundle("mail");// 配置文件名称

String mailServer = rb.getString("mailServer");

String from = rb.getString("from");

String userName = rb.getString("userName");

String password = rb.getString("password");

14、       Java处理excel

ByteArrayOutputStream outs = new ByteArrayOutputStream();

/**

*<p>Description:生成带初始化数据的excel</p>

*<p>Remark:</p>

*@paramtargetVO

*@return

*@throwsServiceException

*/

public String createExcel(InputStream ins,OutputStream outs,RdVO rdVO)

throws ServiceException

{

changeWorkbookByStream(ins,outs);

try

{

WritableWorkbook book = null;

book = this.wwbook;

//设置格式

jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#,###");

jxl.write.WritableCellFormat wcfN = new jxl.write.WritableCellFormat(nf);

wcfN.setBorder(Border.ALL,BorderLineStyle.THIN);

wcfN.setVerticalAlignment(VerticalAlignment.CENTRE);

//获得第一个工作表对象

//             isheets = book.getNumberOfSheets();

//             //循环取得处理sheet数据

//             for(int j = 0;j<isheets;j++){

//                 WritableSheet rs = (WritableSheet)book.getSheet(j);

//

//                 labeltemp = new Label(0, 0, String.valueOf(22222222),wcfN );

//                 ((WritableSheet) rs).addCell(labeltemp);

//             }

List list= initDAO.getHistoryData(rdVO);

int length = list.size();

//循环取得处理sheet数据

for(int j = 0;j<length;j++){

RdVO vo = (RdVO)list.get(j);

sheetId = vo.getSheetId();

cellRow = vo.getCellRow();

cellColumn = vo.getCellColumn();

rpData = vo.getRpData();

WritableSheet rs = (WritableSheet)book.getSheet(Integer.parseInt(sheetId));

labeltemp = new Label(Integer.parseInt(cellRow), Integer.parseInt(cellColumn), String.valueOf(rpData),wcfN );

((WritableSheet) rs).addCell(labeltemp);

}

book.write();

//关闭book,释放资源

book.close();

rwbook.close();

}catch(Exception e){

errorMsg = e.getMessage();

//errorMsg += "  错误在行 :"+rowTemp+" 列:"+colTemp;

System.out.println("出错了啊!!"+errorMsg);

System.out.println(e);

e.printStackTrace();

returnthis.errorMsg;

}

returnthis.errorMsg;

}

15、   打war包

D:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\nmbp>jar -cvf nmbp.war *

16、   Web应用获得文件绝对路径

/**

*获取指定xml的绝对路径.

*@paramsourcePath

*@return绝对路径

*/

private  String getXmlPath(String sourcePath)

{

String path = this.getClass().getClassLoader().getResource("").getPath()+"com/neusoft/nmbp/common/socket/xml/"+sourcePath;

String newFullPath = null;

try {

newFullPath=java.net.URLDecoder.decode(path.toString(),"UTF-8");

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return newFullPath;

}

17、   读属性文件

/*静态代码块,加载属性文件pms.properties*/

static {

InputStream inputStream = NmbpConstant.class.getResourceAsStream("/pms.properties");

nmbpProperties = new Properties();

try {

nmbpProperties.load(inputStream);

inputStream.close();

}

catch (IOException e) {

SysLog.writeExceptionLogs(NmbpConstant.NMBP_APPNAME,

GlobalParameters.ERROR, "获取系统属性文件异常:", e);

}

}

时间: 2024-12-25 05:58:42

一个java工程师的前6年工作部分技术积累(一)的相关文章

一个java工程师的前6年工作部分技术积累(二)

五.  Oracle 1.创建表 CREATE TABLE BD_ASSESS_PERIOD_TYPE_T ( PERIOD_TYPE  VARCHAR2(16 BYTE)                NOT NULL, PERIOD_NAME  VARCHAR2(16 BYTE)                NOT NULL ) TABLESPACE TS_TAB_BASE03 PCTUSED    40 PCTFREE    10 INITRANS   1 MAXTRANS   255

Java工程师能做什么工作

当下在这个越发重视IT技术的时代,越来越多的人也开始重视自己IT技术的培养,当下若是掌握了一门热门的IT技术,那么高薪就业绝对是没有什么大问题的,在当下IT技术中,Java技术一向引人注目,想成为Java工程师的朋友是大有人在,那么Java工程师能做什么工作呢?跟长沙尚学堂小编往下看. 很多人对Java工程师的最初印象就是多金,因为Java工程师起点薪资在众多工程师中就比较高,还有个很深刻的印象,就是Java工程师人才缺口,真的可以用惊人来形容,根据IDC的统计数字,在对所有软件开发人才需求当中

Java工程师学习指南(完结篇)

Java工程师学习指南 完结篇 先声明一点,文章里面不会详细到每一步怎么操作,只会提供大致的思路和方向,给大家以启发,如果真的要一步一步指导操作的话,那至少需要一本书的厚度啦. 因为笔者还只是一名在校生,所以写的内容主要还是针对Java初学者或者接触Java后端不久的朋友,不适用于已经工作多年的Java大佬们.所以本文中的方法不一定适合所有人,如有错误还请谅解. 本期的内容是系列文章的最后一部分内容了.这个系列可能还有很多东西没有说清楚,也有很多内容被忽略了.但是这些内容也确实是笔者结合自己经验

java工程师之旅-一个月工作心得

不知不觉,在工作中已经度过一个月,距离上次写文章已经好几个月了,正好还有二十分钟下班,抽点时间来写一下博文,写一下心得. 首先说一下,在我工作之前,做了一个项目,和一个外校大四的学生做一个毕业设计,一个随堂APP,如果大家想要看看的话我在后面贴上git 在后来,这个项目给我的面试带来了很大的加分. 我的面试很运气,我第一次面试,面试的是一个小公司,做金融的,只有一个技术主管来面我,我第一次面试,很紧张啊... 问的大部分都是简历上写的一些技术点,还好当初没有吹牛逼把很多高大上的技术写上去,这一点

当世界上只剩下一个Java程序员

公元2050年,世界上只剩下了一个Java程序员. 你可能要问了,别的人都去哪儿了?原因很简单, Java没落了. 大约在2030年左右,出现了一个叫做X的语言,它既能做系统级开发(操作系统.数据库.编译器),也能做服务器端的开发,手机端,Web端都不在话下. 更为重要的是,这个新的编程语言和人类的自然语言很接近,无论大人小孩,稍微一学,很快就可以来编程.于是排名前100的语言统统消失了, 程序员们都失业了. Java也不例外,这个昔日的霸主在留下了一堆庞大而复杂的系统以后就不见了. Java程

美资软件公司JAVA工程师电话面试题目

面试必备基础题目(虽然不一定常用, 仅用于面试, 面试就是把人搞的都不会然后砍价, 当然您可以讲我可以查资料完成, 但是面试的时候就是没道理的, 起码我是经常看到这些题). 如何把一段逗号分割的字符串转换成一个数组?request.getAttribute() 和 request.getParameter() 有何区别?response.sendRedirect() 和 forward() 区别?<%@include file="xxx.jsp"%>和 <jsp:in

以Java工程师为例,技术面试应该怎么准备?

如何准备一份「工程师范儿」的简历? 定制简历 我自己的经验是,每个岗位的具体要求都不同,因此大家不要用一个通用的简历去应付所有的岗位,最好是根据特定公司的特定岗位来定制简历.当然这并不是让大家编故事,而是突出与目标岗位匹配的经验和能力.大家去应聘一个开发或者测试工程师,和去应聘一个 Team Leader 或者技术经理的角色是完全不一样的.比如,如果我要去应聘一个有管理性质的岗位,我就会在简历里适当突出我曾经从 0 组建了一个 10 人的技术团队,里边有多少资深 Java 开发工程师,多少数据库

谈谈Java工程师的学习

在大学的时候,计算机系的同学们肯定会学习很多计算机方面的专业课,如计算机操作系统.计算机网络.计算机组成与结构等等啦,个人认为这些课程会为你快速建立计算机技术的基本概念,但这些课程大学讲的比较粗浅,而且每一门课程在计算机发展方向上都有很深的领域.所以,个人认为这些课程在大学属于尽可能的了解. 大学计算机还会学习高等数学和英语,这是我认为大学学习的核心. 英语的重要性不言而喻,因为很多重要的参考资料都是英文的,虽然国内已经有很多汉译本,但是读起来还有些蹩脚. 大学除了高等数学,还会学习线性代数和概

《菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师》

<菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师> 国庆节快乐!一年一度长度排第二的假期终于来了. 难得有十一长假,作者也想要休息几天啦. 不管你是选择出门玩,还是在公司加班,在学校复习,都希望你过好这个长假. 没有出去玩的也不用羡慕别人,利用这段时间充充电,不比去旅游看人头要好的多吗? 最近终于把我的原创文章整理成一本电子书了,趁着国庆开始之前发布出来,希望对你有所帮助. 这本电子书整理了我过去一年时间里在微信公众号[黄小斜]里创作的文章,包括Java学习.求职面试.成长心得.感悟思