0

我是这个论坛的新手。我对我的应用程序中的 JSP/servlet 有疑问我开发了一个应用程序,用户可以在其中根据某些条件搜索一些数据,他将从数据库中获取数据(通过 Hibernate 到 servlet 和 JSP)。当某些数据基于搜索显示在屏幕上时,他/她可能会尝试复制 URL 并转发给任何人,或者如果他尝试在不同的浏览器中打开它会显示一个空白页面。例如:如果我尝试粘贴下面给出的链接,它会显示空白页面 示例链接 ,但我需要显示如何实现这一点的数据。

已编辑:单击菜单栏中的职位搜索后,如评论中所述,页面将重定向到 servlet

 if(action.equals("searchjob")){
            String requireskills=request.getParameter("txt_requireSkills");
             String location=request.getParameter("txt_locationName");
             session.setAttribute("location",location);
             String minexp1=request.getParameter("dd_minimum");
             String maxexp1=request.getParameter("dd_maximum");
             jobsearchDAO = new JobSearchDAOImpl(); 

            List<JobPostInfo> data=jobsearchDAO.jobsearchlist(requireskills,location,minexp1,maxexp1);

            if(data!=null && data.size()!=0){
                //save data



              if(!(session.getAttribute("LoginObject")==null)){
                JobSeeker jobSeeker=(JobSeeker)session.getAttribute("LoginObject");

                JobSearchCriteria jobsearchcriteria= new JobSearchCriteria();
                jobsearchDAO=new JobSearchDAOImpl();

                 jobsearchcriteria.setKeyWords(requireskills);
                 jobsearchcriteria.setLocation(location);

                JobSeeker jobseeker=(JobSeeker)session.getAttribute("jobseeker");
               // 
               // jobsearchcriteria.setJobSeeker(jobseeker.getJobSeekerSn()); 


               jobsearchcriteria.setJscTs(new Date());
                int value=jobsearchDAO.savesearch(jobsearchcriteria);
                 System.out.println("savesearch value------>"+value);

                }


                    session.setAttribute("jobsearchlist", data);

                  //  session.setAttribute("success","Search Criteria is saved to database."); 

                response.sendRedirect("jobsearchresult.jsp");
                }else 
                {

                  session.setAttribute("error","No Records found");

                   response.sendRedirect("jobsearch.jsp");
                }

        }

这是 DAOIMPL 中的代码

     public List<JobPostInfo> jobsearchlist(String requireskills,String location,String minexp1,String maxexp1) throws Exception{
     long minexp;
     long maxexp;

       try{
             session =getSession();
            //Criteria Query
            Criteria query=session.createCriteria(JobPostInfo.class,"jpost");



          // if(minexp1.equals("0") && (maxexp1.equals("") || maxexp1==null)){
          if((minexp1.equals("-1")  || minexp1=="-1") && maxexp1==null){

           }
          else if(minexp1.equals("0")){

                minexp=Long.parseLong(minexp1);
                long min=1;
                query.add(Restrictions.lt("jpost.experienceMin",min)); 
           }else if(!(minexp1.equals("") || minexp1==null) && maxexp1.equals("-1")) {

                    minexp=Long.parseLong(minexp1);
                    query.add(Restrictions.ge("jpost.experienceMin",minexp));  
           }else if(!(minexp1==null && maxexp1==null)){

                   minexp=Long.parseLong(minexp1);
                   maxexp=Long.parseLong(maxexp1);
                   query.add(Restrictions.and(Restrictions.ge("jpost.experienceMin",minexp),Restrictions.le("jpost.experienceMax",maxexp)));
               }   



             //For Location 

                 if(!(location==null|| location.equals(""))){
                                    query.createAlias("jpost.location","location");
                                    query.add(Restrictions.like("location.locationName",location).ignoreCase());

                 }
            //For Keyword
             if(!(requireskills==null || requireskills.equals(""))){


                     query.add(Restrictions.like("jpost.requiredSkills","%"+requireskills+"%").ignoreCase());
                 }//requireskills

             List<JobPostInfo> list = query.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).list();



             if(list.size()==0){
             return null;
             }else{
                 return list;
                 }

             }catch(HibernateException e){
              e.printStackTrace();
             }finally {
             close(session);
             }
             return null;


 }
4

1 回答 1

0

我解决了我的问题。这是一个非常基本的错误,我希望这对其他人有帮助:

response.sendRedirect("jobsearchresult.jsp")被替换为request.getRequestDispatcher("studentinformation.jsp").forward(request, response)

include- 方法。第二件事是,会话是使用 servlet 创建和初始化的。当我在不同的浏览器中复制链接时,将执行 servlet 的某个块。示例

action.equals("searchjob")

因此,当会话尚不可用时,我在每个块中对其进行初始化,例如分离声明和初始化。

于 2012-06-01T07:40:22.820 回答