我设计了一个网页登录系统,使用servlet+JSP来编写,数据库使用MySQL,使用jdbc操作,我想在此请教下各位,怎么保存登录的账号,使其在跳转到另一个页面的时候,可以保持同一个账号,填写资料,存进数据库中。
session,无论用什么框架,最终都是从Servlet或者Filter中取得。归根到底,只要能取得request,就能取得session。
取得session用的是request.getSession。这里有个地方要注意:如果request.getSession(false)。那么session过期的时候返回的是null,默认情况下request.getSession()等于request.getSession(true)。意思是如果session过期则自动创建一个新session。放入session用的是session.setAttribute方法。他有两个参数,前面一个参数是key,是String,后面一个参数是真正用来存放信息的对象,是object。从session中取信息的方法是session.getAttribute,他只有一个参数,就是key。
参考代码:
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.test.LoginUser;
public class TestServlet extends HttpServlet {
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
process(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
process(request, response);
}
private void process(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
HttpSession session = request.getSession(false);
// Session过期
if (session == null) {
request.getRequestDispatcher("/timeout.html").forward(request, response);
return;
}
// 取得
LoginUser user = (LoginUser)session.getAttribute("user");
// 放入
LoginUser user2 = new LoginUser();
user2.setName("test");
session.setAttribute("user", user2);
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。