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执行的相关推荐
- 关于一加载jsp页面就跳转到servlet获取数据然后再跳回jsp页面的问题
下面来说我遇到的问题: 上一篇文章中写的是jsp+javabean实现商品分页 浏览,即model1的开发模式,现在要改为 jsp+sevlet+javabean 即model2了 之前在jsp处 ...
- jsp页面其本质就是一个servlet
在Tomcat运行中,会自动把jsp文件编译为java文件
- jsp 跳到servlet路径_想打开一个jsp的页面就跳转到servlet中去,并向servlet传值。用什么跳转...
是打开就跳转,不用form提交,也不用超链接. 如果我的xml中servlet的url是:/main 我在JSP中想要跳转到servlet,并且传值到servlet,我知道表单可以这样写: 超链接可以 ...
- Servlet向JSP传递数据以及JSP页面DIV定时局部刷新
系列文章: ESP8266的AP模式与STA模式简单测试 简单的Java服务器和客户端的通信 STM32 ESP8266和Java服务器透传模式下的双向通信 jsp向servlet传输数据 Servl ...
- Servlet跳转到JSP页面后的路径问题相关解释
一.现象与概念 1. 问题 在Servlet转发到JSP页面时,此时浏览器地址栏上显示的是Servlet的路径,而若JSP页面的超链接还是相对于该JSP页面的地址且该Servlet和该JSP页面不在同 ...
- JAVA里的jsp网页背景_【JavaWeb】JSP 页面
JSP 页面 简介 JSP(Java Server Pages),即 Java 的服务器页面.它的主要作用是代替 Servlet 程序回传 HTML 页面的数据,因为 Servlet 程序回传 HTM ...
- java界面初始化,初始化jsp页面方法
广告 云服务器1核心2G诞生的第一年jsp页面声明方法,有许多流行的云产品可以满足您的云需求 我的目的是将变量int a,int b和int c的值传递给jsp页面adminresults. 请注意, ...
- jsp 页面刷新_如何应用XML+XSLT+AJAX组合技术实现无刷新数据查询
软件项目实训及课程设计指导--如何应用XML +XSLT +AJAX组合技术实现无刷新的数据查询的应用实例 1.在Web应用系统项目中添加一个实现查询的请求页面searchBook.jsp (1)创建 ...
- jsp页面的相关复习
1.jsp页面的实质是一个Servlet,跟Servlet的周期一样子,同样子有init(),service(),destory()三种方法.在jsp页面用c标签或者<%...%>嵌入ja ...
最新文章
- 中tile函数_HelpGirlFriend 系列 --- tensorflow 中的张量运算思想
- SAP保存操作记录CDHDR和CDPOS表
- 早期的增长黑客 PayPal 如何在2000年初达到每日7%到10%的营收成长?
- TortoiseSVN配置管理使用详解
- Reuse library debug in Chrome - phase2 handle success response (2)
- 进程间通信-Queue 消息队列 先进先出
- java实现简单二叉树
- 51 nod 1405 树的距离之和
- 嘉兴市计算机技工学校,嘉兴市高级技工学校2021年招生简章
- linux中对数据怎么降序,Linux系统sort排序命令怎么使用
- Python_Bool
- linux 数据库无法启动,【已回应】数据库无法启动,是怎么回事啊
- 服务器压力测试知识集锦
- 计算机启动进入不了桌面图标,电脑开机不显示桌面图标怎么办,开机桌面图标不显示解决办法...
- syslinux和grub引导linux,syslinux引导GRUB4DOS
- cmd无法打开jupyter notebook问题
- 怎样进行结构化思维思考?
- pyPDF2或pyPDF4做pdf页面提取出错
- 【第三方互联】11、创建支付宝(Alipay)互联应用
- android svg格式图片,Android工程使用SVG图片
热门文章
- 电路知识--认识原理图(四)
- Redis的设计与实现之跳表
- MySQL DELETE 语句的一个简单介绍
- struct和class之间问题(+引发的个人思考,和对共用体思考)
- 成都东软学院计算机科学与技术系,成都东软学院计算机科学与技术系毕业设计(论文)工作实施细则成都东软学院计算机科学与技术系毕业设计(论文)工作实施细则.doc...
- c++11-std::functionbind
- Linux下mysql5.1修改密码,Linux下MySQL忘记密码
- quot;luasql.mysqlquot;_解决mysqlquot;Access denied for user 'root'@'IP地址'quot;问题 - - ITeye博客...
- 用MySql的查询分析语法explain来优化查询和索引
- elementui el-table根据分页显示表格序号