Avatar billede vanggaard Nybegynder
30. november 2004 - 14:18 Der er 6 kommentarer

Servlet redirekt uden at ændre i browserens history

Hej

Jeg har en servlet (Java HtmlServlet) som laver en masse udregning og så viser forskellige JSP sider. Som der er nu bliver browserens history opdateret. Kan man gøre noget smart så det i browseren ser ud som om, at der kun er blevet åbnet en side ?

<vanggaard/>
Avatar billede arne_v Ekspert
30. november 2004 - 14:33 #1
Du kan vel lave en forward i.s.f. en redirect ?
Avatar billede arne_v Ekspert
30. november 2004 - 14:35 #2
request.getRequestDispatcher("dinside.jsp").forward(request,response);

denudføres server side og er derfor "usynlig" i browseren.
Avatar billede vanggaard Nybegynder
30. november 2004 - 15:06 #3
jeg har prøvet med request.getRequestDispatcher("dinside.jsp").forward(request,response);
men uden held. Browserens history vokser stadig... :(
Avatar billede vanggaard Nybegynder
30. november 2004 - 15:38 #4
Her er min testkode, så I kan se hvad der er jeg gøre forkert:
public class Dispatcher extends HttpServlet {
  private static Logger logger = Logger.getLogger(Dispatcher.class);

  public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
    logger.debug("doGet");
    doPost(req, res);
  }

  public void doPost (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
    logger.debug("doPost");
    HashMap hm = new HashMap();

    Enumeration parameterNames = req.getParameterNames();
    while (parameterNames.hasMoreElements()) {
      String name = (String) parameterNames.nextElement();
      String parameter = req.getParameter(name);
      hm.put(name, parameter);
    }

    String page= (String)hm.get("page");
    if(page==null){
      page = "page1";
    }
    ServletContext sc = getServletContext();
    req.getRequestDispatcher("/jsp/"+page+".jsp").forward(req, res);

  }
}
Avatar billede vanggaard Nybegynder
30. november 2004 - 16:02 #5
Jeg prøver på at lave en HTMLservlet, som virker på samme måde som følgende guess game:
http://freewig.brics.dk/jwig-amoeller/demo/test.Guess*Play
Avatar billede vanggaard Nybegynder
14. december 2004 - 21:57 #6
Efter diverse små test, kan jeg få det til at virke, hvis min servlet bliver kaldt med get. Men hvis den bliver kaldt med post, så bliver der opbygget en history i browseren. Hvorfor det ? hvordan kan jeg undgå det ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester