重写GenericServlet源代码并实现登录用户名密码的匹配

 

重写GenericServlet源代码并实现登录用户名密码的匹配(重写类名为MyGenericServlet)。
GenericServlet:是一个Servlet, 是Servlet接口和ServletConfig接口的实现类,但是是一个抽象类。
其中的service方法为抽象方法,并要格外注意初始化时init()方法,重写时不建议直接覆盖init(ServletConfig) 如果没有super(ServletConfig)而使用了ServletConfig(),会出现空指针异常!!

MyGenericServlet.java

package com.test.one;

import java.io.IOException;
import java.util.Enumeration;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public  abstract class MyGenericServlet implements Servlet,ServletConfig {

    @Override
    public void destroy() {

    }

    @Override
    public ServletConfig getServletConfig() {
        return servletConfig;
    }

    @Override
    public String getServletInfo() {
        // TODO Auto-generated method stub
        return null;
    }

    private ServletConfig servletConfig;

    @Override
    public void init(ServletConfig arg0) throws ServletException {
        this.servletConfig = arg0;
        init();
    }
    private void init()throws ServletException {

    }
    @Override
    public  void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
        
    }

    
    //---------以下方法是ServletConfig接口的方法--------------
    @Override
    public String getInitParameter(String arg0) {
        return servletConfig.getInitParameter(arg0);
    }

    @Override
    public Enumeration<String> getInitParameterNames() {
        return servletConfig.getInitParameterNames();
    }

    @Override
    public ServletContext getServletContext() {
        return servletConfig.getServletContext();
    }

    @Override
    public String getServletName() {
        return servletConfig.getServletName();
    }

}

LoginServlet.java

package com.test.one;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.GenericServlet;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class LoginServlet extends GenericServlet {

    @Override
    public void init() throws ServletException {
    System.out.println("初始化...");
        
    }

    @Override
    public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
        //1.获取请求参数:username password
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        //2.获取当前WEB应用的初始化参数user password
        //需要使用ServletContext 对象
        String initUser = getServletContext().getInitParameter("user");
        String initPassword = getServletContext().getInitParameter("password");
        PrintWriter out = response.getWriter();
        //3.比对
        if(initUser.equals(username)&& initPassword.equals(password)) {
            out.print("Hello" + username);
        }
        else {
            out.print("Sorry" + username);
        }
        //4.打印响应字符串
        
    }

}

web.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                      http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
  version="4.0"
  metadata-complete="true">
     <!-- 配置当前WEB应用的初始化参数 -->
     <context-param>
       <param-name>user</param-name>
       <param-value>zty200329</param-value>
     </context-param>
     
     <context-param>
       <param-name>password</param-name>
       <param-value>123456</param-value>
     </context-param>
     
     
     <!-- 配置Servlet -->
     <servlet>
       <servlet-name>loginServlet</servlet-name>
       <servlet-class>com.test.one.LoginServlet</servlet-class>
     </servlet>
     <servlet-mapping>
       <servlet-name>loginServlet</servlet-name>
       <url-pattern>/loginServlet</url-pattern>
     </servlet-mapping>
</web-app>

login.html文件

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

  <form action="loginServlet" method="post">
  
    user:<input type="text" name="username"/>
    password:<input type="password" name="password"/>
    
    <input type="submit" value="Submit"/>
  
  </form>

</body>
</html>

 

转载于:https://www.cnblogs.com/zty200329/p/10813411.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值