eclipse代码重构:一个FormBean写完后,如果通过菜单重新对这个类命名,其他源程序中引用这个类的地方都会自动发生修改,但在jsp页面中使用<jsp:usebean>引用的这个类名无法自动修改。
提交一个表单数据校验包括表单校验和业务逻辑校验。
让学员们模仿Struts框架,采用MVC模式写了一个用户注册程序。写登陆用例的思路,先查询出User对象,再比较密码。
ActionServlet构造出FormBean,然后将FormBean传给一个Action的execute方法,在调用execute方法之前调用FormBean的validate方法,只有校验成功才调用Action.exectue方法,否则,退回到初始页面。在execute方法内部取出FormBean,再组装成业务实体bean(域对象),再将域对象使用DAO插入到数据库中。
如何输入的表单字段校验出错,该如何进行处理?
Session的解释,服务器断为每个浏览器保留一片内存,浏览器输入的用户名是张三,保存到session中,下次浏览器再来访问(譬如,购买一支钢笔),服务器程序取出这个浏览器对应的内存,就知道是张三,买钢笔就记录在张三的帐户上。
我们是对字符对应的内存字节数据进行url 编码,而字符对应的内存数据不是对应一个单一值,而是在不同的字符集下对应不同的数值,所以,url编码和解码时都要考虑字符编码问题
javac不能编notepad生成的utf-8文件,想起了李杰的eclipse打开记事本编写的dtd文件报错的那个问题。
System.out.println("中国");能编译,System.out.println("中a国");不能编译的原理
以后向社会证明我们学员对细节问题非常明白的问题之一:
请问下面语句的具体意义:<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
getReader就是把字节转换成文本返回,但是,你不告诉它字节是什么码,它怎么知道把字节转换成哪个字符呢?
分层和接口的比喻,我要一个汽车,你给我一个东风汽车,我就驾驶东风汽车上班,如果你以后给我换成了一辆大众汽车,那我就驾驶这辆大众汽车上班,你给我的是什么汽车,我不知道,我只知道驾驶汽车即可。是谁给我这辆汽车呢?那就是spring。
N层架构的思想:
请求参数装成一个FormBean->Action.execute(formBean,request,response)方法,还需要一个实体对象User->
(一个UserManager接口的实现类)UserManagerImpl.queryByName()-->(UserDao的实现类)->JDBCDaoImpl.queryByName()->JDBC的具体代码
请求参数装成一个FormBean->Action.execute(formBean,request,response)方法,还需要一个实体对象User->
(一个UserManager接口的实现类)UserManagerImpl.queryByName()-->(UserDao的实现类HibernateDaoImpl.queryByName()—>Hibernate的具体代码
用Spring将UserManager提供给Action,将UserDao提供给Manager
晚上雷老师来讲了一下ibatis,大家基本上对ibatis入了门,下面是学员们讨论出的一个问题:
<resultMap id= class= >
<result property="zipcode" column="t_address.zipcode" />
</resultMap>
<select id= parameterClass= resultMap=>
select 关联查询
</select>
这里的t_address是关联查询语句中as别名表,可以修改。另外,可以为查询的每个字段重命名,然后就不必column="t_address.zipcode"了,而是直接使用字段列的名称,并且,甚至可以在此基础上,将select元素中的resultMap修改成resultClass。