今天项目组进行了一个小时的需求讨论,由于刚进入项目组不久,对系统了解不多,几乎没有发言一直在旁听。
此次会议得出一点心得:系统开发中最重要的就是解决方案的敲定,解决方案选择对的话,就算没有达到事半功倍的效果,开发人员开发起来也能轻松很多。
怎么才能产生一个好的解决方案,这就与对系统、需求、技术的掌握程度了,程度越高考虑事情越周全、解决方案越有效。
由此也可以得出,企业在选择员工时应该看重分析问题、解决问题的能力,而不是技术能力。当然了,技术能力一般,解决问题能力可能也不是多好。
一个好的程序员:技术能力+解决问题能力(思维逻辑),所以技术是基础、必备的,技术上要每天都有收获,思维方式要时刻注意培养,不仅仅是解决开发问题时注意,日常生活同样使用。
要成功,就马上准备有所付出吧!这就是每天你应该养成的习惯。
1、不说“不可能”;
2、凡事第一反应: 找方法,不找借口;
3、遇到挫折对自己说声:太好了,机会来了!
4、不说消极的话,不落入消极的情绪,一旦发生立即正面处理;
5、凡事先订立目标;
6、行动前,预先做计划;
7、工作时间,每一分、每一秒做有利于生产的事情;
8、随时用零碎的时间做零碎的事情;
9、守时;
10、写点日记,不要太依靠记忆;
11、随时记录想到的灵感;
12、把重要的观念、方法写下来,随时提示自己;
13、走路比平时快30%,肢体语言健康有力,不懒散、萎靡;
14、每天出门照镜子,给自己一个自信的微笑;
15、每天自我反省一次;
16、每天坚持一次运动;
17、听心跳一分钟,在做重要的事情,疲劳时,紧张时,烦躁时。。。。
18、开会做前排;
19、微笑;
20、用心倾听,不打断对方的话;
21、说话有力,感觉自己的声音能产生感染力的磁场;
22、说话之前,先考虑一下对方的感觉;
23、每天有意识赞美别人三次以上;
24、即使表示感谢,如果别人帮助了你的话;
25、控制住不要让自己作出为自己辩护的第一反应;
26、不用训斥、指责的口吻与别人说话;
27、每天做一件”分外事“;
28、不关任何方面,每天必须至少做一次”进步一点点“,并且有意识的提高;
29、每天提前15分上班,推迟30分下班;
30、每天下班前5分钟做一下今天的整理工作;
31、定期存钱;
32、节俭;
33、时常运用”头脑风暴“,利用脑力激荡提升自己创新能力;
34、恪守诚信;
35、学会原谅。
通过JS完成,能满足多种浏览器,不足之处是展示效果不是很理想,而且最多只能输入13位数字,希望大家提出改正方法
<html>
<head>
<title>数字转换人民币大写</title>
<script type="text/javascript">
function convert() {
var big = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖");
var unit = new Array("圆", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾",
"佰", "仟", "万");
var num = document.getElementById("num").value;
if (num =="") {
alert("输入为空,请输入数字");
return false;
}
if (num.match(/[^,.\d]/) != null) {
alert("输入内容不合法,请输入数字");
return false;
}
var temp = "";
if (num != null&&num.length<=13) {
for (var i = 0; i < num.length; i++) {
if(num.charAt(i)==0){
alert("输入内容不合法,不能以0开始");
return false;
}else{
temp = temp + big[num.charAt(i)] + unit[num.length - i - 1];
}
}
}else{
alert("最多只能输入13位数字");
return false;
}
document.getElementById("rmb").innerText = temp;
}
</script>
</head>
<body>
<input type="text" name="num" id="num"/>
<input type="button" name="convert" value="转换" onclick="return convert()"/>
<input type="text" id="rmb"/>
</body>
</html>
<html>
<head>
<title> 敲回车光标跳到下一个输入框(只能在IE下使用) </title>
</head>
<script>
function turnNext(object){
if(object.keyCode==13){
object.keyCode=9;
}
}
</script>
<body>
<table>
<tr>username<input type="text" name="name1" onkeydown="turnNext(event)"/></tr>
<tr>password<input type="text" name="name2" /></tr>
<tr>age<input type="text" name="name2" /></tr>
</table>
</body>
</html>
JSP注释
在JSP中注释最好用<%----注释内容----%>
JSP注释分两种
显示注释:在客户端(源代码)可以看到
HTML中的注释<!---注释内容--->
隐式注释:在客户端(源代码)看不到
使用JAVA中的“//”、“/*…………*/”,以及JSP中自己的注释<%----注释内容----%>
<%---JSP中的注释,看不见---%>
<%
//注释,看不见 单行注释
/*
XXXXX
注释,看不见 多行注释
YYYYY
*/
%>
<!----显示注释--->
<!--This page was loaded on <%= (new java.util.Date()).toLocaleString() %> -->
结果:<!--This page was loaded on 2010-12-01 13:24:32 -->
如果用显示注释,浏览器也会执行里面的内容,速度会低点
HTML注释
只有一种 <!----注释内容-->
<!----这里是HTML注释--->
XML注释
只有一种<!----注释内容-->
CSS注释
只有一种 /* 注释内容 */
JavaScript注释
单行注释 //注释内容
多行注释
/*
XXXX
注释内容
YYYY
*/
现在开始加入公司的核心项目,但由于项目开发比较早,所以使用的技术不是很新潮,前台用的还是struts1。
虽然不是什么新技术,但仍可以从中学到好多东西的。花了一个晚上的时间终于把struts1的流程跑通了。
省略了创建过程及加入jar包的过程,直接进入正题。
首页要在web.xml中添加相应的struts配置:
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>
org.apache.struts.action.ActionServlet
</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
然后在config所对应的目录下添加struts配置文件struts-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
<!-- ActionForm -->
<form-beans>
<!-- name:名称 type:类路径 -->
<form-bean name="loginForm" type="com.login.LoginForm">
</form-bean>
</form-beans>
<!-- 设置全局URL,必须写在Action前面,这样任何Action都可以使用 -->
<global-forwards>
<forward name="result" path="/result.jsp" />
</global-forwards>
<!-- 注册Action -->
<action-mappings>
<!-- name:名称 type:类路径 path:客户端(JSP)提交到服务器端时指定的路径(Form表单中的action=”/login.do" -->
<action path="/login" type="com.login.LoginAction"
name="loginForm" scope="request">
<!-- 局部URL,只有这个action可以使用 -->
<forward name="success" path="/success.jsp"></forward>
<forward name="error" path="/error.jsp"></forward>
</action>
</action-mappings>
</struts-config>
注:Action和Form的关系是一个Action只能对应一个Form(通过Action的name属性)
而一个Form可以被多个Action调用
LoginAction.java
package com.login;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class LoginAction extends Action {
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
LoginForm lf = (LoginForm) form;
String username = lf.getUsername();
String password = lf.getPassword();
String errorInfo = "";
String result = UserManager.getInstance().login(username, password);
if (result.equals("success")) {
request.setAttribute("username", username);
return mapping.findForward("success");
} else if (result.equals("username")) {
errorInfo = "密码错误";
} else {
errorInfo = "用户名错误";
}
request.setAttribute("errorInfo", errorInfo);
return mapping.findForward("error");
}
}
LoginForm.java
package com.login;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
public class LoginForm extends ActionForm {
private String username;
private String password;
public void reset(ActionMapping mapping, HttpServletRequest request) {
System.out.println("--------reset()-------------");
super.reset(mapping, request);
}
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
System.out.println("--------validate()-------------");
return super.validate(mapping, request);
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
对我个人来说最重要的是前台jsp页面没有掌握,经常在页面上花费很多时间
在编写JSP页面时要用struts标签,而我经常会忘记
引入jsp标签
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>首页</title>
</head>
<body>
<html:form action="/login.do">
用户名:<html:text property="username"></html:text><br/>
密码: <html:password property="password"></html:password><br/>
<html:submit>submit</html:submit>
</html:form>
</body>
</html>
展示结果(将Action的返回值展示到JSP页面上)
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Error</title>
</head>
<body>
<bean:write name="errorInfo" scope="request" />
</body>
</html>