JSP动态网页开发原理详解(3)

PageContext pageContext; HttpSession session; ServletContext application; ServletConfig config; JspWriter out; Object page = this; HttpServletRequest request, HttpServletResponse response

  其中page对象,request和response已经完成了实例化,而其它5个没有实例化的对象通过下面的方式实例化

pageContext = _jspxFactory.getPageContext(this, request, response,null, true, 8192, true); application = pageContext.getServletContext(); config = pageContext.getServletConfig(); session = pageContext.getSession(); out = pageContext.getOut();

这8个java对象在Jsp页面中是可以直接使用的,如下所示:

<% session.setAttribute("name", "session对象");//使用session对象,设置session对象的属性 out.print(session.getAttribute("name")+"<br/>");//获取session对象的属性 pageContext.setAttribute("name", "pageContext对象");//使用pageContext对象,设置pageContext对象的属性 out.print(pageContext.getAttribute("name")+"<br/>");//获取pageContext对象的属性 application.setAttribute("name", "application对象");//使用application对象,设置application对象的属性 out.print(application.getAttribute("name")+"<br/>");//获取application对象的属性 out.print("Hello Jsp"+"<br/>");//使用out对象 out.print("服务器调用index.jsp页面时翻译成的类的名字是:"+page.getClass()+"<br/>");//使用page对象 out.print("处理请求的Servlet的名字是:"+config.getServletName()+"<br/>");//使用config对象 out.print(response.getContentType()+"<br/>");//使用response对象 out.print(request.getContextPath()+"<br/>");//使用request对象 %>

运行结果如下:

JSP动态网页开发原理详解

 

2.5、Jsp最佳实践

  Jsp最佳实践就是jsp技术在开发中该怎么去用。

  不管是JSP还是Servlet,虽然都可以用于开发动态web资源。但由于这2门技术各自的特点,在长期的软件实践中,人们逐渐把servlet作为web应用中的控制器组件来使用,而把JSP技术作为数据显示模板来使用。其原因为,程序的数据通常要美化后再输出:让jsp既用java代码产生动态数据,又做美化会导致页面难以维护。让servlet既产生数据,又在里面嵌套html代码美化数据,同样也会导致程序可读性差,难以维护。因此最好的办法就是根据这两门技术的特点,让它们各自负责各的,servlet只负责响应请求产生数据,并把数据通过转发技术带给jsp,数据的显示jsp来做。

2.6、Tomcat服务器的执行流程

JSP动态网页开发原理详解

  

第一次执行:

客户端通过电脑连接服务器,因为是请求是动态的,所以所有的请求交给WEB容器来处理

在容器中找到需要执行的*.jsp文件

之后*.jsp文件通过转换变为*.java文件

*.java文件经过编译后,形成*.class文件

最终服务器要执行形成的*.class文件

第二次执行:

因为已经存在了*.class文件,所以不在需要转换和编译的过程

修改后执行:

1.源文件已经被修改过了,所以需要重新转换,重新编译。

到此这篇关于JSP动态网页开发原理详解的文章就介绍到这了,更多相关JSP动态网页开发原理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wxwsxz.html