controller控制jsp弹窗_Spring MVC的Controller接受请求方式以及编写请求处理方法

bb60f97877edebd04249461a1949219e.png

Controller接受请求参数的常见方法:

1、通过Bean接受请求参数:

创建POJO实体类

创建pojo包,并在该包中创建实体类UserForm,代码:

package pojo;public class UserForm {    private String uname;//与请求参数名称相同    private String upass;    private String reupass;    public String getUname() {        return uname;    }    public void setUname(String uname) {        this.uname = uname;    }    public String getUpass() {        return upass;    }    public void setUpass(String upass) {        this.upass = upass;    }    public String getReupass() {        return reupass;    }    public void setReupass(String reupass) {        this.reupass = reupass;    }}

创建控制器类,在controller包中创建控制器类IndexController和UserController

其中@RequestMapping注解的作用个人浅显的理解就是将方法或类注解为一个“路径”的名称,以便在HTML,JSP(视图)向控制器发送请求时寻找到。

IndexController代码:

package controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controller//在这里@Controller相当于@Controller(“indexController”)@RequestMapping("/index")public class IndexController {    @RequestMapping("/login")    public String login() {        return "login";//跳转到“/WEB-INF/jsp/login.jsp”    }    @RequestMapping("/register")    public String register() {        return "register";    }}

UserController代码:

package controller;import javax.servlet.http.HttpSession;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.ModelAttribute;import org.springframework.web.bind.annotation.RequestMapping;import pojo.UserForm;import service.UserService;@Controller//在这里@Controller相当于@Controller(“userController”)@RequestMapping("/user")public class UserController {    //得到一个用来记录日志的对象,这样打印信息的时候能够标记打印的是那个类的信息    private static final Log logger = LogFactory.getLog(UserController.class);    //将服务依赖注入到属性userService    @Autowired     public UserService userService;    /**     * 处理登录     */    @RequestMapping("/login")    public String login(UserForm user, HttpSession session, Model model) {        if(userService.login(user)){            session.setAttribute("u", user);            logger.info("成功");            return "main";//登录成功,跳转到main.jsp        }else{            logger.info("失败");            model.addAttribute("messageError", "用户名或密码错误");            return "login";        }        }    /**     *处理注册     */    @RequestMapping("/register")    public String register(@ModelAttribute("user") UserForm user) {        if(userService.register(user)){            logger.info("成功");            return "login";//注册成功,跳转到login.jsp        }else{            logger.info("失败");            //使用@ModelAttribute("user")与model.addAttribute("user", user)功能相同          //在register.jsp页面上可以使用EL表达式${user.uname}取出ModelAttribute的uname值            return "register";//返回register.jsp        }    }}

创建页面视图,结合视图中更能理解@RequestMapping注解的作用,其中关于本次知识的核心代码为标签中的内容:

创建register.jsp代码:

注册画面        
姓名: 密码: 确认密码:

创建login.jsp代码:

       后台登录    
姓名: 密码: ${messageError }

2、通过处理方法的形参接收请求参数

即将控制类UserConttroller中的register方法的代码修改如下:

@RequestMapping("/register")/***通过形参的计收请求参数,形参名称与请求参数名称完全相同*/    public String register(String uname,String upass,Model model) {        if(userService.equals(uname)&&userService.equals(upass)){            logger.info("成功");            return "login";//注册成功,跳转到login.jsp        }else{            logger.info("失败");            return "register";//返回register.jsp        }    }

3、通过HttpServetRequest接受请求参数(推荐使用):

即将控制类UserConttroller中的register方法的代码修改如下:

    @RequestMapping("/register")    public String register(HttpServletRequest request,Model model) {               String uname = request.getParameter("uname");               String upass = request.getParameter("upass");        if(userService.equals(uname)&&userService.equals(upass)){            logger.info("成功");            return "login";//注册成功,跳转到login.jsp        }else{            logger.info("失败");            return "register";//返回register.jsp        }    }

其他@PathVariable、@RequestParam等不多赘述,原理相同。

b5e6f10285bca5fea755aaaa05520e34.png

作者:阿波罗的手
链接:https://www.cnblogs.com/linchenguang/p/11243444.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值