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执行的相关推荐

  1. 关于一加载jsp页面就跳转到servlet获取数据然后再跳回jsp页面的问题

    下面来说我遇到的问题: 上一篇文章中写的是jsp+javabean实现商品分页  浏览,即model1的开发模式,现在要改为 jsp+sevlet+javabean 即model2了  之前在jsp处 ...

  2. jsp页面其本质就是一个servlet

    在Tomcat运行中,会自动把jsp文件编译为java文件

  3. jsp 跳到servlet路径_想打开一个jsp的页面就跳转到servlet中去,并向servlet传值。用什么跳转...

    是打开就跳转,不用form提交,也不用超链接. 如果我的xml中servlet的url是:/main 我在JSP中想要跳转到servlet,并且传值到servlet,我知道表单可以这样写: 超链接可以 ...

  4. Servlet向JSP传递数据以及JSP页面DIV定时局部刷新

    系列文章: ESP8266的AP模式与STA模式简单测试 简单的Java服务器和客户端的通信 STM32 ESP8266和Java服务器透传模式下的双向通信 jsp向servlet传输数据 Servl ...

  5. Servlet跳转到JSP页面后的路径问题相关解释

    一.现象与概念 1. 问题 在Servlet转发到JSP页面时,此时浏览器地址栏上显示的是Servlet的路径,而若JSP页面的超链接还是相对于该JSP页面的地址且该Servlet和该JSP页面不在同 ...

  6. JAVA里的jsp网页背景_【JavaWeb】JSP 页面

    JSP 页面 简介 JSP(Java Server Pages),即 Java 的服务器页面.它的主要作用是代替 Servlet 程序回传 HTML 页面的数据,因为 Servlet 程序回传 HTM ...

  7. java界面初始化,初始化jsp页面方法

    广告 云服务器1核心2G诞生的第一年jsp页面声明方法,有许多流行的云产品可以满足您的云需求 我的目的是将变量int a,int b和int c的值传递给jsp页面adminresults. 请注意, ...

  8. jsp 页面刷新_如何应用XML+XSLT+AJAX组合技术实现无刷新数据查询

    软件项目实训及课程设计指导--如何应用XML +XSLT +AJAX组合技术实现无刷新的数据查询的应用实例 1.在Web应用系统项目中添加一个实现查询的请求页面searchBook.jsp (1)创建 ...

  9. jsp页面的相关复习

    1.jsp页面的实质是一个Servlet,跟Servlet的周期一样子,同样子有init(),service(),destory()三种方法.在jsp页面用c标签或者<%...%>嵌入ja ...

最新文章

  1. 中tile函数_HelpGirlFriend 系列 --- tensorflow 中的张量运算思想
  2. SAP保存操作记录CDHDR和CDPOS表
  3. 早期的增长黑客 PayPal 如何在2000年初达到每日7%到10%的营收成长?
  4. TortoiseSVN配置管理使用详解
  5. Reuse library debug in Chrome - phase2 handle success response (2)
  6. 进程间通信-Queue 消息队列 先进先出
  7. java实现简单二叉树
  8. 51 nod 1405 树的距离之和
  9. 嘉兴市计算机技工学校,嘉兴市高级技工学校2021年招生简章
  10. linux中对数据怎么降序,Linux系统sort排序命令怎么使用
  11. Python_Bool
  12. linux 数据库无法启动,【已回应】数据库无法启动,是怎么回事啊
  13. 服务器压力测试知识集锦
  14. 计算机启动进入不了桌面图标,电脑开机不显示桌面图标怎么办,开机桌面图标不显示解决办法...
  15. syslinux和grub引导linux,syslinux引导GRUB4DOS
  16. cmd无法打开jupyter notebook问题
  17. 怎样进行结构化思维思考?
  18. pyPDF2或pyPDF4做pdf页面提取出错
  19. 【第三方互联】11、创建支付宝(Alipay)互联应用
  20. android svg格式图片,Android工程使用SVG图片

热门文章

  1. 电路知识--认识原理图(四)
  2. Redis的设计与实现之跳表
  3. MySQL DELETE 语句的一个简单介绍
  4. struct和class之间问题(+引发的个人思考,和对共用体思考)
  5. 成都东软学院计算机科学与技术系,成都东软学院计算机科学与技术系毕业设计(论文)工作实施细则成都东软学院计算机科学与技术系毕业设计(论文)工作实施细则.doc...
  6. c++11-std::functionbind
  7. Linux下mysql5.1修改密码,Linux下MySQL忘记密码
  8. quot;luasql.mysqlquot;_解决mysqlquot;Access denied for user 'root'@'IP地址'quot;问题 - - ITeye博客...
  9. 用MySql的查询分析语法explain来优化查询和索引
  10. elementui el-table根据分页显示表格序号