servlet获取参数(以登录界面为例 从浏览器中获取账号和密码)及其页面返回响应

本文演示了如何在IDEA中使用Servlet处理POST请求,从login.html接收账号和密码,通过doPost方法获取参数,并在控制台打印。然后通过修改Servlet代码,根据内存中的预设值进行账号密码验证,将验证结果以HTML形式通过response返回给前端。如果账号密码正确,显示绿色成功信息;否则,显示红色失败信息。避免了空指针异常,并讨论了中文乱码问题。

基于必要的编码环境都完备 实现servlet获取参数——

简单易懂,我用的开发是IDEA,以此作为示例。

在web下创建login.html(登陆界面的html文件)
在这里插入图片描述
在这里插入图片描述
路径 action=“login” 在.xml文件中补充映射路径 提交方法选择post

创建一个loginServlet 类
因为浏览器中的form的method是post,所以LoginServlet需要提供一个doPost方法

在doPost方法中,通过request.getParameter 根据name取出对应的账号和密码

然后用System.out.println() 打印在控制台

注 这里是打印在控制台,并没有在网页上输出

package initial;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class loginServlet extends HttpServlet {
    protected  void doPost(HttpServletRequest request, HttpServletResponse response )
     throws ServletException, IOException {
       String name=request.getParameter("name");
       String password = request.getParameter("password");

       System.out.println("name:"+name);
       System.out.println("password:"+password);
    }

}

之后再web.xml中增加映射

<servlet>
        <servlet-name>loginServlet</servlet-name>
        <servlet-class>initial.loginServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>loginServlet</servlet-name>
        <url-pattern>/login</url-pattern>
    </servlet-mapping>

一般都是< servlet >< /servlet > 和 < servlet-mapping> < /servlet-mapping> 一起出现
name 、class 是针对于这项业务所写的类 mapping就是映射路径 也就是action=“login” 每一部分都需要指定到类名 pattern 里是跳转参数

tomcat运行之后 显示的网页页面时index.jsp 不能直接跳转到login 需要再login.html中输入登录密码 之后跳转 浏览器是不会显示这个提交的数据,
在tomcat窗口能被看见 而且要想从后台tomcat服务器得到反馈数据 就得通过响应

返回响应:
一般是 在数据库中交互实现的 (也就是平时的qq等软件的账户密码是存储于数据库里的)

简化一下可以通过内存对比 判断账号密码正误
需要把loginServlet类改写:

public class loginServlet extends HttpServlet {
    protected  void doPost(HttpServletRequest request, HttpServletResponse response )
     throws ServletException, IOException {
       String name=request.getParameter("name");
       String password = request.getParameter("password");

//       System.out.println("name:"+name);
//       System.out.println("password:"+password);
        String html=null;
        if("yyp".equals(name)&&"qwer".equals(password))
        {
            html="<div align='center' style='color:green'>succes</div> ";
        }
        else
            html="<div align='center' style='color:red'>fail</div>";

        PrintWriter ps=response.getWriter();
        ps.println(html);
    }

}

比较的时候把常量字符串"admin" "123"放前面,因为用户可能没有输入账号密码就提交,servlet会获取到null。 这样就规避了空指针异常的问题。
使用中文 可能引起乱码

在login.html中输入正确的账号密码 点击登录即可
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值