开发者社区> 问答> 正文

页面登录问题

我设计了一个网页登录系统,使用servlet+JSP来编写,数据库使用MySQL,使用jdbc操作,我想在此请教下各位,怎么保存登录的账号,使其在跳转到另一个页面的时候,可以保持同一个账号,填写资料,存进数据库中。

展开
收起
蛮大人123 2016-03-26 10:55:34 2015 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    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);
        }
    }
    2019-07-17 19:15:44
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载