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"); } }