【问题标题】:Http sessions and hibernate combined useHttp session和hibernate结合使用
【发布时间】:2014-02-14 13:55:01
【问题描述】:

/* * 要更改此模板,请选择工具 |模板 * 并在编辑器中打开模板。 */

  package Registration;
  import Pojos.Users;
  import Pojos.hiber;
  import java.io.IOException;
  import java.io.PrintWriter;
  import javax.servlet.ServletException;
  import javax.servlet.annotation.WebServlet;
  import javax.servlet.http.HttpServlet;
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.HttpServletResponse;
  import javax.servlet.http.HttpSession; 
  import org.hibernate.Session;
  import org.hibernate.SessionFactory;
  import org.hibernate.Transaction;

/**
*
* @author parag
 */


   @WebServlet(name="Reg",urlPatterns={"/Reg"})

   public class Reg extends HttpServlet{
   protected void processRequest(HttpServletRequest request, HttpServletResponse    response) 
        throws ServletException,IOException
    {
    response.setContentType("text/html; charset=UTF-8");

    PrintWriter out = response.getWriter();
    try{
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Servlet Registration </title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h1>Servlet Registration</h1>");
        out.println("</body>");
        out.println("</html>");

    }
    finally{
        out.close();
    }
   }




   @Override
   protected void doGet(HttpServletRequest request, HttpServletResponse response)
       throws ServletException,IOException
  {
   processRequest(request, response);
  }


  @Override
  protected void doPost(HttpServletRequest request, HttpServletResponse response)
       throws ServletException, IOException
   {
   PrintWriter out = response.getWriter();


   String uname , fname ,lname, pwd , email , address , country , gender , hobby ,         education,image;


    uname = request.getParameter("user_name");

    fname = request.getParameter("fname");
    lname = request.getParameter("lname");
    pwd = request.getParameter("pass");

    String p = request.getParameter("phone");



    email =request.getParameter("em");

    address = request.getParameter("add");
    country = request.getParameter("country");
    gender = request.getParameter("gender");

    hobby = request.getParameter("hobby");

    education = request.getParameter("edu");

    String d = request.getParameter("sltdate");
    String m = request.getParameter("sltmonth");
    String y = request.getParameter("sltyear");

    String bdate = d+"--"+m+"--"+y;
  try{

    SessionFactory sessionFactory = hiber.getSessionFactory();
    Session session = sessionFactory.openSession();
    Users user = new Users();


    user.setUserName(uname);
    user.setFirstName(fname);
    user.setLastName(lname);
    user.setPassword(pwd);
    user.setPhoneNo(p);
    user.setProfPic(null);
    user.setEmail(email);
    user.setAddress(address);
    user.setBirthdate(bdate);
    user.setCountry(country);
    user.setGender(gender);
    user.setHobby(hobby);
    user.setEducation(education);

    session.save(user);

    Transaction transaction = session.beginTransaction();


    if (true){

   transaction.commit();

   HttpSession session1 = request.getSession(true);

   session1.setAttribute("un", uname);

    response.sendRedirect("image_upload.jsp");
    }
    out.println("okkkk");
    session.close();

    //response.sendRedirect("index.jsp");



}catch(Exception e){
    out.println("Error" +e.getMessage());

}


}

}

这是我定义了 http 会话变量的 servlet,但在其他页面上我没有得到这个会话变量。怎么办?

【问题讨论】:

  • 会话会在每个用户请求某些内容时自动创建。只需从请求对象 request.getSession() 中获取
  • 贴出一些你尝试过的代码,这将有助于得到答案
  • 嗨 jhadesdev,我已经给出了代码,我想知道为什么我没有在其他页面上获取 http 会话变量?而且我还想知道如何通过休眠存储图像。建议我从哪里可以获得任何链接。谢谢

标签: hibernate jsp httpsession


【解决方案1】:

要检索存储在 jsp 中的会话中的对象(如果它们是字符串),您可以这样做。

<input type="text" value="${sessionScope.un}" />

<% String username = (String)request.getSession().getAttribute("un"); %>

另外,创建 HibernateFactory 是一个非常昂贵的过程,请考虑不要在每个请求中创建。

【讨论】:

  • 感谢 Koitoer .. 我得到了这个,我在存储图像时也遇到了问题。如何做到这一点?
  • 比较复杂的问题首先需要上传要存储的文件,然后上传的文件 *bytes 表示需要存储在数据库中的一个 BLOB 中,从第一种方法开始在使用 Servlet3 时上传文件并获取 servlet 中的字节,考虑使用 @Multipart ,这是一个很好的起点。 docs.oracle.com/javaee/6/tutorial/doc/glrbb.html
  • 嘿 Koitoer 我已经发布了一个问题,我想知道这个链接 stackoverflow.com/questions/21772181/… 请指导我...
猜你喜欢
  • 2016-05-08
  • 1970-01-01
  • 2014-06-28
  • 1970-01-01
  • 1970-01-01
  • 2011-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多