游客发表
用户名或密码错误
"); } } %> ``` 代码写到这儿,你可能觉得太简陋。没错,真实项目没人这么干。但你要理解JSP的本质——它就是个模板,让你把Java代码和HTML揉在一起。我见过新手把整个业务逻辑全塞进JSP,几百行Java代码混着HTML标签,那场面简直灾难。所以后来大家学乖了,用Servlet处理逻辑,JSP只负责显示。可单纯讲登录页,用JSP自带的脚本元素反而能说清楚整个流程。 有个细节容易被忽略:密码比对不能明文。上面代码里我写了`"123456".equals(password)`,实际开发你得用MD5或BCrypt加密后再比对。还有SQL注入问题,千万别用字符串拼接查询,得用PreparedStatement。这些安全细节,比登录功能本身重要得多。 会话管理是登录页的另一只脚。`session.setAttribute`存了用户信息,后续每个页面都得检查session是否为空。很多人忘了在welcome.jsp里加验证,结果直接访问welcome.jsp就能绕过登录,这笑话闹过不少次。 ```jsp <% if (session.getAttribute("user") == null) { response.sendRedirect("login.jsp"); return; } %> ``` 这三行代码,是登录系统的守门员。放在每个受保护页面的最顶端,比什么过滤器都直观。当然项目大了得用Filter统一处理,但单页面教学,这就是最朴素的写法。 我个人的观察是,现在年轻人一上来就学Spring Boot + Vue,很少回头碰JSP。但JSP登录页有个好处——你能看见数据流动的全过程。从表单到request,从request到session,每一步都透明。不像前后端分离,中间隔着一道JSON,出了问题排查半天不知道是前端还是后端的事。 写这个登录页,最爽的时刻是看到`response.sendRedirect`那行代码执行后,浏览器地址栏跳转到welcome.jsp的瞬间。那是一种“我控制了页面流转”的成就感。虽然土,但踏实。 最后提醒一句,别把密码存在session里,存个用户ID就够。session这玩意儿默认30分钟过期,你要是存了密码,等于把钥匙挂在门口。登录页写多了,你会养成一种直觉——哪些数据该放哪里,哪些操作该多重验证,这些经验比任何框架都值钱。友情链接