说明
上接:Servlet init(ServletConfig)、init()方法的作用
案例
实现登录功能,将登录名、密码配置到 注解 中,重写 init() 方法,读取 登录名、密码。
登录时,与表单提交的用户名、密码进行比较,如果一致就认为登录成功,否则就登录失败
登录页
创建 login.jsp 页面,代码如下:
<form method="post" action="doLogin">
用户名:<input name="username"><br>
密码:<input name="password"><br>
<input value="登录" type="submit">
</form>
处理登录的Servlet类 - LoginServlet
处理登录的Servlet:LoginServlet
package test;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(
urlPatterns = "/doLogin",
initParams = {
@WebInitParam(
name="username",
value = "lilei"
),
@WebInitParam(
name="password",
value = "123456"
)
}
)
public class LoginServlet extends HttpServlet {
private String usernameInitPara;
private String passwordInitPara;
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html; charset=UTF-8");
String username=req.getParameter("username");
String password=req.getParameter("password");
PrintWriter out=resp.getWriter();
//登录成功
if(usernameInitPara.equals(username) && passwordInitPara.equals(password)){
resp.sendRedirect("index.jsp");
}else{//登录失败重定向到loginFails.jsp
resp.sendRedirect("loginFails.jsp");
}
}
// 读取xml中的正确登录、密码
@Override
public void init() throws ServletException {
usernameInitPara =getInitParameter("username");
passwordInitPara =getInitParameter("password");
}
}
web.xml
使用注解后,不需要修改 web.xml