登陆的缺点
A、登陆成功或者失败没有办法实现页面的跳转
request.getRequestDispatcher("success.jsp").forward(request,response);
B、JSP的作本身的作用是负责页面的信息的显示,但是我们现在却用jsp进行流程控制
解决方法: 把流程控制代码写到servlet中
login.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>用户登陆页面</title>
</head>
<body>
<h3>用户登陆</h3>
<%--
必须注意:
文本框想要进行数据传递必须指定name属性
--%>
<form action="servlet/LoginServlet" method="post">
<p>
账号:<input type="text" name="zh"/>
<%
String msg= (String) request.getAttribute("msg");
if(msg!=null) {
out.print(msg);
}
%>
</p>
<p>
密码:<input type="text" name="pwd" />
</p>
<p>
<input type="submit" value="登陆"/>
</p>
</form>
</body>
</html>
dologin.jsp
public class LoginServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//[1]接受login.jsp传递过来的数据
String z= request.getParameter("zh");
String p= request.getParameter("pwd");
//[2]判断用户名和密码是否正确
boolean flag=false;
if("sxt".equals(z)&&"123".equals(p)){
flag=true;
}
//[3]给用户做出响应
if(flag){
//转发--可以实现页面的跳转
request.getRequestDispatcher("../success.jsp").forward(request,response);
}else{
request.setAttribute("msg","账号和密码不匹配");
request.getRequestDispatcher("../login.jsp").forward(request,response);
}
}
}