|
|
1
1
首先,你不应该像现在在newUser.jsp中那样在Javascript中检查用户名和密码。你应该在服务器端这样做。文本“System not like a empty string”应该来自对类的调用。当您像现在这样将密码打印到javascript中时,如果用户查看源代码,它就会对用户可见。如果有人拦截了流量,那就不太安全了。 此外,一旦您在servlet中验证了用户名/密码,就应该执行response.sendRedirect,而不是转发。“转发”将所有参数转发到下一页。您不需要一直将密码转发到每个页面。如果userid/password正确,则设置一个会话变量,sendRedirect到索引页面,然后在索引页面上提取会话变量并检查该用户是否登录,如果没有,则重定向回登录页面。 现在,不要在会话变量中设置密码。太糟糕了。只需在会话变量中设置用户名即可。使用密码要更加小心。只有在用户名/密码正确的情况下,才能在会话变量中设置用户名。然后在索引页面上,你可以从会话中获取用户名,如果会话中的用户名不是null或空白,你就知道这个家伙已经登录了。否则,如果会话的用户名是null或空字符串,你就会知道这个家伙没有登录,所以重定向到登录页面。 至于将doLogin与doStuff放在哪里,登录servlet实际上只需要验证登录,那么为什么不将doStuff重命名为doLogin并将所有代码放在那里呢? 还有一件事:对于登录,您应该使用POST而不是GET,所以在servlet中将doGet更改为doPost,并在login.jsp中在表单标记中使method=POST。您不希望用户密码在地址栏中可见(get就是这样做的)。(表单标记中没有method=login这回事;它的method=post) 此外,对于您的密码文本框,请使用type=“password”而不是type=“text”。不同的是,type='password'会在键入密码时使其模糊不清。 |
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |