Câu hỏi: PRJ301 Phát triển ứng dụng Java web – Bộ ôn tập thi lại số 1
50 câu trắc nghiệm kèm lời giải của môn PRJ301 - Phát triển ứng dụng Java web, xếp đúng thứ tự trong đề.
Danh sách câu hỏi
HttpServletServletConfigServletContextServletjava.sqljavax.jdbcorg.jdbccom.db.jdbcHttpServletJavaServletWebServletServletClass<html>
<body>
<form action="Record" >
User:<input type="text" id="txtname1" name="txtname2">
<br>
Address:<input type="text" id="txtadd1" name="txtadd2">
<br>
<input type="submit" value="GotoZone">
</form>
</body>
</html>Which of the Servlet code takes input from an html form and displays it on the browser?
Đáp án đúng: "public class RecordServlet extends HttpServlet
{
protected void doGet(HttpServletRequest req,HttpServletResponse res)throws ServletException,IOException
{
PrintWriter pw=res.getWriter();
res.setContentType("text/html");
String account=req.getParameter("txtname2");
String Addr=req.getParameter("txtadd2");
pw.println("Hello " + account + " from" + Addr);
pw.close();
}}". Biểu mẫu khai thuộc tính action trỏ tới Record mà không ghi method, nên trình duyệt gửi theo mặc định là GET, vì vậy lớp servlet phải cài phương thức doGet; đồng thời tên tham số gửi đi là giá trị của thuộc tính name chứ không phải id, tức txtname2 và txtadd2. Lựa chọn dùng "doPost(HttpServletRequest req,HttpServletResponse res)" cùng "req.getParameter("txtname1")" sai cả hai chỗ: không cài doGet nên yêu cầu từ biểu mẫu bị báo không hỗ trợ phương thức, mà tên id cũng không bao giờ được gửi lên. Lựa chọn đọc đúng "req.getParameter("txtname2")" nhưng lại đặt mã trong "doPost(HttpServletRequest req,HttpServletResponse res)" thì vẫn không chạy với yêu cầu GET. Lựa chọn có đúng "doGet(HttpServletRequest req,HttpServletResponse res)" lại lấy "req.getParameter("txtadd1")" theo id, nên hai biến nhận về null và trang chỉ in ra chữ Hello kèm null.
<servlet-mapping>
<servlet-name>ServletA</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ServletB</servlet-name>
<url-pattern>/bservlet.html</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ServletC</servlet-name>
<url-pattern>*.servletC</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ServletD</servlet-name>
<url-pattern>/dservlet/*</url-pattern>
</servlet-mapping>Given that a user enters the following into thier browser, which (if any) of the mapped servlets will execute? (Choose one.) http://mywebserver:8081/mywebapp
ServletAServletBServletCServletDĐáp án đúng: "Using the <%@ include > directive.". Chỉ thị này chèn nội dung tệp khác vào trang ngay ở pha dịch: hai tệp hợp thành một lớp servlet duy nhất, nên biến khai ở tệp cha dùng được trong phần được chèn và ngược lại, nhưng đổi tệp con thì phải dịch lại trang cha. Khi cần chèn ở thời điểm chạy thì có thẻ hành động include, nó gọi tài nguyên đích rồi ghép kết quả vào phản hồi. "Using the <import> tag." không tồn tại trong JSP; việc khai lớp Java cần dùng thì làm bằng thuộc tính import của chỉ thị page. "Using the <link> tag." là thẻ HTML do trình duyệt xử lý để nạp tài nguyên như bảng kiểu, hoàn toàn không phải cơ chế ghép trang phía máy chủ. "Using the <external> tag." không có trong đặc tả JSP lẫn trong HTML, đây chỉ là tên bịa.
request.getParameter()response.getParameter()request.getValue()response.getValue()