Servlet——提交表單信息,Servlet之間的跳轉


 

HTML表單標簽:<form></form>

  屬性:

    actoion:  提交到的地址,默認為當前頁面

    method:  表單提交方式 有get和post兩種方式,默認為get

    enctype:  文件上傳時需要設置為multipart/form-data


 

 

 

Get:

  以get方式提交數據時,瀏覽器會把表單內容組織成一個查詢字符串,變量間以&連接,然后以servlrt路徑加"?"加查詢字符串的形式獲取服務器內容

  如:向某個Servlet提交兩個參數a,b,組織后的URL為http://servltname/ServlrtTest?a=aValue&b=bValue

  然后Servlet中用HttpServletRequest對象通過方法getParameter("a")獲取到aValue,b同理

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  String flag = request.getParameter("flag"); //從HttpServletRequest對象中獲取傳遞過來的值,queryAll或者delete
  BookService bs = new BookService();
  if("queryAll".equals(flag)) {
    List<Book> books = bs.queryAll();
    request.setAttribute("books", books);
    request.getRequestDispatcher("LibraryJsp/borrow.jsp").forward(request, response);
  }else if("delete".equals(flag)) {
    String id = request.getParameter("Id");
    Book book = bs.queryOne(id);
    bs.deleteBook(book);
    List<Book> books = bs.queryAll();
    request.setAttribute("books", books);
    request.getRequestDispatcher("LibraryJsp/borrow.jsp").forward(request, response);
  }
}

 

 

Post:

  以post方式提交時,表單內容不會顯示在瀏覽器中。

  在doPost()中用getParameter()獲取表單信息。

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.setCharacterEncoding("UTF-8");
    response.setCharacterEncoding("UTF-8");
 
    String flag = request.getParameter("flag");
    BookService bs = new BookService();
    if("queryByItem".equals(flag)) {
      String item = request.getParameter("item");
      String value = request.getParameter("value");
      List<Book> books = bs.queryByItem(item, value);
      request.setAttribute("books", books);
      request.getRequestDispatcher("LibraryJsp/borrow.jsp").forward(request, response);
    }
}

 

 Servlet之間的跳轉:

  分為轉向Forward、重定向Redirect、刷新Refresh

    轉向:可以跳轉到另一個Servlet,JSP,甚至WEB-INF下的另一個文件

    重定向:通過服務器端返回狀態碼來實現,客戶端請求了兩次服務器。

      301,302都表示重定向,301表示永久性重定向,302表示臨時性重定向

    刷新:可以實現一段時間后跳轉到另一界面,也可以刷新本頁面。

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        
        String id = request.getParameter("username");
        String password = request.getParameter("password");
        LoginService ls = new LoginService();
        User user = ls.Login(id, password);
        if(!user.getUserId().isEmpty()) {
            //登錄成功后,請求轉向
            request.setAttribute("name", user.getUserId());
            request.getRequestDispatcher("LibraryJsp/index.jsp").forward(request, response);
        }else {
            //登陸失敗,重定向
            response.sendRedirect("LibraryJsp/Login.jsp");
        }
    }

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM