实训第二周总结

本文为从简书转移的文章,以后不再在简书上发东西了。

调完了第二次作业的最后一个bug,终于可以静下来写一写。

这次实训,算是我入学以来做得最简单的一个吧。没有用什么高大上的框架,没有做美工,甚至没有用注解。一切都按照最简单,也最古老的Java Web开发方式进行的。Spring boot,MyBaits离我远去,Vue,nodejs连个影子都没有。MD设计风格,Ant设计风格,没有设计。好像一切都变得那么简单,那么朴实。

习惯了豪华的开发阵容,真是很不习惯。手写jsp,Servlet,手动调JDBC,手动配置连接池,手动写XMLHttpRequest对象完成ajax请求。还真是不适应呢!放弃了诸多平时使用的开发框架,唯独留下了gradle,手动导包,还是算了吧!

第一周讲Java基本语法,完成控制台的CRUD,包括分页,第二周就是把控制台变成了web页面。

细数起来,Java变量命名规则似乎都记不得了,连四个访问控制符的范围顺序都早已忘记得一干二净。虽说是经常用Java,但最开始学的基本的规则什么的,确实是没什么印象。“这个不常用吧,用的话也可以靠编译器绕过去”,我安慰自己。

放慢了脚步,看着周围的人忙着调bug。一时间也不知道说什么,想想自己最开始的时候,光是配个环境都花了一个多星期,查bug更是急得满世界的搜啊,找啊,问啊。习惯了自己一个人去解决,突然间有个老师教,反倒是变得相当的依赖了呢。不再自己去思考,听听老师的演示,有问题问一问。好轻松啊!偶尔也帮别人调调bug,摸摸自己的右肩,又开始疼了吗?

不止一次的想,如果我当初没有那么早的开始写代码,会不会更好一些。是不是就会把时间投入到诸如高等数学,线性代数这样的基础学科上去。等着一个实训,让一个企业来的老师带着写代码。想啊想啊!这是想不通的,谁说得准呢?

附上实训老师的讲课文档

1.2次作业(随堂练习),计入最终成绩
2.实训项目分组做,每组不超过5个人(只给题目和需求)


类:相同属性和方法一组对象的集合
使用类中属性和方法: 对象.属性 对象.方法

Java中访问修饰符:
private 默认(friendly) protected public

变量:命名规则  首字母:_字母$,后面部分 _字母$数字
采用驼峰命名法

数据类型: 值类型和引用类型

数据类型的转化:自动转化和强制转换

封装: 1.将属性设置为私有 2.添加get/set方法 3.添加条件判断语句

if(Boolean){} else{}

this:当前类的对象
方法: 访问修饰符 返回值类型 方法名(参数列表){}
输入: Scanner

循环:
先执行后判断: do{循环体}while(条件)
先判断后执行: while(条件){} for(变量初始值;条件判断;迭代){循环体}
for(数据类型 变量 :数据源):从数据源中取出相应的类型,只能用于取出全部内容

运算符:
算数运算符 + - * / % ++ --
逻辑运算符 && || !
比较运算符 > < >= <= == !=


switch 和多重if的区别,相同情况下,switch的效率更好
switch:用于等值判断,值的类型有限定
多重if:用于区间判断,没有类型限制



数组:数据类型[] 标识符= new 数据类型[长度];
通过数组下标对数组中元素进行存取;数组下标从0开始

集合:Listlist = new ArrayList();

多态:父类new子类(里氏替换原则)



break: 结束循环,执行循环后面的代码
continue:结束本次循环,执行下一次循环

构造方法:方法名和类名相同,没有返回值类型;每个类都有一个默认无参的构造方法;当在类中显示定义有参的构造方法后,
默认无参的构造方法将不存在


方法重载:在一个类中,方法名相同,参数列表不同(参数个数,数据类型),和返回值类型访问修饰符无关
方法重写:在多态条件下,方法名相同,参数列表相同,返回值类型相同,访问修饰符不能比父类更严格

JDBC:Java 连接数据库技术
1.导入jar包
2.加载驱动
3.建立连接
4.执行SQL语句返回结果
5.处理返回结果
6.关闭连接

异常:1.检查异常 2.运行时异常

分层开发:数据访问层(dao):跟数据库进行交互
          实体层(entity):数据传递;实体类中的属性和数据库中的字段一一对应

继承:代码重用
父类属性 父类构造方法 子类属性 子类构造方法

分页:每页显示记录数、总页数、当前页

select top(页大小) * from userinfo
where id not in (select top(页大小*(页数-1)) id from userinfo)
利用 id 大于多少和select top 分页,效率高,需拼接SQL语句

select top(页大小)* from(select Row_NUMBER() over(order by id)as rn,* from userinfo)a
where rn>页大小*(页数-1)
利用SQL的游标存储过程分页,效率低,最通用

select * from userinfo limit 3(取三行)
MySQL: limit 参数1:去参数行 
              参数1,参数2:跳过参数1行,然后取参数2行

动态页面:数据来源于数据库
静态页面:纯HTML、css


C/S:Client server 需要安装后缀名为exe;
B/S: Browser server 不要安装,打开浏览器输入网址即可



http:超文本传输协议
域名对应IP
默认80端口

.jsp 翻译.java 编译 .class执行


页面组成:
1.HTML
2.指令<%@
3.表达式<%= :输出内容
4.小脚本<%  :Java代码(不包含方法)
5.声明<%!  :方法,变量 
6.注释: 可被查看到
        <%-- --%> 不可被查看到



404:找不到页面
500:服务器内部错误(代码运行错误)


jsp 9大内置对象
request.getParameter("");根据表单的name属性来获取值;如果name属性不存在,返回null;

response.sendRedirect(页面地址):重定向,跳转到指定页面

转发是在服务器端发挥作用,通过forward方法将提交信息在多个页面间进行传递
转发是在服务器内部控制权的转移,客户端浏览器的地址栏不会显示出转向后的地址
重定向是在客户端发挥作用,通过请求新的地址实现页面转向
重定向是通过浏览器重新请求地址,在地址栏中可以显示转向后的地址

URL传参:?开始参数名 = 值 多个参数名使用&隔开
cookie:是类,不是内置对象
session:回话;打开浏览器开始,关闭浏览器结束(默认有效期:20分钟)

session是在服务器端保存用户信息,cookie是在客户端保存用户信息
session中保存的是对象,cookie保存的是字符串
session随会话结束而关闭,cookie可以长期保存在客户端
cookie通常用户保存不重要的用户信息,重要的用户信息使用session保存

application:全局变量;服务器启动开始,服务器停止结束

提交乱码处理
post:request.setCharacterEncoding("gbk");
get:String s = new String(乱码值.getBytes("ISO-8859-1"),"gbk");

你可能感兴趣的:(小结)