Servlet之简单用户登录验证


网站结构

Login.java -> 登录界面 执行(登录请求)
LoginCl.java -> 验证用户
登录界面 <- 验证不通过 | 验证通过 -> welcome.java 欢迎界面

Login.java

// 登录界面
package com.lee;
import javax.servlet.http.*;
import java.io.*;

public class Login extends HttpServlet {
    // 处理get请求
    public void doGet(HttpServletRequest req,HttpServletResponse res){
        // 业务逻辑
        this.doPost(req,res);
        try{
            // 解决中文乱码
            res.setContentType("text/html;charset=gbk");
            PrintWriter pw = res.getWriter();
            // 返回登录界面
            pw.println("<html>");
            pw.println("<body>");
            pw.println("<form action=loginCl method=post>");
            pw.println("<h1>登录 :</h1>");
            pw.println("用户名:<input type=text name=username><br>");
            pw.println("密码:<input type=password name=passwd><br>");
            pw.println("<input type=submit value=登录><br>");
            pw.println("</form>");
            pw.println("</body>");
            pw.println("</html>");
        }catch(Exception e){
            e.printStackTrace();
        }
    }
    
    // 处理post请求
    public void doPost(HttpServletRequest req,HttpServletResponse res){
        // doGet doPost合二为一

    }
}

LoginCl.java

// 用户验证servlet
package com.lee;
import javax.servlet.http.*;
import java.io.*;

public class LoginCl extends HttpServlet {
    // 处理get请求
    public void doGet(HttpServletRequest req,HttpServletResponse res){
        // 业务逻辑
        this.doPost(req,res);
    
    }
    
    // 处理post请求
    public void doPost(HttpServletRequest req,HttpServletResponse res){
        // doGet doPost合二为一
        try{
            // 接收客户端表单提交的用户名和密码
            String uName = req.getParameter("username");
            String pwd = req.getParameter("passwd");
            //验证
            if(uName.equals("root") && pwd.equals("123")){
                // 合法
                res.sendRedirect("welcome");
            }else{
                // 不合法
                //跳转
                res.sendRedirect("login");  // 你需要跳转的 URL
            }
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

Welcome.java

// 欢迎界面
// 用户验证servlet
package com.lee;
import javax.servlet.http.*;
import java.io.*;

public class Welcome extends HttpServlet {
    // 处理get请求
    public void doGet(HttpServletRequest req,HttpServletResponse res){
        // 业务逻辑
        try{
            PrintWriter pw = res.getWriter();
            pw.println("Welcome!");
        }catch(Exception e){
            e.printStackTrace();
        }
    }
    
    // 处理post请求
    public void doPost(HttpServletRequest req,HttpServletResponse res){
        // doGet doPost合二为一

    }
}

XML添加如下配置

    <!--登录Login-->
    <servlet>
        <servlet-name>login</servlet-name>  
        <servlet-class>com.lee.Login</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>login</servlet-name>
        <url-pattern>/login</url-pattern>
    </servlet-mapping>
    
    <!--验证用户登录-->
        <servlet>
        <servlet-name>loginCl</servlet-name>    
        <servlet-class>com.lee.LoginCl</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>loginCl</servlet-name>
        <url-pattern>/loginCl</url-pattern>
    </servlet-mapping>
    <!--欢迎界面-->
    <servlet>
        <servlet-name>welcome</servlet-name>    
        <servlet-class>com.lee.Welcome</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>welcome</servlet-name>
        <url-pattern>/welcome</url-pattern>
    </servlet-mapping>

给个github follow me的链接,上面有很多初学者可供学习的资料,项目.

<a>https://github.com/SuperZee</a>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,365评论 25 708
  • Java程序调用带参数的shell脚本返回值 首先来看看linux中shell变量($#,$@,$0,$1,$2)...
    Javen205阅读 3,929评论 0 3
  • 这两天忽然有点想回我的大学-漳州师范学院看看了,虽然现在已经改了名-闽南师范大学,还是比较喜欢用原来的名字称呼她...
    simple_xuan阅读 386评论 0 3
  • 昨晚平安夜,夜班还算不是太忙,就是发热咳嗽的病人依旧多,大部分是衡中和二中的学生,症状相似,流感样病例,都...
    6d09a43af1ec阅读 355评论 0 0
  • 我一直想写下一些东西,为你,为我 为我们的爱,为回忆,也为留念 可是一直不敢动笔 因为心中装满太多的悲伤,不想被人...
    永远不游的鱼阅读 226评论 0 1

友情链接更多精彩内容