什么是JSP
Java Server Pages : Java服务器端页面,也和Servlet一样,用于动态Web技术
最大的特点:
写JSP就像在写HTML
区别:
HTML只给用户提供静态的数据
JSP页面中可以嵌入JAVA代码,为用户提供动态数据;
JSP原理
思路:JSP到底怎么执行的
`代码层面没有任何问题
`服务器内部工作
tomcat中有一个work目录;
IDEA中使用Tomcat的会在IDEA的tomcat中生产一个work目录
这个文件是启动tomcat动态生成,tomcat启动产生四条输出,第一条就是这个文件
我电脑的位置
C:\Users\L\.IntelliJIdea2018.3\system\tomcat\Unnamed_javaweb-session-cookie\work\Catalina\localhost\ROOT\org\apache\jsp
发现页面转变成了Java程序
浏览器向服务器发送请求,不管访问什么资源,其实都是在访问Servlet!
JSP最终也会被转换成为一个Java类
JSP本质上就是一个Servlet
// 初始化
public void _jspInit() { } //销毁 public void _jspDestroy() { } //JSPService public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response) throws java.io.IOException, javax.servlet.ServletException {
1.判断请求
2.内置一些对象
final javax.servlet.jsp.PageContext pageContext; //页面上下文 javax.servlet.http.HttpSession session = null; //session final javax.servlet.ServletContext application; //applicationContext作用域非常高 final javax.servlet.ServletConfig config; //config javax.servlet.jsp.JspWriter out = null; //out 输出对象 final java.lang.Object page = this; //当前页
HttpServletRequest request //请求
HttpServletResponse response //响应
3.输出页面前增加的代码
response.setContentType("text/html"); 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;
4.以上的这些个对象我们可以在JSP页面中直接使用!
相当于我们自己创建了一个继承了httpservlet 的实现类,然后在里面把所有方法的类都new了一个
Java代码要在<% %>中写
动态是更具不同的用户访问返回不同的内容 指可以从数据库等地方拿出不同的数据
在]SP页面中;
只要是JAVA代码就会原封不动的输出;
如果是HTML代码,就会被转换为:
out.write("<html>\r\n");
这样的格式,输出到前端
原文:https://www.cnblogs.com/nuliyao123/p/14438501.html