BriupNote

软件行业
可行性分析
需求分析
产品经理(与客户交流)-原型图
原型工具 Axure
总体设计
架构师(搭建项目,并进行总体设计)
Maven
svn
UI设计师(设计页面)
详细设计
Java工程师(C#,php,node...)
模块化开发
前端工程师(jsp)
单元测试
测试工程师
(黑盒,白盒)
集成测试
打包  jar war
部署上线
运维工程师 tomcat
交付
---------------
1. 软件安装
1) jdk安装
1. 安装jdk
Java开发工具集
{
jre (
Java运行时环境
.jar(java基础库)
)
jvm (Java虚拟机)
}
2. 配置环境变量
JAVA_HOME   JAVA家目录


C:\Program Files\Java\jdk1.8.0_111
PATH JAVA家目录中可执行文件的目录
%JAVA_HOME%\bin;


CLASSPATH 类加载路径
.
2) 安装mysql (数据库)
3) 安装mysql数据库的可视化工具  
4) 安装eclipse
软件、项目管理
5) 安装tomcat软件
解压即安装
6) 将tomcat集成到eclipse中
localhost:8888
http://localhost:8888


2. Java特点
跨平台性(.java->.class)
.class字节码文件可以运行在jvm上


JavaEE的学习路线
linux(dos操作)【3天】(ubuntu)
文件,目录操作(创建文件/夹,修改,移动,删除)
编辑器vim(linux(ubuntu))
软件安装以及配置


阶段项目: 通过记事本完成Helloworld编写
CoreJava【22天】
类加载机制(javac -cp)
Java数据类型(8种)
操作符(位运算符,逻辑,三目)
语句(流程控制,循环)
数组(创建,添加元素,遍历,拷贝)
(模拟队列,栈)
(算法:排序算法{插入,冒泡,快速排序},查找算法{二分查找法})
面向对象
三大基本特征
高级特性{
访问修饰符
static
final
abstract
interface
}
重写
重载
内部类{
成员内部类
匿名内部类
静态内部类
}
枚举类 Enum
集合
Collection
List
ArrayList
LinkedList
Set
HashSet
TreeSet
Map
HashMap
TreeMap
阶段任务: 学生信息管理系统(将学生信息维护到集合中)
线程
1. 创建线程的方法
2. 线程的状态
3. 锁机制
4. 线程通信
Thead
Runable


阶段任务:叫号机
IO流
字节流
InputStream
OutputStream


FileInputStream
FileOutputStream


BufferedInputStream
BufferedOutputStream


Data..
Object..
Piple..
字符流
Reader
Writer


FileReader
FileWriter


BufferedReader
BufferedWriter


阶段项目:文件拷贝,学生信息管理系统(将学生信息保存到C:/student.data)


网络
Socket
ServerSocket


阶段项目:QQ,文字交流,文件交流
jdbc
6大步骤
封装
1.ConnectionFactory
2.close
3.excute(sql,参数,回调) 回调


数据库(mysql)【5天】
DDL
数据库的链接
数据库的创建
表的创建,修改,删除
DML
表的数据插入
数据更新
数据删除
数据查询{
多表链接查询
嵌套查询
}
阶段任务:OA系统建表,查询任意数据
XML【2天】
DOM解析
SAX解析
阶段任务:学生信息管理系统,将学生信息保存到xml
html+css+js【10天】
html标签
css 熟悉样式,学会布局
js  数组,对象,函数,面向对象,回调


Servlet/JSP【7天】
原理
如何接受参数
如何跳转
乱码如何处理
session/cookie
过滤器
监听器


三大数据范围: 
HttpRequest
HttpSession
ServletContext
jsp
el表达式
内置对象
jstl表达式


Hibernate(/mybatis)【5天】
1. 搭建方式
2. 对象状态(瞬态,持久态,托管态)
3. 二级缓存(sessionFactory)
4. 事务管理(事务提交,事务回滚)
5. 关系维护(one2one,one2many,many2many)
Struts2(/springMVC)【5天】
1. 搭建方式
2. Action 如何接受参数,如何页面跳转
3. 值栈
4. 拦截器
5. 文件上传与下载
Spring           【5天】
1. 搭建方式
2. bean管理(ioc依赖注入)
3. 事务管理(aop面向切面编程)
4. SSH如何集成


企业级应用
Maven
创建maven项目
maven进行包管理
maven打包,测试
svn
仓库管理
共享代码
-----------------
day02
1. Helloworld
1) 编写代码
代码三要素
package com.briup.test;


import java.util.*;


public class Helloworld{
public static void main(String[] args){
System.out.println("hello world");
}
}
2) 编译代码 javac
javac 参数 源文件
javac -d ./bin Helloworld.java


将当前目录下的Helloworld.java进行编译,将编译产生出来的字节码文件保存到当前目录下的bin文件夹下


3) 运行代码 java
java 选项 完整类名(包名+类名)
java -cp ./bin com.briup.test.Helloworld


2 使用eclipse完成Helloworld的编写
1. java project(C/S)
3.Dynamic web project
网站开发
综合信息管理系统




2. dos
F: 切换到F盘
cd 目录 进入到指定目录下
cd briup 进入到当前目录下briup目录下
cd / 进入到当前盘符根目录
cd . 进入当前目录
cd .. 进入上一级目录
cd ~
dir 显示当前目录下所有文件以及目录
cls 清屏




3. 业务分析
用户表
栏目表
  |
文章表





1. 数据类型

1) 基本数据类型 引用数据类型(包装器数据类型)
无符号整数
char Character
有符号整数
byte Byte
short Short
int Integer
long Long
有符号小数
float Float
double Double
布尔类型
boolean Boolean


2) 引用数据类型
对象类型
String str = "hello world";
Student stu = new Student();
int[] arr = new int[10];


2. 语句
1) 分支
if(boolean-bexp){


}


if(){


} else{


}


if(){


}else if(){


}else{


}




switch(变量){
case 常量:
//
break;
case 常量:
//
break;
case 常量:
//
break;
default:
//
}
2) 循环
三要素:
循环初始化条件
循环结束条件
循环迭代
1. 普通循环
int total = 0;
for(int i=1;i<=100;i++){
total+=i;
}


2.前置判断循环  while(){}
int total = 0;
int i=1;


while(i<=100){
total+=i;
i++;
}
3. 后置判断循环  do{}while();
int total = 0;
int i=1;


do{
total+=i;
i++;
}while(i<=100);


4. 增强for循环
迭代数组和Collection 
int[] arr = new int[]{1,2,3,4};


int[] arr = {1,2,3,4};


int[] arr = new int[4];
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;


for(int i : arr){


}


3. 数组
存放相同数据类型的集合,数组的长度一旦指定不能更改。


1) 数组声明
int[] arr;
2)数组初始化
arr = new int[10];
arr = new int[]{1,2,3};


int[] arr = {1,2,3};
3) 数组使用
通过索引来访问,索引范围为0~length-1
如果超过范围,ArrayIndexOutofBoundsException


arr.length
4. 面向对象


一切皆对象,对象通过类来构建出来
1. 类
JavaBean类
类是创建对象的模板,对象是存储信息的载体
工具类
StudentDao


类的定义


访问修饰符 class 类名{
构造方法(方法名和类名一样,无返回值)
类属性
类方法
成员属性
成员方法
}




访问修饰符
private 
protected
默认
public 


public class Student{
//成员属性
private Long id;
private String name;
private Integer age;


//默认构造函数
public Student(){


}
//成员方法
public void setId(long id){
this.id = id;
}
public long getId(){
return this.id;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}


}
Student stu1 = new Student();
stu1.setId(1001);
Student stu2 = new Student();
stu2.setId(1002);


2. 三大基本特征
1. 封装
将属性设置为私有,封装到一个类中
2. 继承
属性和方法的继承,父类如果提供了属性和方法,子类可以直接继承。


public class Animal{
private String name;
public Animal(String name){
this.name = name;
}
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
}
Animal animal = new Animal();


public class Dog{


}
public class Bird{


}
继承的本质实际上就是子类的构造函数中默认调用父类的无参构造函数,如果父类中没有无参构造函数,子类必须显式调用父类的有参构造函数。这是为了保证在创建子类对象的时候要先创建父类对象。
3. 多态
父类类型的引用指向子类对象,通过该引用只能调用父类中声明的方法,而不能调用子类中特有的方法


Animal a = new Dog();
List list = new ArrayList();




3. 高级特性
1) 方法重载
发生在同一个类中,方法名相同,参数不同,返回值无所谓
2) 方法重写
发生在父子类中,子类重写父类方法,子类方法名,参数,返回值与父类方法完全一致。子类方法可以覆盖父类方法
3) static
静态(类)
1. 静态属性
属于类,所有对象共享,在类加载时初始化,通过类名可以直接调用


2. 静态方法
属于类,所有对象共享,在类加载时初始化,通过类名可以直接调用


3. 静态代码块
在类加载时初始化
4) abstract
抽象


