一.导入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>");
}
}
这样一个未登录不显示注销按钮,登录后不显示登陆按钮的测试就写好了