servlet中實現頁面跳轉

轉載:http://blog.sina.com.cn/s/blog_5c5bc9070100zhsn.htmlhtml


1) redirect 方式java

  response.sendRedirect("/a.jsp");web

  頁面的路徑是相對路徑。sendRedirect能夠將頁面跳轉到任何頁面,不必定侷限於本web應用中,如:瀏覽器

  response.sendRedirect("URL");session

  跳轉後瀏覽器地址欄變化。jsp

  這種方式要傳值出去的話,只能在url中帶parameter或者放在session中,沒法使用request.setAttribute來傳遞。ide

  2) forward方式this

  RequestDispatcher dispatcher = request.getRequestDispatcher("/a.jsp");url

  dispatcher .forward(request, response);spa

  Servlet頁面跳轉的路徑是相對路徑。forward方式只能跳轉到本web應用中的頁面上。

  跳轉後瀏覽器地址欄不會變化。

  使用這種方式跳轉,傳值能夠使用三種方法:url中帶parameter,session,request.setAttribute

實例:

第一種方法:

AccountBean.java文件

package com.ht.servlet;

public class AccountBean {

 private String username = "";

 private String password = "";

 public String getPassword() {

  return password;

 }

 public void setPassword(String password) {

  this.password = password;

 }

 public String getUsername() {

  return username;

 }

 public void setUsername(String username) {

  this.username = username;

 }

}

CheckAccount.java文件

package com.ht.servlet;

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;

public class CheckAccount extends HttpServlet {

 @Override

 protected void doPost(HttpServletRequest req, HttpServletResponse resp)

   throws ServletException, IOException {

  doGet(req,resp);

 }

 @Override

 public void doGet(HttpServletRequest req, HttpServletResponse resp)

   throws ServletException, IOException {

  HttpSession session = req.getSession();

  AccountBean account = new AccountBean();

  String username = req.getParameter("username");

  String pwd = req.getParameter("pwd");

  account.setPassword(pwd);

  account.setUsername(username);

  if((username != null)&&(username.trim().equals("jsp"))) {

   if((pwd != null)&&(pwd.trim().equals("1"))) {

    System.out.println("success");

    session.setAttribute("account", account);

    String login_suc = "success.jsp";

    resp.sendRedirect(login_suc);

    return;

   }

  }

  String login_fail = "fail.jsp";

  resp.sendRedirect(login_fail);

  return;

 }

 

}

第二種方法:

package servlets;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.RequestDispatcher;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class LoginServlet extends HttpServlet {

 

 public void doGet(HttpServletRequest request, HttpServletResponse response)

   throws ServletException, IOException {

  doPost(request,response);

 }


 public void doPost(HttpServletRequest request, HttpServletResponse response)

   throws ServletException, IOException {

  String user = request.getParameter("user");

  RequestDispatcher rd = null;

  if(user!=null&&user.equals("admin"))

  {

   request.getSession().setAttribute("login", "true");

   rd = request.getRequestDispatcher("admin.html");

   rd.forward(request, response);  

  }

  else if(user!=null&&user.equals("common"))

  {

   request.getSession().setAttribute("login", "true");

   rd = request.getRequestDispatcher("common.html");

   rd.forward(request, response);    

  }

  else

   response.sendRedirect("login.html");

 }

}

相關文章
相關標籤/搜索