方法
抽象方法没有方法体。不做实现,用来作为标准

一个类中如果包含抽象方法,那么这个类一定为抽象类,但是一个抽象类中不一定有抽象方法。抽象类不能实例化
5) Interface
抽象到极致的抽象类就是接口
所有的方法都被
public abstract
所有的属性
public static final


面向接口编程
架构师
程序员




6) final 最终的
属性 常量
方法   不能被重写
不能被继承


5. 基本数据类型与引用数据类型在内存中的表现
int a ;
a = 3;


Student stu;
stu = new Student();
Student stu2 = new Student();


stu.setName("terry");
stu.setAge(12);


6. 集合
集合是对数组的封装,弥补了数组的一些缺陷
集合可以存放任意引用数据类型
集合的大小可以动态变化


Collection
List
ArrayList
LinkedList
Set
HashSet
TreeSet
Map
HashMap
TreeMap


List<String> list = new ArrayList<String>();


list.add()
list.remove();
list.size();
list.iterator();
...
7. 流
8. 网络
9. 线程


JDBC
Java Database Connective
三层架构
com.briup.sms
bean   Java Pojo类
dao   数据访问层
数据的增删改查,不涉及业务逻辑处理
方法命名:
save(add)
find(get)
delete
update


service 业务逻辑层
处理复杂的业务逻辑,事务管理,多次调用Dao层代码

方法命名:
功能名
register
login
selectCourse
...


web 视图层
Servlet/jsp




1. 学生信息管理系统
1)学生数据保存到集合(内存,不能持久化保存)
2)学生数据保存到文件(io)
3)学生数据保存到数据库(jdbc)


10. jdbc
参数
url 数据库地址
driver 驱动类完整类名
user 数据库用户名
password数据库密码


步骤
1) 驱动类加载
Class.forName(driver);
2) 获取链接
Connection conn = DriverManager.getConnection(url,user,password);
3) 创建Pstmt对象(预处理sql)
pstmt = conn.prepareStatement(sql);
4) 执行查询或更新操作
ResultSet rs = pstmt.executeQuery();
int num = pstmt.executeUpdate();
5) 如果执行查询操作,处理结果集
while(rs.next){
rs.
}
6) 释放资源


springmvc + spring + jdbc(封装)


11. SQL
查询
insert into tbl_student values(null,'张三','123321','男',12);




12. sms学生信息管理系统
功能
管理员登录页面
管理员注册页面


课程列表页
课程展现
课程添加
课程修改
课程删除




1) 提供了中间件(数据访问层,业务逻辑层)
sms_service
2) web应用(视图层)


注册页面
<form action="" method="post">
用户名: <input type="text" name="username">
密码:   <input type="password" name="password">
<input type="submit">
</form>




用户
register.jsp 销售(索取用户的信息)
->registerServlet 销售经理(获取用户)
->IStudentService(StudentServiceImpl)
业务主管(负责审核用户信息,并且将用户信息保存)
->StudentDao
档案管理员


1. 视图view login.jsp
http://localhost:8888/sms_web/login.jsp
1) 表单(接收用户的信息)
<form action="login" method="post">
username: <input type="text" name="username">
password: <input type="text" name="password">
<input type="submit">
</form>
当点击submit按钮
1. 表单就会提交给login(http://localhost:8888/sms_web/login)
2. 表单会以post方式提交
3. 会将用户输入到表单中的数据进行提交
username=terry
password=123321
2. 控制器Controller
1) LoginServlet
url: /login(http://localhost:8888/sms_web/login)


doGet(request,response){
//1.设置编码格式
request.setCharacterEncoding("UTF-8");
//2.获取参数
String username = request.getParameter("username");
...
//3.调用service层的方法
Student student = studentService.login(username,password);
//4.页面跳转
request.getRequestDispatcher("/index.jsp").forword(request,response);
}
doPost(request,response){
doGet(request,response);
}
3. 模型
Model
student 登录者的对象
---------------
1) jsp->servlet传值(用户将值传递给系统)
form -> request.getParameter()
2) servlet->jsp传值(系统将值传递给用户)
request.setAttribute("msg","找不到用户信息");
一次交互的值
session.setAttribute(key,value);
保存登录信息
context.setAttribute(key,value);
保存配置信息


EL表达式
${msg }
3) 页面跳转
request
.getRequestDispatcher(url)
.forward(request,response);
4)jstl标签库
1. 导入 
jstl.jar
standard.jar
2. jsp导入标签库的引用
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<c:if test="${empty msg }">


</c:if>


遍历
Servlet
request.setAttribute("list",list);


