表单提交-两周内免登录javaweb cookie实现

 2023-09-13 阅读 14 评论 0

摘要:目录 一、运行结果 二、原理 login.jsp LoginServlet.java hello.jsp 三、代码分享 login.jsp LoginServlet.java hello.jsp 一、运行结果 二、原理 java登录页面代码。register.jsp 用来处理显示页面 LoginServlet.java 用来处理业务 hello.jsp 用来显示主页面 用到了cookie

目录

一、运行结果

二、原理

login.jsp

LoginServlet.java 

hello.jsp

三、代码分享

login.jsp

LoginServlet.java 

hello.jsp


一、运行结果

 

二、原理

java登录页面代码。register.jsp  用来处理显示页面

LoginServlet.java 用来处理业务

hello.jsp 用来显示主页面

用到了cookie技术来实现

login.jsp

java模拟表单提交,在这里实现一个表单:有用户名、密码和两周内免登录的选项按钮

第一次当然要自己输入用户和密码;第二次在cookie有效时间内再次登录,那么cookie有记录,就从cookie里面拿数据,从而实现两周内免登录。

LoginServlet.java 

实现验证功能,用户名和密码的验证(admin 和123 可以自己在代码中修改

查看是否勾选了两周内免登录的按钮,勾选之后,就创建一个cookie用来记录,设置cookie的记录时间(为了方便演示,代码中设置的是10s);若没有勾选,则不记录

hello.jsp

java表单?输出 主页面 就行

三、代码分享

login.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>用cookie技术实现两周内免登录</title>
</head>
<body>
<font color="red" size="2px">${requestScope.error }</font>
<%//获取所有的cookie进行比对String username="";String passwd="";Cookie[] cookies = request.getCookies();for(int i = 0;cookies != null && i<cookies.length;i++){String cname =cookies[i].getName();if(cname.equalsIgnoreCase("username")){username = cookies[i].getValue();}if(cname.equalsIgnoreCase("passwd")){passwd = cookies[i].getValue();}}
%>
<form action="login" method = "post"><table border="1" width="40%"><tr><td>用户名:</td><td><input type = "text" name = "username"  value="<%= username%>"></td></tr><tr><td>密码:</td><td><input type = "password" name = "password" value="<%= passwd%>"></td></tr><tr><td></td><td><input type="checkbox"name="isFlag" value="true" checked="checked">两周内免登录</td></tr><tr><td colspan="2" align="center"><input type="submit"  value="提交"/></td></tr></table></form><%--使用EL表达式获取--%><%--<form action="login" method = "post">--%><%--<table border="1" width="60%">--%><%--<tr>--%><%--<td>用户名:</td><td><input type = "text" name = "username"  value="${cookie.username.value}"></td>--%><%--</tr>--%><%--<tr>--%><%--<td>密码:</td><td><input type = "password" name = "password" value="${cookie.passwd.value}"></td>--%><%--</tr>--%><%--<tr>--%><%--<td></td>--%><%--<td><input type="checkbox"name="isFlag" value="true" checked="checked">两周内免登录</td>--%><%--</tr>--%><%--<tr>--%><%--<td aria-colspan="2" align="center"><input type="submit"  value="提交"/>提交</td>--%><%--</tr>--%><%--</table>--%><%--</form>--%>
</body>
</html>

LoginServlet.java 

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;@WebServlet("/login")
public class LoginServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");resp.setCharacterEncoding("utf-8");String username = req.getParameter("username");//获取用户名String password = req.getParameter("password");//获取密码//判断用户名和密码是否正确if(username != null && "admin".equals(username) && password != null && "123".equals(password)){System.out.println("登录成功");//表示登录成功!//判断是否记住了多选框String isFlag = req.getParameter("isFlag");if(Boolean.valueOf(isFlag)){//表示记住了//创建cookicCookie c1 = new Cookie("username", username);c1.setMaxAge(10);//60s//设置有效访问路径c1.setPath("/");//表示对当前项目下的所有资源都可见Cookie c2 = new Cookie("passwd", password);//10秒c2.setMaxAge(10);c2.setPath("/");//吧cookie对象添加到相应对象中resp.addCookie(c1);resp.addCookie(c2);}//请求转发到主页面req.setAttribute("username",username);req.getRequestDispatcher("/hello.jsp").forward(req,resp);}else{//登录失败请求转发到登录页面给出错误提示消息req.setAttribute("error","用户名或密码不正确");req.getRequestDispatcher("/login.jsp").forward(req,resp);return;}}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}

 

hello.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>hello</title>
</head>
<body>
<h1>主页面</h1>
</body>
</html>

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/57291.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息