在com.controller包中的LoginController.java
package com.controller;
import com.beans.LoginParam;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;
@Controller
public class LoginController {
@RequestMapping("/login_1.do")
//方法一:在方法的声明的时候传入 HttpServletRequest ,然后绑定到请求上
/*public String logoin(HttpServletRequest request) {
String name = request.getParameter("uname");
String pwd = request.getParameter("pwd");
String status = "请登录";
if("caott".equals(name)&&"488".equals(pwd)){
status = name+"登录成功";
}else{
status = name +"登录失败";
}
request.setAttribute("status",status);
return "view";
}*/
/* 使用方式二,在方法中直接传入 和请求参数一致的 形式参数,并且传入HttpServletRequest
*/
/*public String login1(String uname,String pwd, HttpServletRequest request){
String status ="请登录";
if("caott".equals(uname)&&"488".equals(pwd)){
status = uname+"登录成功";
}else{
status = uname +"登录失败";
}
request.setAttribute("status",status);
return "view";
}*/
// 使用方式三,创建一个类封装请求参数
/*public String login2(LoginParam lg, HttpServletRequest request){
String uname = lg.getUname();
String pwd = lg.getPwd();
String status ="请登录";
if("caott".equals(uname)&&"488".equals(pwd)){
status = uname+"登录成功";
}else{
status = uname +"登录失败";
}
request.setAttribute("status",status);
return "view";
}*/
/*使用方式四,在创键封装类的同时使用 Map,和 ModelAndView
ModelAndView 相当于一种引用类型,这种类型和其他类型声明一样
但是这种类型的使用要传入Map值,所以,在这个方法里面新建了一个map,以键值对的形式存入map中
map要用put方法传入值*/
/*public ModelAndView login3(LoginParam lg){
String un = lg.getUname();
String pwd=lg.getPwd();
String status = "请登录";
if("caott".equals(un)&&"488".equals(pwd)){
status = "caott成功";
}else{
status="caott失败";
}
Map<String,Object> data = new HashMap<String,Object>();
data.put("status", status);
ModelAndView nav = new ModelAndView("view",data);
System.out.println("ModelAndView方法");
return nav;
}*/
/*
* 使用方式五,这种方式是传入ModelMap和构造参数
* 要用 .addAttribute("",值)的方式传入到ModeMap中
*/
/*public String login4(LoginParam lp, ModelMap mm) {
String un = lp.getUname();
String pwd = lp.getPwd();
String status;
if ("caott".equals(un) && "488".equals(pwd)) {
status = "caott成功";
} else {
status = "登录失败";
}
mm.addAttribute("status", status);
System.out.println("这是login_5.do的请求,使用了ModelMap");
return "view";
}*/
/*使用方式六
request.getParameter("height")与@RequestParam("height")一样的原理
都是获取请求参数的值*/
public String logi5(
@RequestParam("uname")String uname,
@RequestParam("pwd") String p,HttpServletRequest request
){ //可以直接在这里使用与请求参数名相同的形式参数,两者会自动关联,但是如果名字不同,就要使用【@RequestParam("请求参数名") String 形式参数名】的方法来获取请求参数的值
String status ="请登录";
if("caott".equals(uname)&&"488".equals(p)){
status = uname+"登录成功";
}else{
status = uname +"登录失败";
}
request.setAttribute("status",status);
return "view";
}
}
在com.beans包下的LoginParam.java
package com.beans;
public class LoginParam {
//uname
private String uname;
public String getUname(){
return uname;
}
public void setUname(String uname){
this.uname = uname;
}
//pwd
private String pwd;
public String getPwd(){
return pwd;
}
public void setPwd(String pwd){
this.pwd = pwd;
}
//override
@Override
public String toString(){
return "姓名:"+uname +";密码:"+pwd;
}
}