Professional Documents
Culture Documents
Servlet
Web
Model 2
2-2
HTTP Servlet
Servlet
web.xml Deployment Descriptor
Servlet Servlet
Web
HelloServlet.java
package cc.openhome;
import
import
import
import
import
import
java.io.IOException;
java.io.PrintWriter;
javax.servlet.ServletException;
javax.servlet.http.HttpServlet;
javax.servlet.http.HttpServletRequest;
javax.servlet.http.HttpServletResponse;
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
[
String name = request.getParameter("name");
out.println("<html>");
out.println("<head>");
out.println("<title>Hello Servlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1> Hello! " + name + " !</h1>");
out.println("</body>");
out.println("</html>");
] Hello!
out.close();
}
}
HttpServletX doGet() Y
GET
doGet()
HttpServletRequest
HttpServletResponse HTTP
HTTP Java
doGet()
HttpServletRequest HTTP
HttpServletRequest getParameter()
\
@Override JDK5 Annotation
Servlet
@Override
HttpServletResponse
setContentType() Z
text/html UTF8
getWriter() PrintWriter [
PrintWriter println()
HTML Hello! ]
Servlet JSP
Integrated Development Environment, IDE
Eclipse NetBeans IDE
2-3
2-4
doGet() Application
Interface, API
Servlet Servlet
Servlet init() destroy()
service()
Servlet GenericServlet
ServletConfig init() ServletConfig
service() abstract
GenericServlet
4
GenericServlet
HTTP HttpServlet
Servlet HTTP HTTP
GenericServlet HttpServlet service()
package Servlet
javax.servlet Servlet
GenericServletServletRequestServletResponse HTTP
javax.servlet.http
HttpServletHttpServletRequestHttpServletResponse
Servlet service()
HttpServlet service() HTTP
2-5
2-6
2.1.2
Servlet Web Servlet
Web web.xml
Servlet web.xml
HelloServlet
FirstServlet
web.xml
IDE
<servlet> <servlet-mapping>
<servlet> <servlet-class>
cc.openhome.HelloServlet
URL Servlet
<servlet-mapping> <url-pattern>
/hello.do <servlet-name> HelloServlet
/hello.do URL Web
HelloServlet Servlet 2.2
Servlet
2.2 Servlet
2-7
2-8
2.1.3 Web
Servlet web.xml Servlet
Web
Servlet IDE Classpath
Servlet API Tomcat
Tomcat lib servlet-api.jar
HelloServlet.java src
% cd YourWorkspace/FirstServlet
% javac -classpath Yourlibrary/YourTomcat/lib/servlet-api.jar -d ./classes
src/cc/openhome/HelloServlet.java
.class
classes javac -d
.class web.xml
2.3 Web
2.3
WEB-INF
WEB-INF
HTTP WEB-INF
Servlet JSP
Forward
web.xml
Web WEB-INF
web.xml
lib
JAR Java Archive WEB-INF
lib
2-9
2-10
classes
.class WEB-INF
classes
http://localhost:8080/FirstServlet/hello.do?name=caterpillar
2.4 Servlet
2.1.4 WAR
Web Web WAR
Web Archive *.war WAR
JDK jar 2.3
Web FirstServlet
jar cvf ../FirstServlet.war *
WAR
Tomcat Web
2.2 HelloServlet
HelloServlet Web Web
doGet()
Servlet
HTML
HttpServletResponse PrintWriter
2-11
2-12
2.2.1 Web
Web Servlet
Servlet URL Web
Servlet
HTTP HTTP
Cookie HTTP TCP/IP
Servlet Java
Web Java HTTP
Java
HTTP HTTP
HttpServletRequest
HttpServletResponse
Java
2.6 Java
web.xml Servlet
service() HttpServletRequest
HttpServletResponse service() HTTP
doGet() HttpServletRequest
HttpServletResponse getParameter()
getWriter() PrintWriter
PrintWriter HTTP
HTTP
HttpServletRequest HttpServletResponse
Web HttpServletRequest
HttpServletResponse HTTP
HttpServletRequest HttpServletResponse
Java SE HTTP
Java
2-13
2-14
2.8 HTTP
2.9
Model
Business
View
Swing HTML
Controller
MVC
2-15
2-16
2.10
MVC
MVC
2.11 MVC
1
2
3
4
2.11
MVC
Model 2
2.12 Model 2
2-17
2-18
2.12 Model 2
URL HTTP 1
Controller
Model 2
2.12 Cookie
Forward
3
Servlet JSP Servlet
Model
Java
Plain Old Java
Object, POJO
API
View
HTML 4
5 HTML
2.2.3 Model 2
Model 2
Model 2 Web
user
Servlet
SimpleModel2
package cc.openhome;
import
import
import
import
import
java.io.IOException;
javax.servlet.ServletException;
javax.servlet.http.HttpServlet;
javax.servlet.http.HttpServletRequest;
javax.servlet.http.HttpServletResponse;
HelloServlet.java
2-19
2-20
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
String name = request.getParameter("user");
X
String message = hello.doHello(name);
Y Hello
request.setAttribute("message", message);
Z
request.getRequestDispatcher("hello.jsp")
.forward(request, response);
}
[ hello.jsp
}
Model 2
Servlet JSP
Servlet Servlet
SimpleModel2
package cc.openhome;
import java.util.*;
public class Hello {
private Map<String, String> messages;
public Hello() {
messages = new HashMap<String, String>();
messages.put("caterpillar", "Hello");
messages.put("Justin", "Welcome");
messages.put("momor", "Hi");
}
Hello.java
Hello
ServletHello HTML JSP
API Java
Servlet Hello JSP JSP
SimpleModel2
hello.jsp
</html>
2.14
2-21
2-22
2.3
Servlet HttpServlet
doGet()doPost() HTTP
HttpServletRequest HttpServletResponse
Web WEB-INF
web.xml
WEB-INF lib Web JAR
classes .class Web
WAR Web Archive
.war Web
HttpServletResponse
HttpServletRequest HttpServletResponse
MVC Model
View Controller
2-23
2-24
1. HTTP Servlet
(A) Servlet
(B) GenericServlet
(C) HttpServlet
(D) Servlet
2. HTTP GET
(A) service()
(B) doGet()
(C) doService()
(D) get()
3. HttpServlet
(A) javax.servlet
(B) javax.servlet.http
(C) java.http
(D) javax.http
4. web.xml
<servlet>
<servlet-name>Goodbye</servlet-name>
<servlet-class>cc.openhome.LogutServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>GoodBye</servlet-name>
<url-pattern>/goodbye</url-pattern>
</servlet-mapping>
URL Servlet
(A) /GoodBye
(B) /goodbye.do
(C) /LoguotServlet
(D) /goodbye
5. Web HTTP
(A) HttpRequest
(B) HttpServletRequest
(C) HttpServletResponse
(D) HttpPrintWriter
6.
Web
HTTP
HttpServletRequest
(A) Servlet
(B) HTTP
(C) Web
(D) JSP
7. Web web.xml
(A) WEB-INF
(B) conf
(C) lib
(D) classes
2-25
2-26
8. web.xml
<servlet>
<servlet-name>HelloServlet</servlet-name>
<java-class>cc.openhome.HelloServlet</java-class>
</servlet>
<servlet-mapping>
<mapping-name>HelloServlet</mapping-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
web.xml
(A) <url-pattern> .do
(B) <mapping-name> <servlet-name>
9. MVC
(A) Model
(B) View
(C) Controller
10. MVC Model 2
(A) Model 2 HTML
(B) Model 2
(C) MVC
(D) MVC
1. Servlet Servlet
IP Internet Protocol
Query String
ServletRequest HttpServletRequest API
2.
"caterpillar" "123456" HTML
2-27
2-28