以课本为例,能把每一个基础知识学会、学得全面,就已经是高级水平。
这个“高级”是指领先于小白、萌新,领先于死记硬背、连基本技术都不会的人。基础弱,大四实训也没刻苦学习,只是稍微会一些,叫小白、小灰。
要满足现实的项目需求,需要多种业务模块,比如用户关系和权限、工作流、消息管理、历史记录和数据统计等。还有一些拓展的模块:第三方接口、个性化推送、数据挖掘等。还有用户想要的各种各样前端效果、后台功能。
一个关键的技术是:设计模式在各种JavaEE框架中的应用。
项目的调试、测试,自动化测试,数据库维护,新功能的添加,也是大问题。
高手也是从学生阶段过来的。讲一个jsp案例,2019年秋,以图书管理系统为例,做了个开头。再没有时间、机会去完善。
照猫画虎学框架,不难,甚至是自学就能做到的事。用户权限、工作流管理,也有现成的插件、工具库。但是,在大学学习阶段,基于java、jsp做项目,能锻炼编程技术、能提高解决问题的能力。
比如有的大四学生,花了好大力气学 bootstrap.js+SSM,结果只能把食品销售系统 改造为 家具销售系统,没任何新功能、复杂功能,技术很弱。
我补充一些jsp知识,课本知识、拓展知识,很多“普通”知识积累起来,就是高级水平。
1.用map格式存放一个表单的提交数据
//用map格式,存放表单的所有数据
public static Map Req2Map(HttpServletRequest request) {
Map map = new HashMap<String, String>();
Enumeration enum2 = request.getParameterNames();
while (enum2.hasMoreElements()) {
String paramName = (String) enum2.nextElement();
String paramValue = request.getParameter(paramName);
// 形成键值对应的map
map.put(paramName, paramValue);
}
DebugPrt.prt(map, 1);
return map;
}
2.以map格式数据作为DAO数据库访问的参数
public User login(Map m){
String sql="select * from "+table
+" where user_name=? and user_password=? ";
ResultSet rs =MysqlHelper.executeQuery(sql,
new Object[]{ m.get("user_name"),
m.get("user_password")});
if(rs==null)
System.out.println(" rs null");
User ut=null;
// ResultSet to ArrayList
try {
while(rs.next()){
ut=rs2entity(rs);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
MysqlHelper.close();
}
System.out.println("user dao");
return ut;
}
程序不难。而且大三大四学MyBatis,也有类似的操作。稍微会JDBC,直接学MyBatis好像问题也不大。但遇到MyBatis的复杂程序,多数大三大四学生都做不了。比如,哪个大四学生会使用Spring拦截器、MyBaits拦截器?复杂的业务功能、高级的技术难度,都依赖编程基本功。
基本功,不是一个简单的事情。一个人,能把投篮、罚球、防守、篮板等各个基本功练好,绝对是一个很有竞争力、有优势的人。
所谓“做得好,都是同行衬托”,太多人,基本功远远不够。
代码下载:
链接: https://pan.baidu.com/s/1zxTcYmc-43EQXP6druWXJQ 提取码: a4i2
还有视频演示和讲解:
链接: https://pan.baidu.com/s/1gBej9-B24Jd23kzLSeEOPg 提取码: tjxc
我是一个教jsp、javaee的老师,在课后花时间编程、录像。 这件事看起来很合理、也应该多讲多练,结果却产生了一些问题。
问题不便详述。结果就是这个案例一直拖着、止步于一个开头。另一个结果,我得从老师变成程序员。
我当程序员,很正常。只是本科、硕士毕业这些年的经历,实在辛苦,冷暖自知。很多事情的选择、决定,全是错的,就这样错着过、错着生活。