EL表达式实现登陆注销按钮隐藏

一.导入jstl的jar包

1 下载jstl的jar包

下载地址:百度云网盘地址
提取码: hikr

2 导入jar包(注意)
第一步:(此处使用的是IEDA)

新建一个web项目后,点击File–>Project Structure–>Libraries–>±->JAVA,选择下载后的jar包路径,点击Apply完成第一步
在这里插入图片描述

在这里插入图片描述

第二步

第一步完成后,并没有真正的jar包导入到项目里,IDEA会提示找不到jar包
在这里插入图片描述
这时需要将jar包导入到项目的lib中,双击jstl的jar包
在这里插入图片描述
这样jstl的jar包才算真正的导入到了项目中
在这里插入图片描述

二 代码实现

1 jsp代码部分
在web目录下新建com.page.home.jsp
<%--
  Created by IntelliJ IDEA.
  User: 云中鹊
  Date: 2020/7/31
  Time: 16:24
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>主页</title>
</head>
<body>
<table>
    <c:if test="${login==null}">
        <div>
            <button><a href="pages/login.jsp">登录</a></button>
           </button>
        </div>
    </c:if>
    <c:if test="${login!=null}">
        <a href="/Kaoshi_war_exploded/userinfo">${login}</a>
        <button><a href="/Kaoshi_war_exploded/logout">注销</a></button>
    </c:if>

</table>
</body>
</html>

这里有个需要住的地方,就是在引用jar包文件是,千万别导错包,这里有两个核心包名字非常相似,很容易倒错包,在后面代码编写时又不报错,只会在项目部署之后,网页显示500,很恶心,一定要导入第一个核心包,也就是jsp/jstl/core
在这里插入图片描述
在这里插入图片描述

2 Servlet

为了模拟登陆,可以编写一个sevlet,将登录数据写死或者写在本地文件中

@WebServlet("/login")
public class Login extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String uname=req.getParameter("userName");
        String upsd=req.getParameter("password");
        req.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");
        BufferedReader br=new BufferedReader(new FileReader("d:\\user.txt"));
        String str;
        while((str=br.readLine())!=null){
            String name=str.split("=")[0];
            String psd=str.split("=")[1];
            if(uname.equals(name)){
                if(upsd.equals(psd)){
                    req.getSession().setAttribute("login",uname);
                    Cookie cookie=new Cookie("login",uname+"="+upsd);
                    cookie.setMaxAge(7*24*3600);
                    resp.addCookie(cookie);
                    req.getRequestDispatcher("/pages/home.jsp").forward(req,resp);
                    return;
                }
                resp.getWriter().write("<script language='javascript'>alert('密码输入错误');window.location.href='/Kaoshi_war_exploded/pages/login.jsp';</script>");
                return;
            }
        }
        resp.getWriter().write("<script language='javascript'>alert('用户不存在');window.location.href='/Kaoshi_war_exploded/pages/regist.jsp';</script>");
    }
}

这样一个未登录不显示注销按钮,登录后不显示登陆按钮的测试就写好了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值