Tạo thư mục dự án như sau :
Ta dùng lại lớp AuthenticationServlet của bài trước nhưng loại bỏ dẫn giải @WebServlet("/logon")
package com.openspace.servlet; import java.io.IOException; import java.io.PrintWriter; 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 AuthenticationServlet extends HttpServlet { private static final long serialVersionUID = 5088499345088449403L; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { if ("toan".equals(req.getParameter("username")) && "servlet".equals(req.getParameter("password"))) { HttpSession session = req.getSession(true); sendPage(req, resp, session); } else { HttpSession session = req.getSession(false); if (session != null) session.invalidate(); sendPage(req, resp, null); } } private void sendPage(HttpServletRequest req, HttpServletResponse resp, HttpSession session) throws IOException { resp.setContentType("text/html"); PrintWriter pw = resp.getWriter(); pw.print("<html><head><title>Log on</title></head><body bgcolor=\"white\">"); if (session == null) { pw.print("<form name=\"logonForm\" method=\"post\" action=\"/Servlet/logon\">" + "<table border=\"0\" >" + "<tr>" + "<th class=\"right\">User name</th>" + "<td class=\"left\"><input type=\"text\" name=\"username\" size=\"30\" ></td>" + "</tr>" + "<tr>" + "<th class=\"right\">Password</th>" + "<td class=\"left\"><input type=\"password\" name=\"password\" size=\"30\">" + "</td>" + "</tr>" + "<tr>" + "<th class=\"right\"><input type=\"submit\" name=\"logon\" value=\"Log on\"></th>" + "<td class=\"right\"><input type=\"reset\" value=\"Reset\"></td>" + "</tr>" + "</table>" + "</form></body></html>"); } else { pw.print("Welcome " + req.getParameter("username") + "<br/>" + "<form name=\"logoffForm\" method=\"post\" action=\"/Servlet/logon\">" + "<input type=\"submit\" name=\"logoff\" value=\"Log out\">" + "</form></body></html>"); } } }
Như đã giải thích trong bài Giới thiệu Java Servlet, tập tin mô tả triển khai ứng dụng web web.xml nằm trong thư mục WEB-INF sẽ có nội dung như sau :
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <servlet> <servlet-name>logon</servlet-name> <servlet-class>com.openspace.servlet.AuthenticationServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>logon</servlet-name> <url-pattern>/logon</url-pattern> </servlet-mapping> </web-app>Giải thích :
- Trong thẻ <servlet>, ta đăng ký tên "logon" cho servlet AuthenticationServlet
- Trong thẻ <servlet-mapping>, ta ánh xạ tên "logon" tới đường dẫn "/logon" để khi người dùng truy vấn tới đường dẫn này, bộ chứa servlet sẽ biết chuyển truy vấn đến servlet AuthenticationServlet để xử lý và gởi trả lời.
Khi ta triển khai ứng dụng web này trên Tomcat và thực hiện truy vấn "http://localhost:8080/Servlet1/logon?username=toan&password=servlet" thì sẽ được kết quả y hệt bài trước
Không có nhận xét nào:
Đăng nhận xét