JSP


<c:forEach items="${list}" var="c" varStatus="">
${c.name}
${c.credit}
</c:forEach>



--------------------
编程学习
大一 
C
T-c


#include<stdio>
void main(){
printf("hello world");
}
大二
PHP  网站
CMS  新闻发布系统(新闻增删改查)


课程设计
大三
接项目 2000
大四
师悦
Java 8
6
技术支持(视频点播)



业务逻辑:
1. http://localhost:8888/sms_web/


index.jsp 引用文件
toIndex
查询所有课程信息
/WEB-INF/jsp/index.jsp
2. http://localhost:8888/sms_web/login.jsp
输入用户名和密码
  http://localhost:8888/sms_web/login
  判断用户是否能登录{
  登录成功: toIndex
  登录失败: login.jsp
  }
3. http://localhost:8888/sms_web/toIndex




sms_service (学生选课系统-服务)
bean
dao 数据访问
service 业务逻辑


sms_web
web 视图层
LoginServlet
RegisterServlet
ToIndexServlet
Web-Content
WEB-INF
jsp
lib
sms-service.jar
connect-mysql-driver.jar
jstl.jar
stardard.jar
web.xml
index.jsp 引导文件
register.jsp
login.jsp


Maven
更改课程信息
1. 跳转到更新页面
toUpdate?id=${course.id }


ToUpdateServlet
long id;
Course course = 
request.setAttribute("course",course);
updateCourse.jsp
<form action="updateCourse">
<input type="text" name="id" value="${course.id }">
<input type="text" name="name" value="${course.name }">
..
</form>
2. 修改课程信息
UpdateCourseServlet
1.设置编码
2.获取参数
long id
String name
double credit
String description
3.封装并调用service层方法
courseService.update(course);
4.跳转




-----------
1. 路径
tomcat 服务器
webapps
sms_web(web-content)
cms_web
http://localhost:8888 访问到webapps


http://localhost:8888/cms_web




2. Session
session中保存的数据可以在一次会话中维护
封装了map集合,用来保存键值对。
map.setAttribute("student",student);



Map<Long,String> map = new HashMap<Long,String>();
map.put(1L,"terry");
map.remove(1L);


1) 获取
HttpSession session = request.getSession();
2) 存值
session.setAttribute(key,val);


================综合信息管理系统===================


开发工具
eclipse
tomcat
maven
mysql
技术
CoreJava
Servlet/JSP/jstl
strusts2
spring
hibernate


svn(版本控制软件)
---------
企业级要求
1. 软件统一
2. 项目统一




Node
npm--maven


综合信息管理系统
1. 项目架构
Java Resource
src
com.briup.cms
bean
dao
service
common
web
action
webapp(相当于之前webContent)
WEB-INF
jsp
lib
web.xml
index.jsp


2. 项目功能
1) 跳转到首页
index.jsp项目的引导文件
toIndex.action


IndexAction
方法


@namespace("/")
@action(value="toIndex",results={
@result(name=SUCCESS,location="/WEB-INF/jsp/index.jsp")
})
toIndex(){
return SUCCESS;
}


当用户访问
http://localhost:8888/poll/toIndex.action


服务器会接受请求,并且将请求给Struts2,找到命名空间为/,url-mapping为toIndex的方法,然后调用这个方法,toIndex返回值为SUCCESS,匹配到@result中定义的SUCCSS,所以页面跳转到index.jsp


2) 跳转到注册页面
http://localhost:8888/poll/toRegister.action
=>
IndexAction
@result(name="success",
location="WEB-INF/jsp/register.jsp")
toRegister(){
return success;
}


输入用户信息,点击注册
3) 注册
http://localhost:888/poll/register.action


IndexAction
@autowired
private IUserService userService;


results={
@result(name="success",location="login.jsp");
@result(name="error",location="register.jsp");
}
register(){
//接受参数,私有属性,提供公共setter,getter方法
//1. 将获取到的参数直接封装,并且调用service方法
register(user);
}
IUserService-UserServiceImpl


@Autowired
private UserDao userDao;


register(user){
调用dao
}
UserDao extends BaseDao(){
findByUsername(username){
String hql = "=?";
findByHql(hql,username);
}
}


svn插件安装
控制项目的版本
多人协作开发


IT
速度(手机,电脑)


内存条(4G) 150
固态硬盘 128G 200
系统
开发软件
15S
5S


thinkpad
T450P
T460P 8000
工作站








========前端开发工具=========
浏览器
firefox(firebug插件)
google chrome
opera





















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值