Servlet @WebServlet注解使用,@WebInitParam获取初始化参数

说明

上接: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


原文出处:/show_1IX6myscE6bs.html