三层架构概述
表示层
表示层主要负责接收用户的请求并返回数据,为客户端提供应用程序的访问接口,通常由Servlet实现。
业务逻辑层
业务逻辑层负责对数据实现业务逻辑的封装,提供服务接口,这一层通常由Service类实现。
数据访问层
数据访问层主要负责与数据库进行交互,处理数据库的读写操作,由DAO类实现。
项目结构示例:
com.mayikt.servlet
- 表示层(Servlet)com.mayikt.service
- 业务逻辑层(Service)com.mayikt.dao
- 数据访问层(DAO)
MVC模型
MVC是指模型(Model)、视图(View)和控制器(Controller)的设计模式。
模型(M)
模型结合了业务逻辑层和数据库访问层。它代表应用程序中的数据和数据逻辑,负责与数据库进行交互。
视图(V)
视图由网页、JSP等组成,主要用于展示模型中的数据,负责处理数据显示。
控制器(C)
控制器负责处理用户交互,从视图读取数据,并将其发送到模型。Servlet的角色就是担任控制器。
视图层
视图层包括JSP、Freemarker模板(ftl)、JavaScript(js)和CSS文件。
注解解析
1. @RequestParam
作用:将请求中指定名称的参数赋值给控制器的形参。
示例:
java
@RequestMapping("/demo")
public String demo(@RequestParam("uname") String name){
System.out.println(name);
return "show2";
}
2. @RequestBody
作用:用于获取请求体内容并自动转换为对象。
示例:
java
@RequestMapping("/demo")
public String demo(@RequestBody User user){
System.out.println(user.getName());
return null;
}
3. @PathVariable
作用:用于绑定URL中的占位符,实现RESTful风格的请求。
示例:
java
@RequestMapping("/show8/{ename}/{esex}")
public String show8(@PathVariable String ename, @PathVariable String esex) {
System.out.println(ename);
System.out.println(esex);
return "sucess";
}
4. Restful
Restful是一种软件架构风格,主要用于客户端与服务器间的交互,使得软件设计更加简洁、层次分明。
请求方式:
- GET:获取资源
- POST:创建资源
- PUT:更新资源
- DELETE:删除资源
5. @RequestHeader
作用:用于获取请求消息头。
示例:
java
@RequestMapping("show02")
public String show02(@RequestHeader(value = "msg1") String msg) {
System.out.println(msg);
return "sucess";
}
- @RequestMapping
- 在默认的情况下RequestMapping是支持所有的请求方式(get,post,delete)
@RequestMapping("value = "/add",method = RequestMethod.post)
RequestMethod.post设定该接口支持的类型
java
@RestController
@RequestMapping("/user")
public class TwoController {
@RequestMapping("/add",method = RequestMethod.post)
public String selectAll(@RequestBody Emp emp){
System.out.println(emp);
return "success";
}
}
请求参数的绑定
支持的数据类型
- 基本类型参数:包括基本类型和String类型。
- POJO类型参数:包括实体类。
- 数组和集合类型参数:支持List和Map集合。
- Servlet API对象:如HttpServletRequest和HttpServletResponse。
示例代码:
java
@RequestMapping("/show")
public String show() {
return "one";
}
@RequestMapping("/show1")
public String show1(String msg1) {
System.out.println("接收到用户数据为" + msg1);
return "sucess";
}
小结
本文详细介绍了三层架构及MVC模式的基本概念和实现,同时阐述了常用的注解及请求参数的绑定方式,为开发者在Java Web开发过程中提供了清晰的参考。