web实现登录错误后跳转界面

1.要先写好一个login.html,代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h2>用户登录</h2>
<form action="login" method="get">
    <p>账号:<input type="text" name="name"></p>
    <p>密码:<input type="text" name="passWord"> </p>
    <input type="submit" value="提交">
</form>
</body>
</html>

2.创建一个login的servlet

package net.zixue.servlet;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet(name = "LoginServlet",urlPatterns = "/login")
public class LoginServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String userName="jiangyi";
        String userPass="123";
        String name = request.getParameter("name");
        String passWord = request.getParameter("passWord");
        if(!name.equals(userName))
        {
            //用户名错误
            request.setAttribute("errorMessage","用户名错误");
            request.getRequestDispatcher("/loginError.jsp").forward(request,response);

        }
        else if (!passWord.equals(userPass))
        {//密码错误

            request.setAttribute("errorMessage","密码错误");
            request.getRequestDispatcher("/loginError.jsp").forward(request,response);
        }
    }
}

而loginError.jsp:

<%--
  Created by IntelliJ IDEA.
  User: lenovo
  Date: 2018/8/3
  Time: 16:26
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>


   <h2>用户登录错误界面</h2>
<div>
 <%=request.getAttribute("errorMessage")%>
</div>
</body>
</html>

1.对于跳转的代码这是一个格式

request.getRequestDispatcher(要跳转的界面的js代码的地址).forward(request,response)

2.这里要将错误的原因返回给jsp,故要用共享数据。

共享数据,之前的在多个servlrt中,可以用servletContext来,但是,它在并发的情况下回错误。这里要用request.setAttribute()

,request.getAttribute()这两个方法来在两个地方传递/共享数据,它可以满足并发的需要。

猜你喜欢

转载自blog.csdn.net/weixin_41060905/article/details/81407781