3_32江_0402—doGet与doPost函数的基本使用

3_32江_0402—doGet与doPost函数的基本使用


引言

首先,通过上节课的学习,我们知道了如何进行servlet的映射操作,现在我们进行基础框架的演示,围绕doGet与doPost函数进行演示:

1、doGet函数

为了方便学习,首先要理解这个函数如何运作,我们知道函数中包含变量对象Response,当我们客户端向服务器提出请求,我们的请求信息就会在这个变量中存储,例如用户登录输入账号密码,再通过showMsg函数去完成操作,给出代码如下:

package cn.edu.mju.project13.controller;
import javax.servlet.ServletException;
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("/Login")
public class LoginController extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("<form action='' method='post'>");
        stringBuilder.append("登录名称:<input type='text' name='LoginName' value=''><br>");
        stringBuilder.append("登录密码:<input type='password' name='LoginPwd' value=''><br>");
        stringBuilder.append("<input type='reset' name='reset' value='取消'>");
        stringBuilder.append("<input type='submit' name='submit' value='登录'>");
        stringBuilder.append("</form>");
        showMsg(resp, stringBuilder.toString());
    }
    private void showMsg(HttpServletResponse resp,String msg)throws IOException{
        resp.setCharacterEncoding("UTF-8");
        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append("<html>");
        stringBuilder.append("<header>");
        stringBuilder.append("<title>text</title>");
        stringBuilder.append("<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\">");
        stringBuilder.append("<body>");
        stringBuilder.append(msg);
        stringBuilder.append("</body>");
        stringBuilder.append("</html>");
        PrintWriter out=resp.getWriter();
        out.println(stringBuilder.toString());
        out.close();
    }
}

2、doPost函数

客户端向服务端提出了请求,你们服务端就要通过doPost函数去做回应,因此会有一个Request变量对象去存储相关信息,我们以上面为例,接收前面输入的LoginName与LoginPwd,进行简单的判断语句假设只有35用户通过密码1234才可以完成登录,代码如下:

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String LoginName = req.getParameter("LoginName");
        String LoginPwd = req.getParameter("LoginPwd");
        String msg;
        if (LoginName.equals("35")&& LoginPwd.equals("1234"))
        {
            msg = "你好" + LoginName;
        } else{
            msg="账号或者密码错误";
        }
        showMsg(resp,msg);
    }

3、验证

现在我们进行验证成果,假设现在我们的patch=/Project13(上下文),端口为8081,映射为/Login,我们进行localhost(本机地址127.0.0.1)运行代码使用HTTP超文本传输协议访问页面,进入登录页面,发布输入正确与错误账号密码进行验证如下图:

1.进入登录界面

在这里插入图片描述

2.输入错误账号密码

在这里插入图片描述

3.提示错误

在这里插入图片描述

4.输入正确账号密码

在这里插入图片描述

5.登陆成功

在这里插入图片描述


总结

本次操作有几个 注意点,首先是 HTML标签 的特性一定要有一定的了解,他们的包含关系等等,不注意可能会发生错误,接着是了解 客户端与服务器的获取信息流程 ,以及 变量代表的角色有什么含义,如果有代码运行不了的情况优先选择将项目文件列表的 .idea文件夹删除,进行 rebuild 操作,排除原因考虑 jdk 的设置是否产生冲突,特别是项目文件使用idea自带的jdk时,idea的版本又进行更好,极有可能发生不兼容,导致无法正常运行程序。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值