JSP 학습 노트의 7

JavaServlet 기본
JSP 루트는 servlet 기술로 JSP 기술이 등장하기 전에 웹 응용 개발자가 자체로 servlet 대상을 만드는 클래스를 작성하여 바이트 코드를 특정 디렉터리에 컴파일하고 복사하여 사용자의 요청에 응답하는 것을 책임진다.JSP는 servlet 대상을 만드는 과정을 차단하고 개발자는 jsp 페이지 자체의 구조와 디자인에만 관심을 가져야 한다.
tomcat을 디렉터리에 servlet-api를 설치해야 합니다.jar을 jdk의lib/ext에 넣습니다.
1 기본 준비
1.1 작성
servlet 대상을 만드는 클래스를 쓰는 것은 특수 클래스인 HttpServlet (javax.servlet.http 패키지에서) 의 하위 클래스를 작성하는 것입니다.Http서브렛 클래스는 서브렛 인터페이스를 구현하고 사용자에게 응답하는 방법을 구현합니다.
작성한 후에 컴파일한 다음, 바이트 코드를classes의 응답 디렉터리에 저장합니다.이것은 serlvet 대상을 정의하는 클래스가 있는 가방에 달려 있습니다. 이것은 bean과 약간 유사합니다.
1.2   web.xml
servlet 대상의 클래스를 작성했습니다. 사용하기 전에 비안을 사용하는 것처럼 이 클래스에 접근하는 방법을 알아야 합니다.이러한 대응 접근 관계는 서비스 디렉터리의 WEB-INF 아래에 있는 웹입니다.xml에서 정의한 것은 servlet 대상이 서비스 디렉터리에 의해 생성된 것이다.
servlet-class:servlet 클래스 이름,classes의 패키지 경로 포함
servlet-name:tomcat 서버에서 만든 servlet 대상 이름
servlet-mapping의 url-pattern:servlet 대상의 접근 이름
사용하거나 방문할 때 servlet-mapping의 url-pattern에 있는 접근 이름을 사용합니다.
2 서브렛 객체 작업
servlet 객체는 웹을 읽으면서 Tomcat 서버에서 관리합니다.xml에서 servlet 대상을 만들고 실행합니다.
서브렛 객체 선언 주기: 1) 서브렛 객체를 초기화합니다.대상에서 init 방법을 호출하여 완성합니다
2) servlet 객체 호출 서비스 방법에 따른 사용자 요청
3) 서버 종료,destroy 메서드 호출, servlet 객체 제거
3 서브렛 액세스
양식 액세스브라우저에서 직접 액세스하기;하이퍼링크 액세스
사실 servlet 대상 호출 서비스에서 먼저 요청 형식 (get/post 등) 을 검사한 다음에 해당하는 방법인doPost나doGet을 호출하기 때문에 servlet 클래스에서doPost나doGet을 다시 써서 사용자의 요청에 응답할 수 있습니다.
4 리디렉션 및 전달
두 가지:voidsendRedirect(String location)는 HttpServlet Response 클래스의 방법입니다.
Public Request Dispatcher get Request Dispatcher (java.lang.String path) request 대상을 호출한 다음 Request Dispatcher 클래스의 forward (Servlet Request request, Servlet Response response response) 방법을 호출합니다.
두 번째 방법을 사용하면 Request의 매개 변수를 얻을 수 있습니다
5 세션 사용
servlet 대상이session 대상을 가져옵니다:request 호출HttpSessionsession=request.getSession(true);
연습 1: 사용자가 입력한 양의 정수 계수 계산하기
페이지 액세스
4
<%@page contentType="text/html; charset=GB2312" %>
<HTML><BODY bgcolor=cyan><FONT size=3>
<FORM action="getNumber" method="post">
       :<INPUT type=text name="number" value=0>
<BR><INPUT type="submit" value="  " name="submit">
</FORM>
</FONT></BODY></HTML> 
servlet 클래스 코드
package china.dalian;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Computer extends HttpServlet{
  String servletName;
  public void init(ServletConfig config)throws ServletException{
    super.init(config);
	servletName=getServletName();
  }
  public void service(HttpServletRequest request, HttpServletResponse response)
   throws IOException{
    response.setContentType("text/html;charset=GB2312");
	PrintWriter out=response.getWriter();
	out.println("<html><body>");
	String str=request.getParameter("number");
	out.print("    servlet  "+servletName+"。<BR>");
	out.print("     "+str+"   :<BR>");
	int n=0;
	try{
	 n=Integer.parseInt(str);
	 for(int i=1;i<=n;i++){
	    if(n%i==0)
		out.println(" "+i);
	 }
	}
	catch(NumberFormatException e){
	  out.print(" "+e);
	 }
	 out.println("</body></html>");
	}
}

웹도 수정이 필요합니다.xml
 <servlet>
  <servlet-name>computer</servlet-name>
  <servlet-class>china.dalian.Computer</servlet-class>
 </servlet>
 <servlet-mapping>
    <servlet-name>computer</servlet-name>
	<url-pattern>/getNumber</url-pattern>
 </servlet-mapping>

좋은 웹페이지 즐겨찾기