JSP
Java Server Pages
什么是JSP?
Java服务端页面,也和Servlet一样,用于动态Web技术
最大的特点:
- 写JSP就像在写HTML
- 区别
- HTML只给用户提供静态数据
- JSP可以内嵌JAVA代码,为用户提供动态数据
JSP原理
- 代码和HTML基本没有区别
- 服务器内部工作
- Tomcat工作空间中的jsp文件夹中,发现页面转变成了Java程序

-
- 浏览器向服务器发送请求,不管访问什么资源,都是在访问Servlet
- JSP最终也会被转换成一个Java类
JSP本质上也是一个HttpServlet
//初始化
public void _jspInit() { } //销毁 public void _jspDestroy() { } //JSP的服务 public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response) throws java.io.IOException, javax.servlet.ServletException { if (!javax.servlet.DispatcherType.ERROR.equals(request.getDispatcherType())) { final java.lang.String _jspx_method = request.getMethod(); if ("OPTIONS".equals(_jspx_method)) { response.setHeader("Allow","GET, HEAD, POST, OPTIONS"); return; } if (!"GET".equals(_jspx_method) && !"POST".equals(_jspx_method) && !"HEAD".equals(_jspx_method)) { response.setHeader("Allow","GET, HEAD, POST, OPTIONS"); response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, "JSP 只允许 GET、POST 或 HEAD。Jasper 还允许 OPTIONS"); return; } }
1、判断请求(就是上述JSP服务中的判断)
if (!"GET".equals(_jspx_method) && !"POST".equals(_jspx_method) && !"HEAD".equals(_jspx_method)) { response.setHeader("Allow","GET, HEAD, POST, OPTIONS"); response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, "JSP 只允许 GET、POST 或 HEAD。Jasper 还允许 OPTIONS"); return; }
2、内置对象
final javax.servlet.jsp.PageContext pageContext; //页面上下文 final javax.servlet.ServletContext application; //applicationContext final javax.servlet.ServletConfig config; //配置 javax.servlet.jsp.JspWriter out = null; //out final java.lang.Object page = this; //当前页 javax.servlet.jsp.JspWriter _jspx_out = null; //out javax.servlet.jsp.PageContext _jspx_page_context = null;
3、输出页面前增加的代码
- 以下的对象,可以直接在JSP页面中直接使用
response.setContentType("text/html; charset=UTF-8"); //设置响应的页面类型
//以下的对象,可以直接在JSP页面中直接使用
pageContext = _jspxFactory.getPageContext(this, request, response,
null, false, 8192, true);
_jspx_page_context = pageContext;
application = pageContext.getServletContext();
config = pageContext.getServletConfig();
out = pageContext.getOut();
_jspx_out = out;


浙公网安备 33010602011771号