Java Web Programming Servlet Technology는 얼마를 알고 있습니까?
1. Servlet Basics <br /> Servlet 기술 개발을 위해 Sun Company는 일부 열 인터페이스 및 클래스를 제공합니다. 가장 중요한 것은 Javax.servlet.servlet 인터페이스입니다. 두 가지 중요한 패키지는 javax.servlet 및 javax.servlet.http입니다. 서블릿은 서블릿 인터페이스를 구현하는 클래스입니다. 웹 컨테이너 (Tomcat/Jetty 등)에 의해 호출되고 작성하여 사용자 요청을 수신하고 응답합니다. 5 초록 방법은 서블릿 인터페이스에 정의됩니다.
서블릿의 최상위 클래스 구조는 다음과 같습니다.
2. 첫 번째 서블릿 프로그램
새로운 Java 웹 프로젝트를 만들고 새로운 Hello 클래스를 만듭니다. hello.java 소스 코드는 다음과 같습니다.
패키지 zzz; import java.io.ioexception; import java.io.printwriter; import javax.servlet.http.httpervlet; import javax.servlet.http.htttp.htttp.htttp.httpervletrequest; import javax.servlet.http.htttp.httpervletresponse; public classh hortpervlet htpervertends {voppervlet htpervertend doget (httpservletrequest request, httpservletreponse response)는 ioexception을 던졌습니다 {// 응답 메시지 설정 응답 설정. printwriter out = response.getwriter (); out.println ( "Hello World"); } @override public void dopost (httpservletrequest request, httpservletresponse 응답)는 ioexception {this.doget (요청, 응답); }}구성 파일 web.xml은 다음과 같습니다.
<? xml version = "1.0"encoding = "utf-8"?> <web-app xmlns : xsi = "http://www.w3.org/2001/xmlschema-instance"xmlns = "http://xmlns.jcp.org/xml/ns/javaee" xsi : schemalocation = "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd. id = "webapp_id"version = "3.1"> <display-name> zzz </display-name> <servlet> <!-레지스터 서플렛-> <servlet-name> hello </servlet-name> <!-서블릿 이름을 지정-> <servlet-class> zzz.hello.hello.hello </servlet 풀 클래스 이름-</servlet> <! PATH-> <servlet-name> hello </servlet-name> <!-서블릿 이름을 지정-> <url-pattern>/hello </url-pattern> <!-서플릿에 액세스 할 수있는 가상 경로를 지정-> </servlet-mapping> </web-app>
브라우저 표시 시작 및 실행은 다음과 같이 표시됩니다.
3. 서틀 수명주기
서블릿 수명주기는 대략 3 단계, 초기화 단계, 작동 단계 및 파괴 단계 로 나뉩니다. 다음은 각 단계에 대한 자세한 설명입니다.
초기화 단계 : 클라이언트가 서블릿 컨테이너에 서블릿에 액세스하도록 요청하는 경우, 컨테이너는 먼저 서블릿 객체가 메모리에 있는지 확인하고 직접 사용되는지 확인하도록 요청합니다. 그렇지 않으면 서블릿 객체를 작성한 다음 init () 메소드를 호출하십시오. init ()는 서블릿의 전체 선언주기 동안 한 번만 호출됩니다.
러닝 스테이지 : 이것은 서블릿의 가장 중요한 단계입니다. 이 단계에서 컨테이너는 ServletRequest 및 ServletResponse 객체를 매개 변수로 구성하여 Servlet Service () 메소드로 전달합니다. 서블릿의 각 액세스마다 서블릿 컨테이너는 Service () 메소드를 한 번 호출합니다. 서비스 () 메소드는 서블릿의 전체 수명주기 동안 여러 번 호출됩니다.
파괴 단계 : 서버가 닫히거나 웹 응용 프로그램이 컨테이너에서 제거되면이 단계가 입력됩니다. 현재 Destrove () 메소드가 호출됩니다. 전체 수명주기 동안 Destrove () 메소드는 한 번만 호출됩니다. 클라이언트가 처음 서블릿에 액세스하면 컨테이너가 서블릿 객체를 생성하지만 때로는 Tomcat이 시작 되 자마자 서블릿 객체가 시작되기를 바랍니다. 이것을 다루는 방법? 현재 web.xml에서 <load-on-startup> 요소 만 사용하면됩니다. 예제 구성은 다음과 같습니다.
<Servlet> <servlet-name> hello </servlet-name> <servlet-class.hello </servlet-class> <!-Servlet 프로그램의 자동로드-> <load-on-startup> 1 </load-on-startup> </servlet> <servlet-mapping> <servlet-name> </servlet-name>/hello </url-pattern>
4. ServletConfig 및 ServletContext
ServletConfig 인터페이스 중에 파일 인코딩, 서블릿을 사용하는 회사 등과 같은 일부 보조 정보가 필요한 경우이 정보는 web.xml의 <init-param> 요소를 사용하여 구성 할 수 있습니다. Tomcat이 서틀을 초기화하면 서블릿 구성 정보가 ServletConfig 객체로 캡슐화되어 Init (ServletConfig Config)를 통해 서블릿으로 전달됩니다. ServletConfig 구성 정보를 얻기위한 일련의 방법을 정의합니다.
다음으로,이 방법의 사용을 설명하기 위해 getinitparameter ()를 예로 들어보십시오.
web.xml 구성 파일은 다음과 같습니다.
<? xml version = "1.0"encoding = "utf-8"?> <web-app xmlns : xsi = "http://www.w3.org/2001/xmlschema-instance"xmlns = "http://xmlns.jcp.org/xml/ns/javaee" xsi : schemalocation = "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd. id = "webapp_id"version = "3.1"> <display-name> zzz </display-name> <servlet> <servlet-name> </servlet-name> <servlet-class> zzz.hello </servlet-class> <Init-param> <param-name> company </param-name> <param-value> dahua </param- vallue> <servlet-mapping> <servlet-name> hello </servlet-name> <url-pattern>/hello </url-pattern> </servlet-mapping> </web-app>
hello.java 파일은 다음과 같습니다.
패키지 zzz; import java.io.ioexception; import java.io.printwriter; import javax.servlet.servletconfig; import javax.servlet.http.httpservlet; import javax.servlet.http.httpervletrequest; import javax.servlet.httprsprestness; httpservlet {@override public void doget (httpservletrequest request, httpservletreponse response)는 ioexception {// 응답 메시지 설정 응답을 인코딩합니다. printwriter out = response.getwriter (); servletconfig config = this.getServletConfig (); 문자열 param = config.getInitParameter ( "회사"); out.println ( "회사 :" + param); } @override public void dopost (httpservletrequest request, httpservletresponse 응답)는 ioexception {this.doget (요청, 응답); }} ServletContext 인터페이스
서블릿 컨테이너가 시작되면 각 웹 애플리케이션마다 현재 웹 응용 프로그램을 나타 내기 위해 고유 한 ServletContext 객체가 생성됩니다. 이 객체는 웹 응용 프로그램의 모든 정보를 캡슐화 할뿐만 아니라 여러 서블릿 객체간에 데이터 공유를 구현합니다. Web.xml에서는 서블릿의 초기화 정보를 구성 할뿐만 아니라 전체 웹 응용 프로그램의 초기화 정보를 구성 할 수 있습니다. 구성 방법은 다음과 같습니다.
<CENTEXT-PARAM> <Param-Name> 이름 </param-name> <param-value> luoxn28 </param-value> </context-param> <context-param> <param-name> company </param-name> <param- value> dahua </param-value> </context-param>
참고 : <context-param> 요소에는 <param-name>과 <param- value>가 하나만있을 수 있으며 위의 구성은 web.xml의 <web-app> 아래에 구성됩니다. hello.java 파일은 다음과 같습니다.
패키지 zzz; import java.io.ioexception; import java.io.printwriter; import java.util.enumeration; import javax.servlet.servletcontext; import javax.servlet.http.httpservlet; import javax.servlet.httperqlequest; import; javax.servlet.http.htttp.httpservletresponse; public class hello는 httpservlet {@override public void doget (httpservletrequest 요청, httpservletresponse 응답) {// 설정 응답 응답 설정. printwriter out = response.getwriter (); servletContext context = this.getServletContext (); 열거 <문자열> paramnames = context.getInitParameterNames (); while (paramnames.hasmoreElements ()) {String name = paramnames.nextElement (); 문자열 값 = context.getInitParameter (이름); out.println (name + ":" + value + "<br/>"); }} @override public void dopost (httpservletrequest request, httpservletresponse 응답)는 ioexception {this.doget (요청, 응답); }}웹 애플리케이션의 모든 서블릿은 ServletContext 객체를 공유하므로 Web Application의 모든 서블릿에서 ServletContext 객체의 도메인 특성에 액세스 할 수 있습니다. ServletContext 인터페이스에서 ServletContext Domain 속성을 추가, 삭제 및 설정하도록 4 가지 방법이 정의됩니다.
위의 방법을 통해 여러 servlet 간의 데이터 공유를 인식 할 수 있습니다. 이 특정 예제는 코드와 함께 게시되지 않습니다. 클릭과 같은 온라인으로 참조 할 수있는 많은 정보가 있습니다.
Javaweb Servlet 개발 요약 (II)
위의 내용은이 기사에 관한 모든 것이며, 모든 사람들이 Java Web의 서블릿 기술을 이해하는 것이 도움이되기를 바랍니다.
참조
1. "Java 웹 프로그램 개발 소개"Servlet Technology 장