java登陆页面

当设计一个Java Web应用的登录页面时,逻辑思路通常包括以下几个步骤,这些步骤并不直接涉及代码,而是描述了整个流程的概念设计:

  1. 页面设计
    • 设计登录页面的用户界面,包括用户名和密码输入框、登录按钮、可能的验证码输入框、注册链接等。
    • 确保页面布局清晰、友好,易于用户理解和操作。
  2. 前端验证(可选):
    • 在用户提交表单之前,可以使用JavaScript进行前端验证,例如检查用户名和密码是否已填写,密码是否符合规定的格式等。
    • 前端验证虽然不是必须的,但可以提升用户体验,减少不必要的服务器请求。
  3. 表单提交
    • 当用户点击登录按钮后,表单数据(用户名和密码)将被发送到服务器。
    • 表单可以通过HTTP的POST方法提交,以确保数据的安全性。
  4. 后端接收请求
    • Java Servlet或Spring MVC等后端框架将接收来自前端的HTTP请求,并解析请求中的参数(即用户名和密码)。
  5. 后端验证
    • 在服务器端,对接收到的用户名和密码进行验证。
    • 这通常涉及查询数据库中的用户信息,比对用户名和密码是否匹配。
    • 还可以在此阶段进行其他验证,如检查用户是否已被禁用、是否需要重置密码等。
  6. 处理验证结果
    • 如果用户名和密码匹配,验证成功,服务器将生成一个会话(session)或令牌(token),并将其返回给客户端。
    • 客户端在后续的请求中携带这个会话或令牌,以证明其已登录状态。
    • 如果验证失败,服务器将返回一个错误消息给客户端,提示用户重新输入或进行其他操作(如找回密码)。
  7. 重定向或响应
    • 验证成功后,服务器可以将用户重定向到受保护的资源页面或主页。
    • 验证失败时,服务器可以在当前页面显示错误消息,或者将用户重定向回登录页面。
  8. 会话管理
    • 服务器需要跟踪和管理用户的会话,以确保用户在登录状态下能够访问受保护的资源。
    • 当用户退出登录或会话过期时,服务器需要清除会话信息,并确保用户无法再访问受保护的资源。
  9. 安全性考虑
    • 在整个登录过程中,需要考虑多种安全性因素,如防止SQL注入、跨站脚本攻击(XSS)、跨站请求伪造(CSRF)等。
    • 使用HTTPS协议来保护数据传输过程中的安全性。
    • 对密码进行哈希存储,并在验证时比对哈希值,而不是明文密码。
  10. 日志记录
    • 记录登录活动的日志,以便后续审计和故障排查。
    • 记录成功和失败的登录尝试,以及任何异常或可疑行为。

实现一个简单的登陆页面 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>login</title>
</head>
<body>
    <form action="firstServlet" method="post" >
    <div>
        <label>学号:<input type="text" name="xuehao" placeholder="输入您的学号" required></label><br>
        <label>姓名:<input type="text" name="name" placeholder="输入您的姓名" required></label>
    </div>
    <input  type="submit" value="提交">
    <input  type="reset" value="取消">
    </label>
    </form>
</body>
</html>

返回参数:

package Se;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet(name = "firstServlet", value = "/firstServlet")
public class firstServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");


        String XueHao = request.getParameter("xuehao");
        String name= request.getParameter("name");
        String school="广西外国语学院";
        String major="计算机科学与技术";

        request.setAttribute("xuehao",XueHao);
        request.setAttribute("name",name);
        request.setAttribute("school",school);
        request.setAttribute("major",major);
        request.getRequestDispatcher("/secondServlet").forward(request, response);
    }
}

跳转页面:

package Se;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet(name = "secondServlet", value = "/secondServlet")
public class secondServlet extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");


        PrintWriter out = response.getWriter();
        out.println("<!DOCTYPE html>");
        out.println("<html><head>");
        out.println("<meta charset=\"UTF-8\">");
        out.println("<title>"+"信息"+"</title></head>");
        out.println("<body>");
        out.println("<table border=\"1\">");
        out.println("<tr>");
        out.println("<th>"+"学校:"+"</th>");
        out.println("<th>"+"专业:"+"</th>");
        out.println("<th>"+"姓名:"+"</th>");
        out.println("<th>"+"学号:"+"</th>");
        out.println("</tr>");
        out.println("<tr>");
        out.println("<td>"+ request.getAttribute("school")+"</td>");
        out.println("<td>"+ request.getAttribute("major")+"</td>");
        out.println("<td>"+ request.getAttribute("xuehao")+"</td>");
        out.println("<td>"+ request.getAttribute("name")+"</td>");
        out.println("</tr>");
        out.println("</table>");
        out.println("</body>");
        out.println("</html>");
    }
}

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值