session问题求救!!!急!!!

nalanlee 2003-08-19 08:51:16
小弟对JSP和Servlet都没有什么认识,只是随手翻过一些东东。现在突然公司的一个项目决定挂到web上,静态的偶都搞定了,可惜对用户身份和密码认证的,我却看的一头雾水。
具体要求就是用户输入名字和密码以后,进行相关的认证(无论是从数据库里面读取,还是怎么着,这个目前还不是主要问题),如果不符合,就给用户一个空页面,如果符合,就进入一个新的页面。如果用户跳过认证直接敲入新页面的url,将不会返回正确的新页面。
我初步认为应该是在认证时建立一个session并且写入相关信息,在新页面里面检验这个session,然后判断用户是否是合法登陆的用户。不知道这个想法是否正确?
而即使这个想法正确,偶也对怎么写代码不太懂,因为要的急,已经没有时间慢慢学习了,希望哪位大侠能够贴一下关键部分的代码或者理论指导一下也可以。
真的很急,谢谢了!!!
...全文
42 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
transist 2003-08-20
  • 打赏
  • 举报
回复
其实最好还是认真学习一下安全验证机制,毕竟这才是比较标准的验证方式。
如果理解了,实现非常简单,安全性很好,还可以控制用户权限。
如果只是用session的变量来判断,岂不是每张页面都要判断,太繁琐了。
zxdhaha 2003-08-20
  • 打赏
  • 举报
回复
if (request.getQueryString()==null)
{
session.setAttribute("LoginBack",request.getRequestURL());
}
else
{
session.setAttribute("LoginBack",request.getRequestURL()+"?"+request.getQueryString());
}
String StrLogined="";
String Logining="";
if (session.getAttribute("Logined")!=null)
{
StrLogined=session.getAttribute("Logined")+"";
}
if (session.getAttribute("Logining")!=null)
{
Logining=session.getAttribute("Logining")+"";
}
if (!StrLogined.equals("true"))
{
if (!Logining.equals("true"))
{
response.sendRedirect("Login.jsp");
}
}
将上述代码写入一个文件,每个页面都include它,
在Login.jsp里边做判断如果登录成功则
session.setAttribute("Logined","true");
response.sendRedirect(session.getAttribute("LoginBack")+"");
hfprogramer 2003-08-20
  • 打赏
  • 举报
回复
呵呵,方法有很多。
也可以把用户数据库信息写到一个JSP文件中,以后的文件中都include。

Session的时间设置应该放在服务的初开化设定里面,例如Resin中是放在resin.conf中的。
我是菜鸟,其他的Web服务没有用过,不敢说。呵呵。
homepna 2003-08-19
  • 打赏
  • 举报
回复
大家好,我也是JSP和SERVLET的初学者,请问SESSION的时间如何确定呀?
seaman0916 2003-08-19
  • 打赏
  • 举报
回复
AlanLuo_2002(耶罗) 的方法赞同!

楼主的想法很好,
但是,楼主还必须考虑权限的分配问题!不可能让登陆的所有用户都用相同的权限!
AlanLuo_2002 2003-08-19
  • 打赏
  • 举报
回复
然后你再在logined.jsp里面判断是否存在这个session,如果不存在那么就返回到前一页
AlanLuo_2002 2003-08-19
  • 打赏
  • 举报
回复


import javax.servlet.*;
import javax.servlet.http.*;

import java.io.*;
import java.util.*;


/**
* A servlet for login
*
* @author <a href="mailto:luo.xiao@vip.163.com">Luoxiao</a>
* @version 1.0
*/


public class LoginServlet extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK";
//Initialize global variables
public void init() throws ServletException {
}
//Process the HTTP Get request
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
try
{
HttpSession session=request.getSession();

String username=request.getParameter("username");
String password=request.getParameter("password");
/*
数据库验证username和password
*/
session.setAttribute("user",userinfo);//userinfo是从数据库取得的用户信息所存放到的类的对象
response.sendRedirect("logined.jsp");//跳转到登陆以后的jsp

}catch (Exception e)
{
e.printStackTrace();
}

}
//Clean up resources
public void destroy() {
}
}
huanxiangzhe24 2003-08-19
  • 打赏
  • 举报
回复
想法是正确的。
主要是通过session.setAttribute("username",user)
session.getAttribute("username")
这两个语句来处理啦。
baliok 2003-08-19
  • 打赏
  • 举报
回复
想法是正确的。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