SpringMVC
来源:互联网 发布:利润表数据分析 编辑:程序博客网 时间:2024/06/08 07:57
一、概念
MVC: model,view,controller
springMVC: 是一个MVC框架,能够将数据,业务和展现分离
二、原理图
三、xml配置方式实现
代码地址:https://github.com/xiangqian19831224/springmvc01.git
1、创建工程
2、在web.xml中配置前端控制器DispatcherServlet
配置DispatcherServlet
配置映射规则
3、web-inf下创建spring的mvc配置文件
文件名称为[servlet-name]-servlet.xml
[servlet-name]就是web中配置的servlet-name
4、在[servlet-name]-servlet.xml中配置HandlerMapping,controller
动作名字->controller
hello.do->com.xx.HelloController
参看最小面的图
5、创建jsp页面,需要发出请求的页面
动作名字->发送命令
与4结合看,名字对应的消息,会传送到对应的controller
6、创建controller继承AbastractController,重写handleRequestInternal函数
//返回數據和頁面
ModelAndView mav = newModelAndView("index");
mav.addObject("helloworld", "hello " +hello);
7、在[servlet-name]-servlet.xml中配置视图解析器
四、注解实现
代码地址:https://github.com/xiangqian19831224/springmvc02.git
1、controller注解
@Controller
public classHelloController {
@RequestMapping(value="/hello.do")
public String hello(String userName, Model model){
System.out.println(userName);
model.addAttribute("helloworld", userName);
return "";
}
}
2、配置
web.xml: 配置dispatcherServlet 不变
hello.jsp: 参数name="userName" 与controller中的参数命名一样
[servlet-name]-servlet.xml:
五、访问controller的方式
1、通过beanname的方式
2、通过类型的方式
注: controller命令为, [name]Controller, jsp中,类型为[name].do就可以<假设servlet urlPatern为*.do>
3、通过简单url方式,我再spring4.0上面没有测试通过,3.0支持
1
4、源码地址:
https://github.com/xiangqian19831224/springmvc03.git
六、访问多个页面
1、controller添加路径信息进行区分
返回的是页面路径
@Controller
@RequestMapping("user")
public class UserController {
@RequestMapping(value="list")
publicString list(){
System.out.println("--------查询用户信息----------");
return"userinfo/user_list";
}
@RequestMapping(value="add.do")
publicString add(){
System.out.println("--------用戶信息添加----------");
return"userinfo/user_add";
}
}
2、jsp页面
href值为对应的动作路径
3、源码地址:https://github.com/xiangqian19831224/springmvc04.git
七、参数传递方法
1、通过设置HttpServletRequest request来获取参数
publicString add1(HttpServletRequest request){
String userNum = request.getParameter("userNumber");
String password =request.getParameter("password");
System.out.println("userNumber:" + userNum + " password:" + password);
return "user_add1";
}
2、通过设置同名参数
@RequestMapping(value="/add2.do")
publicString add2(String userNumber, int password){
System.out.println("userNumber:" + userNumber + " password:" + password);
return"user_add2";
}
3、通过@RequestParam限定赋值参数
@RequestMapping(value="/add3.do")
publicString add3(@RequestParam("userNumber") StringuserNumber, @RequestParam("password") int password){
System.out.println("userNumber:" + userNumber + " password:" + password);
return"user_add3";
}
4、通过类传参数
@RequestMapping(value="/add4.do")
publicString add4(UserInfo user){
System.out.println(user.toString());
return"user_add4";
}
5、时间参数传递
注意: importjava.util.Date;
@RequestMapping(value="/add5.do")
publicString add5(Integer userId,Date userTime){
System.out.println(userId);
System.out.println(userTime);
return"user_add5";
}
@InitBinder
public voidinitBinder(ServletRequestDataBinder bin){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-ddHH:mm:ss");
CustomDateEditor cust = new CustomDateEditor(sdf, true);
bin.registerCustomEditor(Date.class,cust);
}
参考代码:
https://github.com/xiangqian19831224/springmvc05.git
八、返回页面数据
1. HttpServletRequest request直接使用 request.setAttribute("user", str);
@RequestMapping(value="/add1.do")
publicString add1(HttpServletRequest request){
StringuserNum = request.getParameter("userNumber");
Stringpassword = request.getParameter("password");
System.out.println("userNumber:" + userNum + " password:" + password);
String str ="userNumber:" + userNum + " password:" + password;
request.setAttribute("user", str);
return"user_add1";
}
2. 使用ModelAndView
@RequestMapping(value="/add2.do")
publicModelAndView add2(){
ModelAndViewmodelAndView = new ModelAndView("user_add2");
modelAndView.addObject("userId", 1001);
modelAndView.addObject("userName", "张三");
returnmodelAndView;
}
3. 使用Model model
@RequestMapping(value="/add3.do")
publicString add3(Model model){
model.addAttribute("personId", 1233);
model.addAttribute("personName", "唐伯虎");
return"user_add3";
}
4. 使用Map
@RequestMapping(value="/add5.do")
publicString add5(Integer personId,String personName,Map map){
System.out.println(personId);
System.out.println(personName);
map.put("personId", 9527);
map.put("personName", "唐伯虎");
return"user_add5";
}
参考代码:https://github.com/xiangqian19831224/springmvc06.git
九、SpringMVC AJAX
1、通过HttpServletResponse直接返回结果
@RequestMapping("/ajaxUser.do")
public voiduserNumber(String userNumber, HttpServletResponse response) {
System.out.println(userNumber);
try {
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
PrintWriterout = response.getWriter();
if("liu".equals(userNumber)) {
out.println("对不起,请从新输入账号");
} else{
out.println("恭喜你,账号可以使用");
}
out.flush();
out.close();
} catch(Exception e) {
e.printStackTrace();
}
}
2、通过json格式返回
@RequestMapping("ajaxUser2.do")
public@ResponseBody UserInfo ajaxUser(Integer userId) {
System.out.println("编号:" + userId);
UserInfouserInfo = new UserInfo();
userInfo.setUserId(userId);
userInfo.setUserName("张三");
userInfo.setUserSex("男");
returnuserInfo;
}
springmvc-servlet.xml配置
参考代码:
https://github.com/xiangqian19831224/springmvcajax.git
MVC: model,view,controller
springMVC: 是一个MVC框架,能够将数据,业务和展现分离
二、原理图
三、xml配置方式实现
代码地址:https://github.com/xiangqian19831224/springmvc01.git
1、创建工程
2、在web.xml中配置前端控制器DispatcherServlet
配置DispatcherServlet
配置映射规则
3、web-inf下创建spring的mvc配置文件
文件名称为[servlet-name]-servlet.xml
[servlet-name]就是web中配置的servlet-name
4、在[servlet-name]-servlet.xml中配置HandlerMapping,controller
动作名字->controller
hello.do->com.xx.HelloController
参看最小面的图
5、创建jsp页面,需要发出请求的页面
动作名字->发送命令
与4结合看,名字对应的消息,会传送到对应的controller
6、创建controller继承AbastractController,重写handleRequestInternal函数
//返回數據和頁面
ModelAndView mav = newModelAndView("index");
mav.addObject("helloworld", "hello " +hello);
7、在[servlet-name]-servlet.xml中配置视图解析器
四、注解实现
代码地址:https://github.com/xiangqian19831224/springmvc02.git
1、controller注解
@Controller
public classHelloController {
@RequestMapping(value="/hello.do")
public String hello(String userName, Model model){
System.out.println(userName);
model.addAttribute("helloworld", userName);
return "";
}
}
2、配置
web.xml: 配置dispatcherServlet 不变
hello.jsp: 参数name="userName" 与controller中的参数命名一样
[servlet-name]-servlet.xml:
五、访问controller的方式
1、通过beanname的方式
2、通过类型的方式
注: controller命令为, [name]Controller, jsp中,类型为[name].do就可以<假设servlet urlPatern为*.do>
3、通过简单url方式,我再spring4.0上面没有测试通过,3.0支持
1
4、源码地址:
https://github.com/xiangqian19831224/springmvc03.git
六、访问多个页面
1、controller添加路径信息进行区分
返回的是页面路径
@Controller
@RequestMapping("user")
public class UserController {
@RequestMapping(value="list")
publicString list(){
System.out.println("--------查询用户信息----------");
return"userinfo/user_list";
}
@RequestMapping(value="add.do")
publicString add(){
System.out.println("--------用戶信息添加----------");
return"userinfo/user_add";
}
}
2、jsp页面
href值为对应的动作路径
3、源码地址:https://github.com/xiangqian19831224/springmvc04.git
七、参数传递方法
1、通过设置HttpServletRequest request来获取参数
publicString add1(HttpServletRequest request){
String userNum = request.getParameter("userNumber");
String password =request.getParameter("password");
System.out.println("userNumber:" + userNum + " password:" + password);
return "user_add1";
}
2、通过设置同名参数
@RequestMapping(value="/add2.do")
publicString add2(String userNumber, int password){
System.out.println("userNumber:" + userNumber + " password:" + password);
return"user_add2";
}
3、通过@RequestParam限定赋值参数
@RequestMapping(value="/add3.do")
publicString add3(@RequestParam("userNumber") StringuserNumber, @RequestParam("password") int password){
System.out.println("userNumber:" + userNumber + " password:" + password);
return"user_add3";
}
4、通过类传参数
@RequestMapping(value="/add4.do")
publicString add4(UserInfo user){
System.out.println(user.toString());
return"user_add4";
}
5、时间参数传递
注意: importjava.util.Date;
@RequestMapping(value="/add5.do")
publicString add5(Integer userId,Date userTime){
System.out.println(userId);
System.out.println(userTime);
return"user_add5";
}
@InitBinder
public voidinitBinder(ServletRequestDataBinder bin){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-ddHH:mm:ss");
CustomDateEditor cust = new CustomDateEditor(sdf, true);
bin.registerCustomEditor(Date.class,cust);
}
参考代码:
https://github.com/xiangqian19831224/springmvc05.git
八、返回页面数据
1. HttpServletRequest request直接使用 request.setAttribute("user", str);
@RequestMapping(value="/add1.do")
publicString add1(HttpServletRequest request){
StringuserNum = request.getParameter("userNumber");
Stringpassword = request.getParameter("password");
System.out.println("userNumber:" + userNum + " password:" + password);
String str ="userNumber:" + userNum + " password:" + password;
request.setAttribute("user", str);
return"user_add1";
}
2. 使用ModelAndView
@RequestMapping(value="/add2.do")
publicModelAndView add2(){
ModelAndViewmodelAndView = new ModelAndView("user_add2");
modelAndView.addObject("userId", 1001);
modelAndView.addObject("userName", "张三");
returnmodelAndView;
}
3. 使用Model model
@RequestMapping(value="/add3.do")
publicString add3(Model model){
model.addAttribute("personId", 1233);
model.addAttribute("personName", "唐伯虎");
return"user_add3";
}
4. 使用Map
@RequestMapping(value="/add5.do")
publicString add5(Integer personId,String personName,Map map){
System.out.println(personId);
System.out.println(personName);
map.put("personId", 9527);
map.put("personName", "唐伯虎");
return"user_add5";
}
参考代码:https://github.com/xiangqian19831224/springmvc06.git
九、SpringMVC AJAX
1、通过HttpServletResponse直接返回结果
@RequestMapping("/ajaxUser.do")
public voiduserNumber(String userNumber, HttpServletResponse response) {
System.out.println(userNumber);
try {
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
PrintWriterout = response.getWriter();
if("liu".equals(userNumber)) {
out.println("对不起,请从新输入账号");
} else{
out.println("恭喜你,账号可以使用");
}
out.flush();
out.close();
} catch(Exception e) {
e.printStackTrace();
}
}
2、通过json格式返回
@RequestMapping("ajaxUser2.do")
public@ResponseBody UserInfo ajaxUser(Integer userId) {
System.out.println("编号:" + userId);
UserInfouserInfo = new UserInfo();
userInfo.setUserId(userId);
userInfo.setUserName("张三");
userInfo.setUserSex("男");
returnuserInfo;
}
springmvc-servlet.xml配置
参考代码:
https://github.com/xiangqian19831224/springmvcajax.git
阅读全文
0 0
- SpringMVC
- springmvc
- SpringMVC
- SpringMVC
- springMvc
- springMVC
- springmvc
- springMVC
- springMVC
- springmvc
- SpringMVC
- SpringMVC
- springMvc
- springmvc
- springmvc
- SpringMVC
- Springmvc
- springmvc
- 跨服务器操作
- Axure 跨域问题
- js 拼接字符串 识别为变量 而不是字符串
- 扫描二维码、扫描条形码、相册获取图片后识别、生成带 Logo 二维码、支持微博微信 QQ 二维码扫描样式
- MySQL的模糊查询
- SpringMVC
- 各种语言运行时的lib目录
- The content of element type "log4j:configuration" must match "(renderer*,log4j.xml文件中标签顺序有误
- BIM安全信息系统数据采购及服务项目SUFENCGCOM
- 如何在eclipse的配置文件里指定jdk路径(即配置启动eclipse的JDK)
- Unity 给代码添加命名空间
- Electron 快速入门
- 深度学习发展历程
- Kubernetes,微服务以及 Service Mesh