1、解析要求:在login.jsp页面上有登录信息:如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>登录界面</title>
</head>
<body>
<form action="${pageContext.request.contextPath }/customers/ab/create.action" method="post">
<p>username:<input type="text" name="username">${username }</p>
<p>password:<input type="password" name="password">${password }</p>
<p><input type="submit" value="提交"></p>
</form>
</body>
</html>
根据以上信息完善Controller类中的内容。
@Controller
@RequestMapping("___/helloworld__") //①请在横线处填写正确的信息
public class HelloWorldController {
@RequestMapping(value="___login.jsp_____", method = RequestMethod.POST)//②请在横线处填写正确的信息。
public void handleRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("================POST");
③接收login.jsp页面上的用户名、密码
④将从页面中取得的用户名、密码存放在request中,通过请求转发到login.js页面
request.getRequestDispatcher("/login.jsp").forward(request, response);
}
}
可以使用request的getParameter方法
request.getParameter("username") //获取用户名
request.getParameter("password") //获取密码
@RequestMapping("( Spring 自动填充此处会自动替换为在配置文件中定义的URL地址 )/helloworld__") //①请将括号中的URL地址修改为正确的URL地址
public class HelloWorldController {
@RequestMapping(value="login.jsp__", method = RequestMethod.POST)//②请将括号中的URL地址修改为正确的URL地址
public void handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username = request.getParameter("username");//③从请求参数中获取用户名
String password = request.getParameter("password");//从请求参数中获取密码
System.out.println("用户名:" + username);
System.out.println("密码:" + password);
if (username.equals("admin") && password.equals("admin")) {//判断用户名和密码是否正确
request.getRequestDispatcher("helloworld.jsp").forward(request, response);//④请求helloworld.jsp页面
} else {
request.setAttribute("message", "用户名或密码错误,请重新输入。");//⑤设置请求参数,提示用户重新输入
request.getRequestDispatcher("login.jsp").forward(request, response);
}
}