美文网首页JavaWeb
JavaWeb-010-HttpServlet详解

JavaWeb-010-HttpServlet详解

作者: 53b3f4658edc | 来源:发表于2017-11-12 10:08 被阅读25次
    微信公众号:JavaWeb架构师

    概述

    • 继承自GenericServlet,针对于HTTP请求协议所定制。
    • 在service(ServletRequest req, ServletResponse res)方法中直接把ServletRequest和ServletResponse强转为HttpServletRequest和HttpServletResponse,并调用重载的service(HttpServletRequest,HttpServletResponse)方法。
    • 在service(HttpServletRequest,HttpServletResponse)方法中获得了请求的方式(req.getMethod()),调用doXxx()方法(Xxx为具体的请求方式)。
    • 实际开发中,直接继承HttpServletRequest,重写doXxx()方法,就好。
    微信公众号:JavaWeb架构师

    优点

    • 直接有针对性的覆盖doXxx方法。
    • 直接使用HttpServletRequest和HttpServletResponse,不在需要强转。

    测试代码

    LoginServlet.java

    package com.mac;
    import java.io.IOException;
    import java.io.PrintWriter;
    import javax.servlet.ServletConfig;
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class LoginServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
        //根据请求的方式重写doXxx(res,req)方法
        //已经强转成对应的HTTP请求和响应了,可以使用更多的方法
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
            res.setContentType("text/html;charset=UTF-8");
            PrintWriter out = res.getWriter();
    
            //1.获取ServletContext对应的全局初始化参数(在web.xml中)
            ServletConfig sco = this.getServletConfig();
            System.out.println(sco);
            ServletContext sc = sco.getServletContext();
            String user = sc.getInitParameter("user");
            String password = sc.getInitParameter("password");
            
            //2.获取用户的HTML输入
            String inputUser = req.getParameter("user");
            String inputPassword = req.getParameter("password");
            
            //3.进行用户名和账号的验证
            if( user.equals(inputUser) && password.equals(inputPassword) ) {
                out.println("登录成功!");
            } else {
                out.println("用户名或密码有误!请检查后重试!!!");
            }
        }
    }
    

    效果

    微信公众号:JavaWeb架构师


    其它


    • 源码下载
    关注下方公众号,回复:javaweb_course.code
    
    完整教程PDF版本下载

    相关文章

      网友评论

        本文标题:JavaWeb-010-HttpServlet详解

        本文链接:https://www.haomeiwen.com/subject/fsjnmxtx.html