目录
一、运行结果
二、原理
login.jsp
LoginServlet.java
hello.jsp
三、代码分享
login.jsp
LoginServlet.java
hello.jsp
java登录页面代码。register.jsp 用来处理显示页面
LoginServlet.java 用来处理业务
hello.jsp 用来显示主页面
用到了cookie技术来实现
java模拟表单提交,在这里实现一个表单:有用户名、密码和两周内免登录的选项按钮
第一次当然要自己输入用户和密码;第二次在cookie有效时间内再次登录,那么cookie有记录,就从cookie里面拿数据,从而实现两周内免登录。
实现验证功能,用户名和密码的验证(admin 和123 可以自己在代码中修改)
查看是否勾选了两周内免登录的按钮,勾选之后,就创建一个cookie用来记录,设置cookie的记录时间(为了方便演示,代码中设置的是10s);若没有勾选,则不记录
java表单?输出 主页面 就行
<%@ 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>
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);}
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>hello</title>
</head>
<body>
<h1>主页面</h1>
</body>
</html>
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态