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()这两个方法来在两个地方传递/共享数据,它可以满足并发的需要。