JSPページは最終的にサーブレットにコンパイルされて実行される
19643 ワード
JSPページは最終的にサーブレットにコンパイルされ、Tomcatの%CATALINA_HOME%/work/Catalina/localhostにフォルダが見つかりました.このフォルダはあなたのweb-projectの仮想パスと一致しています.例えば、私は%CATALINAにいます.HOME%/conf/server.xmlに私のweb-projectが以下のように構成されています.
では%CATALINA_HOME%/work/Catalina/localhostには「mldn」というフォルダがあります!
そして、あなたはmldnorgapachejspディレクトリの下ですべてのjspページに対応するものを見つけることができます.classファイル、これはJSPページが最終的にサーブレットにコンパイルされて実行されたことを証明します!
だから、本質的には1つのJSPページが1つのサーブレットに対応しています!
だから、webが見えます.xmlは以下の構成で、おかしくないでください!JSPは本質的にサーブレットだから!JSPページのコードを見てください.私たちは完全にサーブレットと書くことができます.
web.xml
init.jsp(入力http://127.0.0.1:8080/mldn/config.mldnアクセス)
同等のサーブレット:
このサーブレットの構成
サーブレットのページを呼び出します.
dbinit_info.jsp
この2つの結果は同じです!
<Context path="/mldn" docBase="E:/web.workspace/mldndemo/WebContent" reloadable="true"/>
では%CATALINA_HOME%/work/Catalina/localhostには「mldn」というフォルダがあります!
そして、あなたはmldnorgapachejspディレクトリの下ですべてのjspページに対応するものを見つけることができます.classファイル、これはJSPページが最終的にサーブレットにコンパイルされて実行されたことを証明します!
だから、本質的には1つのJSPページが1つのサーブレットに対応しています!
だから、webが見えます.xmlは以下の構成で、おかしくないでください!JSPは本質的にサーブレットだから!JSPページのコードを見てください.私たちは完全にサーブレットと書くことができます.
web.xml
<servlet>
<servlet-name>dbinit</servlet-name>
<jsp-file>/WEB-INF/init.jsp</jsp-file>
<init-param>
<param-name>driver</param-name>
<param-value>org.gjt.mm.mysql.Driver</param-value>
</init-param>
<init-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://localhost:3306/mldn</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dbinit</servlet-name>
<url-pattern>/config.mldn</url-pattern>
</servlet-mapping>
init.jsp(入力http://127.0.0.1:8080/mldn/config.mldnアクセス)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>MLDN</title>
</head>
<body>
<%
String dbDriver = config.getInitParameter("driver");
String dbURL = config.getInitParameter("url");
%>
<h3> :<%=dbDriver %></h3>
<h3> :<%=dbURL %></h3>
</body>
</html>
同等のサーブレット:
package org.lxh.servletdemo;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class DBInitServlet extends HttpServlet {
private String dbDriver = null, dbURL = null;
@Override
public void init(ServletConfig config) throws ServletException {
// Javadoc: When overriding this form of the method, call super.init(config).
super.init(config);
this.dbDriver = config.getInitParameter("driver");
this.dbURL = config.getInitParameter("url");
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
PrintWriter writer = resp.getWriter();
writer.println("<h3> :" + dbDriver + "</h3>");
writer.println("<h3> :" + dbURL + "</h3>");
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException ,IOException {
this.doGet(req, resp);
}
}
このサーブレットの構成
<!-- DBInitServlet -->
<servlet>
<servlet-name>dbInitServlet</servlet-name>
<servlet-class>
org.lxh.servletdemo.DBInitServlet
</servlet-class>
<init-param>
<param-name>driver</param-name>
<param-value>org.gjt.mm.mysql.Driver</param-value>
</init-param>
<init-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://localhost:3306/mldn</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dbInitServlet</servlet-name>
<url-pattern>/DBInitServlet</url-pattern>
</servlet-mapping>
サーブレットのページを呼び出します.
dbinit_info.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<jsp:forward page="/DBInitServlet"/>
</body>
</html>
この2つの結果は同じです!