后端开发
Maven
settings.xml
配置文件
仓库
- 本地仓库
- 远程仓库
- 中央仓库 maven中央仓库
Maven项目
pom.xml
maven项目核心配置文件
pom.xml
<!-- 打包方式 war-->
<packaging>war</packaging>
<!-- properties 是全局设置,可以设置整个maven项目的编译器 JDK版本 -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- 重点 -->
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<!-- 指定一下项目的JDK编译版本 -->
<configuration>
<release>11</release>
</configuration>
</plugin>
</plugins>
</build>
反射优化Servlet代码
${pageContext.request.contextpath}
相当于调用 request.getContextPath()
// 根据get请求参数,调用方法
//2.业务处理
if(methodName != null){
//通过反射优化代码,提升代码的可维护性
//1.获取字节码对象 this = TestServlet对象
Class c = this.getClass();
//2.根据传入的方法名, 获取对应方法对象,执行方法即可
Method method = c.getMethod(methodName, HttpServletRequest.class, HttpServletResponse.class);
//3.调用Method对象的 invoke()方法,执行对应的功能
method.invoke(this,req,resp);
}
} catch (Exception e) {
System.out.println("请求的功能不存在! !");
e.printStackTrace();
}
JSON
//对象转json
JSON.toJSONString(Object objcet)
//集合转json
JSON.toJSONString(List list)
//指定输出json的key, ordinal 指定输出key的顺序
// 1是第一个
@JSONField(name="user",ordinal=1)
// 指定不序列化
@JSONField(serialize=false)
// json对象转javaBean,传入json字符串和javaBean.class
Person p=JSON.parseObject(json,Person.class)
List<Person> list = JSON.parseArray(json,Person.class)
Post请求格式
- json数据格式
- form表单
- 文件类型(multipart/form-data)
// 指定响应的字段
SimplePropertyFilter filter = new SimplePropertyFilter(Course.class,”id”,”name”);
JSON.toJSONString(courselist,filter);
//json格式字符串转为map
Map<String,Object>JSON.parseObject(postJson,Map.class)
// where 1=1用于sql语句和and拼接,
// ”select * from course and“,否则sql语句会出错
select * from course where 1=1 and
文件上传
- 提交方式 post
- enctype: 类型multipart/form-data
服务端获取上传文件
- 根据分割符切割,获取数组,数组元素是表单项
- 分清普通上传项 (name),文件上传项(带有filename)
- 文件上传项:文件名,文件内容
- 文件内容保存到服务器
BeanUtils
//1.创建course对象
Course course = new Course();
//2.创建Map
Map<String,Object> map = new HashMap<>();
//3.向map集合中添加数据, key要与course的属性名保持一致,value的数据类型与course的属性的类型保持一致
map.put("id",1);
map.put("course_name","大数据");
//将map中的数据封装到 course中
BeanUtils.populate(course,map);
//设置属性
BeanUtils.setProperty(course,"price",100.0);
// 获取属性
String price = BeanUtils.getProperty(course, "price");
Post请求数据提交格式
- 键值对
- json格式
// 获取流
BufferdReader reader= request.getReader()
//逐行读取存入StringBuilder
...
while((line = reader.readline) != null) {
str.append(line);
}
str.toString()
- multipart/form-data,可以上传文件和键值对
功能开发流程
- dao层开发
- dao层测试
- service 开发
- servlet开发
- 接口测试
网友评论