日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

jsp与java的关系_jsp教程中:jsp与servlet的区别和关系

發布時間:2023/11/27 生活经验 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jsp与java的关系_jsp教程中:jsp与servlet的区别和关系 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

jsp教程上:我們一定學了servlet,也學習了jsp,那么jsp與servlet的區別是什么呢,jsp與servlet又有什么關系呢?下面我們先創建一個demo.jsp的頁面,然后tomcat運行,看看jsp編譯之后是怎么樣的呢?

String?path?=?request.getContextPath();

String?basePath?=?request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

HTML?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN">

">

jsp演示代碼

SimpleDateFormat?sf?=?new?SimpleDateFormat("yyyy-MM-dd?HH:mm:ss");

out.write("輸出當前時間:"+sf.format(new?Date()));

%>

demo.jsp代碼運行的結果是:輸出當前時間:2017-02-08?22:09:10

上面的代碼已經運行之后,我們再到tomcat服務器的work\Catalina文件夾里面去查看編譯后生成的demo_jsp.java這個文件,看看demo.jsp文件被編譯之后變成java文件之后是什么樣子的。package?org.apache.jsp;

import?javax.servlet.*;

import?javax.servlet.http.*;

import?javax.servlet.jsp.*;

import?java.text.SimpleDateFormat;

import?java.util.*;

public?final?class?demo_jsp?extends?org.apache.jasper.runtime.HttpJspBase

implements?org.apache.jasper.runtime.JspSourceDependent?{

//刪除了部分代碼

public?void?_jspService(final?javax.servlet.http.HttpServletRequest?request,?final?javax.servlet.http.HttpServletResponse?response)

throws?java.io.IOException,?javax.servlet.ServletException?{

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");

String?path?=?request.getContextPath();

String?basePath?=?request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

out.write("\r\n");

out.write("HTML?PUBLIC?\"-//W3C//DTD?HTML?4.01?Transitional//EN\">\r\n");

out.write("\r\n");

out.write("??

\r\n");

out.write("????

out.print(basePath);

out.write("\">\r\n");

out.write("????\r\n");

out.write("????

jsp演示代碼\r\n");

out.write("??\r\n");

out.write("??

\r\n");

out.write("????");

SimpleDateFormat?sf?=?new?SimpleDateFormat("yyyy-MM-dd?HH:mm:ss");

out.write("輸出當前時間:"+sf.format(new?Date()));

out.write("\r\n");

out.write("??\r\n");

out.write("\r\n");

}?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);

}

}

}

你會發現上面的demo.jsp文件被編譯成了servlet的代碼,其實jsp和servlet的區別就是表現形式不一樣,本質卻是一樣的,servlet是完全可以替代這個demo.jsp來輸出這個頁面,但是為什么又需要jsp呢?

這是因為在實際項目中,jsp有網頁標簽,適合做網頁界面的設計,如果所有的js和css都通過servlet來write輸出的話,代碼會變得非常繁瑣,所以實際項目中servlet主要負責網站后臺邏輯的實現,jsp主要負責的是頁面的布局和后臺數據的獲取。

jsp和servlet的關系實際上就是一種互補的關系,只是職責不一樣,完整學習jsp教程,請看下一篇:10分鐘學會使用jsp內置對象域對象及el表達式

來源網站:太平洋學習網,轉載請注明出處:http://www.tpyyes.com/a/javaweb/63.html

總結

以上是生活随笔為你收集整理的jsp与java的关系_jsp教程中:jsp与servlet的区别和关系的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。