日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JSP页面最终是编译为Servlet执行的

發布時間:2024/4/17 javascript 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JSP页面最终是编译为Servlet执行的 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JSP頁面最終是編譯為Servlet執行的,你可以在Tomcat的%CATALINA_HOME%/work/Catalina/localhost中找到一個文件夾,該文件夾跟你的web-project的虛擬路徑一致!比如說,我在%CATALINA_HOME%/conf/server.xml中配置了我的web-project為如下

<Context path="/mldn" docBase="E:/web.workspace/mldndemo/WebContent" reloadable="true"/>

那么在%CATALINA_HOME%/work/Catalina/localhost中就有一個文件夾名為“mldn”!

并且,你在\mldn\org\apache\jsp目錄下還會找到你所有jsp頁面對應的.class文件,這就證明了JSP頁面最終是編譯為Servlet執行的!

所以,本質上一個JSP頁面對應一個Servlet!

因此,看到web.xml如下的配置,不要奇怪!因為JSP本質上就是Servlet!你看看JSP頁面的代碼,我們完全可以將其寫為Servlet!

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>

等價的Servlet:

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;@Overridepublic 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");}@Overrideprotected 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);} }

?

該Servlet的配置

<!-- 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>

調用該Servlet的頁面:

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>

這二者顯示的結果是一樣的!

轉載于:https://www.cnblogs.com/qrlozte/p/3179517.html

總結

以上是生活随笔為你收集整理的JSP页面最终是编译为Servlet执行的的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。