java - 将 JSP 页面转换为 servlet

标签 java html jsp servlets jsp-tags

我们在 JSP 页面中也有 HTML 标记,因此在执行 jsp 时,它会被转换为 Servlet。所以我的问题是 HTML 标签发生了什么或者我们可以在 servlet 中找到 HTML 标签吗?

最佳答案

每个 JSP 页面都由“.jsp”标识并由 JSP 引擎转换为 Servlet。一些示例是:-

文件:-dashboardApp.jsp

<!DOCTYPE html>
<html>
<head>
<title>Dashboard App</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="appResources/images/favicon.ico" type="image/x-icon" />

<!-- jquery library -->
<script type="text/javascript" src="appResources/jquery/jquery.min_3.3.1.js"></script>  
</head>
<body ng-app="dashboardApp">

<!-- ${userId}  ${userName} -->
<input type="hidden"  id="userId" name="userId" value="${userId}"  />
<input type="hidden"   id="userName" name="userName" value="${userName}" />
</body>
</html>   

文件:-dashboardApp_jsp.java(通过附加文件名+“_jsp.java”创建的同一文件)

.jsp 中的所有 html 代码都进入 servlet 的 service 方法。以上 .jsp 文件的示例

public void _jspService(HttpServletRequest request, HttpServletResponse response)
    throws java.io.IOException, ServletException {
 JspWriter out = out = pageContext.getOut();

  out.write("<!DOCTYPE html>\r\n");
  out.write("<html>\r\n");
  out.write("<head>\r\n");
  out.write(" <title>Dashboard App</title>\r\n");
  out.write(" <meta charset=\"utf-8\">\r\n");
  out.write(" <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\r\n");
  out.write(" <link rel=\"shortcut icon\" href=\"appResources/images/favicon.ico\" type=\"image/x-icon\" />\r\n");
  out.write(" \r\n");
  out.write("              <!-- jquery library -->\r\n");
  out.write("   <script type=\"text/javascript\" src=\"appResources/jquery/jquery.min_3.3.1.js\"></script>  \r\n");
  out.write("<body ng-app=\"dashboardApp\">\r\n");
  out.write("   <input type=\"hidden\"  id=\"userId\" name=\"userId\" value=\"");
  out.write((java.lang.String) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${userId}", java.lang.String.class, (PageContext)_jspx_page_context, null, false));
  out.write("\"  />\r\n");
  out.write("   <input type=\"hidden\"   id=\"userName\" name=\"userName\" value=\"");
  out.write((java.lang.String) org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate("${userName}", java.lang.String.class, (PageContext)_jspx_page_context, null, false));
  out.write("\" />  \r\n");
  out.write("</body>\r\n");
  out.write("</html>");
  }

JSP引擎将.jsp文件转换为servlet(.java)和.class文件。

在这里您可以找到.class servlet .java(Tomcat 服务器)。 /DashboardApp/target/tomcat/work/localEngine/localhost/DashboardApp/org/apache/jsp/WEB_002dINF/view/dashboardApp_jsp.java

关于java - 将 JSP 页面转换为 servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52402205/

相关文章:

Java Servlet 积极缓存

javascript - 在 JavaScript 中访问 Java/Servlet/JSP/JSTL/EL 变量

Java正则表达式删除所有尾随数字?

java - 如何从 Java Web Start (JDK 8) 升级到 jlink (JDK 9+) 以实现自动更新应用程序?

java - 一种返回3种格式数据的方法

javascript - JQuery 绑定(bind) + bootstrap 不起作用

javascript - 获取更改后输入的默认值

java - 如何为API添加所有可用的异常以针对不同的异常执行不同的操作

javascript - 如何记住浏览器刷新时 iframe 指向哪个 href?

javascript - 如何将日期选择器应用于下拉列表