JSP学习1-概述
2017-12-07 21:12
183 查看
1、为什么需要使用jsp
JSP是简化Servlet编写的一种技术,它将 Java代码和 HTML代码混合在同一个文件中编写,只对网页中的要动态产生的内容采用Java代码来编写,而对固定不变的静态内容采用普通静态 HTML页面的方式编写。2、JSP-hello world
新建一个JSP页面,在body节点内的<% %>即可编写Java代码。<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.util.*" %>//导入包 <!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> <% Date date = new Date(); System.out.println(date); %> </body> </html>
JSP可以放置在WEB应用程序中的除了web-inf及其子目录外的其他任何目录中,JSP页面的访问路径与普通HTML页面的访问路径形式也完全一样。
3、JSP的运行原理:JSP本质上是一个servlet
每个jsp页面在第一次被访问时,jsp引擎将它翻译成一个servlet源程序,接着再把这个servlet源程序编译成servlet的class类文件,然后再由web容器(servlet引擎)像调用普通servlet程序一样的方式来装载和解释执行这个由jsp页面翻译成的servlet程序。-------如何找到被引擎解释成的servlet的java文件,在Windows电脑工程目录下大致为这个路径
D:\project\javaee\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\JSPlearn\org\apache\jsp
----hello_jsp.java
package org.apache.jsp; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.jsp.*; import java.util.*; public final class hello_jsp extends org.apache.jasper.runtime.HttpJspBase implements org.apache.jasper.runtime.JspSourceDependent, org.apache.jasper.runtime.JspSourceImports { private static final javax.servlet.jsp.JspFactory _jspxFactory = javax.servlet.jsp.JspFactory.getDefaultFactory(); private static java.util.Map<java.lang.String,java.lang.Long> _jspx_dependants; private static final java.util.Set<java.lang.String> _jspx_imports_packages; private static final java.util.Set<java.lang.String> _jspx_imports_classes; static { _jspx_imports_packages = new java.util.HashSet<>(); _jspx_imports_packages.add("javax.servlet"); _jspx_imports_packages.add("java.util"); _jspx_imports_packages.add("javax.servlet.http"); _jspx_imports_packages.add("javax.servlet.jsp"); _jspx_imports_classes = null; } private volatile javax.el.ExpressionFactory _el_expressionfactory; private volatile org.apache.tomcat.InstanceManager _jsp_instancemanager; public java.util.Map<java.lang.String,java.lang.Long> getDependants() { return _jspx_dependants; } public java.util.Set<java.lang.String> getPackageImports() { return _jspx_imports_packages; } public java.util.Set<java.lang.String> getClassImports() { return _jspx_imports_classes; } public javax.el.ExpressionFactory _jsp_getExpressionFactory() { if (_el_expressionfactory == null) { synchronized (this) { if (_el_expressionfactory == null) { _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory(); } } } return _el_expressionfactory; } public org.apache.tomcat.InstanceManager _jsp_getInstanceManager() { if (_jsp_instancemanager == null) { synchronized (this) { if (_jsp_instancemanager == null) { _jsp_instancemanager = org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(getServletConfig()); } } } return _jsp_instancemanager; } public void _jspInit() { } public void _jspDestroy() { } public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response) throws java.io.IOException, javax.servlet.ServletException { final java.lang.String _jspx_method = request.getMethod(); if (!"GET".equals(_jspx_method) && !"POST".equals(_jspx_method) && !"HEAD".equals(_jspx_method) && !javax.servlet.DispatcherType.ERROR.equals(request.getDispatcherType())) { response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, "JSPs only permit GET POST or HEAD"); return; } final javax.servlet.jsp.PageContext pageContext; javax.servlet.http.HttpSession session = null; final javax.servlet.ServletContext application; final javax.servlet.ServletConfig config; javax.servlet.jsp.JspWriter out = null; final java.lang.Object page = this; javax.servlet.jsp.JspWriter _jspx_out = null; javax.servlet.jsp.PageContext _jspx_page_context = null; try { response.setContentType("text/html; charset=UTF-8"); pageContext = _jspxFactory.getPageContext(this, request, response, null, true, 8192, true); _jspx_page_context = pageContext; application = pageContext.getServletContext(); config = pageContext.getServletConfig(); session = pageContext.getSession(); out = pageContext.getOut(); _jspx_out = out; out.write("\r\n"); out.write("\r\n"); out.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\r\n"); out.write("<html>\r\n"); out.write("<head>\r\n"); out.write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\r\n"); out.write("<title>Insert title here</title>\r\n"); out.write("</head>\r\n"); out.write("<body>\r\n"); out.write("\r\n"); out.write("\t"); Date date = new Date(); System.out.println(date); out.write("\r\n"); out.write("</body>\r\n"); out.write("</html>"); } catch (java.lang.Throwable t) { if (!(t instanceof javax.servlet.jsp.SkipPageException)){ out = _jspx_out; if (out != null && out.getBufferSize() != 0) try { if (response.isCommitted()) { out.flush(); } else { out.clearBuffer(); } } catch (java.io.IOException e) {} if (_jspx_page_context != null) _jspx_page_context.handlePageException(t); else throw new ServletException(t); } } finally { _jspxFactory.releasePageContext(_jspx_page_context); } } }
相关文章推荐
- JSP学习笔记—JSP概述和背后原理
- jsp学习笔记1——jsp概述
- 我与你一起学习JSP(二)——JSP的基本概述
- 不要急,我与你一起学习JSP(二)――JSP的基本概述
- [HeadFirst-JSPServlet学习笔记][第一章:前言与概述]
- 不要急,我与你一起学习JSP(二)——JSP的基本概述
- [HeadFirst-JSPServlet学习笔记][第一章:前言与概述]
- [原创]java WEB学习笔记36:Java Bean 概述,及在JSP 中的使用,原理
- [HeadFirst-JSPServlet学习笔记][第二章:高层概述]
- [HeadFirst-JSPServlet学习笔记][第二章:高层概述]
- java web jsp学习笔记--概述-常用语法,指令,动作元素,隐式对象,域对象
- java web jsp学习笔记--概述-常用语法,指令,动作元素,隐式对象,域对象
- [原创]java WEB学习笔记69:Struts2 学习之路-- 消息处理与国际化,概述,配置国际资源文件,访问国际化消息,通过超链接切换语言
- C#温故而知新学习系列之.NET运行机制—1-.NET Framework概述及其组成
- jsp学习小结
- Node.js入门学习(概述)
- C++学习之泛型算法概述--摘自C++primer4
- JSP学习之Servlet用法分析
- 虚拟机学习系列 - 2 - 垃圾收集概述
- 我学习JSP的一点体会