① jsp是什麼
1、什麼是java Server Pages?
JSP全稱Java Server Pages,是一種動態網頁開發技術。它使用JSP標簽在HTML網頁中插入Java代碼。標簽通常以<%開頭以%>結束。
JSP是一種Java servlet,主要用於實現Java web應用程序的用戶界面部分。網頁開發者們通過結合HTML代碼、XHTML代碼、XML元素以及嵌入JSP操作和命令來編寫JSP。
JSP通過網頁表單獲取用戶輸入數據、訪問資料庫及其他數據源,然後動態地創建網頁。
JSP標簽有多種功能,比如訪問資料庫、記錄用戶選擇信息、訪問JavaBeans組件等,還可以在不同的網頁中傳遞控制信息和共享信息。
2、為什麼使用JSP?
JSP程序與CGI程序有著相似的功能,但和CGI程序相比,JSP程序有如下優勢:
性能更加優越,因為JSP可以直接在HTML網頁中動態嵌入元素而不需要單獨引用CGI文件。
伺服器調用的是已經編譯好的JSP文件,而不像CGI/Perl那樣必須先載入解釋器和目標腳本。
JSP 基於Java Servlet API,因此,JSP擁有各種強大的企業級Java API,包括JDBC,JNDI,EJB,JAXP等等。
JSP頁面可以與處理業務邏輯的 Servlet 一起使用,這種模式被Java servlet 模板引擎所支持。
最後,JSP是Java EE不可或缺的一部分,是一個完整的企業級應用平台。這意味著JSP可以用最簡單的方式來實現最復雜的應用。
3、JSP的優勢
以下列出了使用JSP帶來的其他好處:
與ASP相比:JSP有兩大優勢。首先,動態部分用Java編寫,而不是VB或其他MS專用語言,所以更加強大與易用。第二點就是JSP易於移植到非MS平台上。
與純 Servlet 相比:JSP可以很方便的編寫或者修改HTML網頁而不用去面對大量的println語句。
與SSI相比:SSI無法使用表單數據、無法進行資料庫鏈接。
與JavaScript相比:雖然JavaScript可以在客戶端動態生成HTML,但是很難與伺服器交互,因此不能提供復雜的服務,比如訪問資料庫和圖像處理等等。
與靜態HTML相比:靜態HTML不包含動態信息。
② 用java做B/S企業應用開發。我可以用dreamweaver生成網頁,然後直接生成jsp代碼么
可以生成,不過需要安梁慶裝IIS再進行伺服器配置才能在瀏覽器中打肢渣塌開。推薦使用eclipse進行jsp動態網頁製作,可以先在dreamweaver里製作靜態網頁,再將其導入eclipse修改後綴後添加動態代歷圓碼(在eclipse中是方便調試,環境也可以在軟體中直接配置)
③ jsp是什麼
不少的朋友經常會在電腦科普網站上看到jsp這個概念,究竟這個jsp是什麼意思?jsp又有什麼作用和特點呢?下面讓我們一起去了解吧。
JSP是一種動態網頁技術標准,這種技術可以根據客戶端的請求,生成動態或者靜態網頁,然後發送給客戶端的請求者。
JSP部署於網路伺服器上,可以響應客戶端發送的請求,並根據請求內容動態地生成HTML、XML或其他格式文檔的Web網頁,然後返回給請求者。JSP技術以Java語言作為腳本語言,為用戶的HTTP請求提供服務,並能與伺服器上的其它Java程序共同處理復雜的業務需求。
JSP將Java代碼和特定變動內容嵌入到靜態的頁面中,實現以靜態頁面為模板,動態生成其中的部分內容。JSP引入了被稱為「JSP動作」的XML標簽,用來調用內建功能。另外,可以創建JSP標簽庫,然後像使用標准HTML或XML標簽一樣使用它們。
標簽庫能增強功能和伺服器性能,而且不受跨平台問題的限制。JSP文件在運行時會被其編譯器轉換成更原始的Servlet代碼。JSP編譯器可以把JSP文件編譯成用Java代碼寫的Servlet,然後再由Java編譯器來編譯成能快速執行的二進制機器碼,也可以直接編譯成二進制碼。
用JSP技術,Web頁面開發人員可以使用HTML或者XML標識來設計和格式化最終頁面,並使用JSP標識或者小腳本來生成頁面上的動態內容。生成內容的邏輯被封裝在標識和JavaBeans組件中,並且捆綁在腳本中,所有的腳本在伺服器端運行。由於核心邏輯被封裝在標識和JavaBeans中,所以Web管理人員和頁面設計者,能夠編輯和使用JSP頁面,而不影響內容的生成。
在伺服器端,JSP引擎解釋JSP標識和腳本,生成所請求的內容(例如,通過訪問JavaBeans組件,使用JDBC技術訪問資料庫或者包含文件),並且將結果以HTML(或者XML)頁面的形式發送回瀏覽器。這既有助於作者保護自己的代碼,又能保證任何基於HTML的Web瀏覽器的完全可用性。
④ 怎麼用JAVA動態生成一個表格 從資料庫讀出數據 然後用JSP頁面顯示出來 形成一個表格
放在循環老渣裡面,然後在埋宴循環體裡面畫<table>,<tr>,<td>就行了,這是很久以前學java時寫的jsp頁面里的一段,裡面加了分頁什麼的。你仔彎含銀細想想吧,這個很好理解的。
<table width="600" border="0" cellpadding="0" cellspacing="0" bordercolor="#96A353">
<tr>
<th colspan="2"><%=newDao.getnewsClassNameById(classid) %></th>
</tr>
<tr>
<td height="10" colspan="2"></td>
</tr>
<tr>
<td colspan="2"><hr color="#006600"></td>
</tr>
<%
for(int i=currPageBegin;i<intPage*intPageSize&&i<list.size();i++)
{
News news=(News)list.get(i);
%>
<tr>
<td><img src="Images/icon.gif"><a href="show_newscontent.jsp?newsid=<%=news.getNewsId() %>"><%=news.getNewsSubject() %></a></td>
<td width="100"><%=news.getNewsTime() %></td>
</tr>
<%} %>
</table>
⑤ JSP是什麼啊
JSP全名為Java Server Pages,中文名叫java伺服器頁面,其根本是一個簡化的Servlet設計,它[1]是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動態網頁技術標准。
JSP技術有點類似ASP技術,它是在傳統的網頁HTML(標准通用標記語言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標記(tag),從而形成JSP文件,後綴名為(*.jsp)。 用JSP開發的Web應用是跨平台的,既能在Linux下運行,也能在其他操作系統上運行。 它實現了Html語法中的java擴展(以 <%, %>形式)。
JSP與Servlet一樣,是在伺服器端執行的。通常返回給客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽。JSP技術使用Java編程語言編寫類XML的tags和scriptlets,來封裝產生動態網頁的處理邏輯。
網頁還能通過tags和scriptlets訪問存在於服務端的資源的應用邏輯。JSP將網頁邏輯與網頁設計的顯示分離,支持可重用的基於組件的設計,使基於Web的應用程序的開發變得迅速和容易。
⑥ 如何在JSP網頁中生成動態圖表
JSP頁面中嵌入動態圖表的兩種方法 :在JSP頁面中插入Applet小程序 ;通過JavaBean動態生成圖像。
JSP是一種廣泛應用的網頁設計技術 ,它是一種HTML和Java腳本寬喊混合的編程技術 ,它結合了HTML的靜態特性和Java語言的動態能力 ,因此用它進行動態網頁設計非常方便。在進行圖像處理時 ,一般處理靜態圖片非常容易 ,但是 ,在實際應用中常常需要動態地在網頁中生成二維的圖形.
基於JFreeChart開發的一個時序圖的繪制。代碼如下:
實例中createDataset()方法用於創建數據集合對象。時序圖的知談數據集合與其他數據集合不同,它需要添加一個時間段內的所有數據,通常採用TimeSeries類進行添加。該實例中通過Math類的random()方搭巧碰法進行隨機生成。
import java.awt.*;
import java.awt.event.ActionEvent;
import
java.awt.event.ActionListener;
import java.io.BufferedInputStream;
import
java.io.DataInputStream;
import java.io.FileOutputStream;
import
java.io.IOException;
import java.net.URL;
import
java.net.URLConnection;
import java.text.DateFormat;
import
java.text.ParseException;
import java.text.SimpleDateFormat;
import
java.util.Calendar;
import java.util.Date;
import java.util.Random;
import javax.swing.JApplet;
import javax.swing.Timer;
import org.jfree.chart.*;
import
org.jfree.chart.annotations.CategoryTextAnnotation;
import
org.jfree.chart.axis.CategoryAnchor;
import
org.jfree.chart.axis.CategoryAxis;
import
org.jfree.chart.axis.CategoryLabelPositions;
import
org.jfree.chart.axis.DateAxis;
import
org.jfree.chart.axis.DateTickUnit;
import
org.jfree.chart.axis.DateTickUnitType;
import
org.jfree.chart.axis.ValueAxis;
import
org.jfree.chart.labels.;
import
org.jfree.chart.plot.CategoryPlot;
import
org.jfree.chart.plot.PlotOrientation;
import
org.jfree.chart.plot.XYPlot;
import
org.jfree.chart.renderer.category.BarRenderer;
import
org.jfree.chart.title.TextTitle;
import
org.jfree.data.category.CategoryDataset;
import
org.jfree.data.category.IntervalCategoryDataset;
import org.jfree.chart.axis.NumberAxis;
import
org.jfree.data.category.DefaultCategoryDataset;
import
org.jfree.data.gantt.Task;
import org.jfree.data.gantt.TaskSeries;
import
org.jfree.data.gantt.TaskSeriesCollection;
import
org.jfree.data.time.Day;
import org.jfree.data.time.Second;
import
org.jfree.data.time.TimeSeries;
import
org.jfree.data.time.TimeSeriesCollection;
import
org.jfree.data.xy.XYDataset;
public class shixutu extends JApplet {
//PLOT_FONT是一靜態的字體常量對象,使用此對象可以避免反復用到的字體對象被多次創建
private static final Font PLOT_FONT = new Font("黑體", Font.ITALIC ,
18);
JFreeChart chart;
//創建數據動態更新的監聽
class DataGenerator extends Timer
implements ActionListener {
private static final long serialVersionUID =
3977867288743720504L;
String
equID;
//設備ID號
int
totalTask;
//任務數
String[][]
strTask;
//任務情況
public void
actionPerformed(ActionEvent actionevent) {
addTotalObservation();
} DataGenerator()
{
super(1000,
null);
addActionListener(this);
System.out.println("super");
}
}
//將更新的數據添加到chart中
private void addTotalObservation()
{
System.out.println("addTotalObservation");
//設置新的數據集
chart.getXYPlot().setDataset(createDataset());
//通知Jfreechart
數據發生了改變,重新繪制柱狀圖
if
(chart != null)
{
chart.fireChartChanged();
}
}
private static void
processChart(JFreeChart chart)
{
//設置標題字體
chart.getTitle().setFont(new Font("隸書", Font.BOLD,
26));
//設置背景色
chart.setBackgroundPaint(new
Color(252,175,134));
XYPlot plot = chart.getXYPlot();
//獲取圖表的繪制屬性
plot.setDomainGridlinesVisible(false);
//設置網格不顯示
//獲取時間軸對象
DateAxis dateAxis = (DateAxis)
plot.getDomainAxis();
dateAxis.setLabelFont(PLOT_FONT);
//設置時間軸字體
//設置時間軸標尺值字體
dateAxis.setTickLabelFont(new
Font("宋體",Font.PLAIN,12));
dateAxis.setLowerMargin(0.0);
//設置時間軸上顯示的最小值
//獲取數據軸對象
ValueAxis valueAxis =
plot.getRangeAxis();
valueAxis.setLabelFont(PLOT_FONT);
//設置數據字體
DateFormat format = new SimpleDateFormat("mm分ss秒");
//創建日期格式對象
//創建DateTickUnit對象
DateTickUnit dtu = new
DateTickUnit(DateTickUnitType.SECOND,30,format);
dateAxis.setTickUnit(dtu);
//設置日期軸的日期標簽 } //將結果輸出在文件中
private static
void writeChartAsImage(JFreeChart chart)
{
FileOutputStream fos_jpg =
null;
try
{
fos_jpg = new
FileOutputStream("D:\test\shixutu.jpg");
ChartUtilities.writeChartAsJPEG(fos_jpg, 1, chart, 400, 300,
null);
} catch (Exception e)
{
e.printStackTrace();
} finally
{
try
{
fos_jpg.close();
} catch (Exception e)
{
}
}
}
//創建數據集合對象
public static XYDataset createDataset()
{
//實例化TimeSeries對象
TimeSeries timeseries = new
TimeSeries("Data");
Second second = new Second();
//實例化Day
double d =
50D;
//添加一年365天的數據
for (int i = 0; i < 500; i++)
{
d = d + (Math.random() - 0.5) * 10;
//創建隨機數據
timeseries.second(day, d);
//向數據集合中添加數據
second = (Second)
second.next();
}
TimeSeriesCollection timeSeriesCollection =
new
TimeSeriesCollection(timeseries);
//返回數據集合對象
return timeSeriesCollection; }//Applet程序初始化
public void init()
{
// 1.
得到數據
XYDataset dataset =
createDataset();
// 2.
構造chart
chart =
ChartFactory.createTimeSeriesChart(
"時序圖示範", //
圖表標題
"時間", //
目錄軸的顯示標簽--橫軸
"數值", //
數值軸的顯示標簽--縱軸
dataset, //
數據集
false,
false, //
是否生成工具
false //
是否生成URL鏈接
);
// 3.
處理chart中文顯示問題
processChart(chart);
// 4.
chart輸出圖片
//writeChartAsImage(chart);
// 5. chart
以swing形式輸出
//6.使用applet輸出
ChartPanel chartPanel = new
ChartPanel(chart);
chartPanel.setPreferredSize(new
java.awt.Dimension(800,500));
getContentPane().add(chartPanel); (new
DataGenerator()).start();
}
public void
paint(Graphics g)
{
if
(chart != null)
{
chart.draw((Graphics2D) g,
getBounds());
}
}
public void destroy() {
}
}
⑦ jsp 框架是什麼
JSP全名為Java Server Pages,中文名叫java伺服器頁面,其根本是一個簡化的Servlet設計,它 是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動態網頁技術標准。
JSP技術有點類似ASP技術,它是在傳統的網頁HTML(標准通用標記語言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標記(tag),從而形成JSP文件。
後綴名為(*.jsp)。 用JSP開發的Web應用是跨平台的,既能在Linux下運行,也能在其他操作系統上運行。
(7)java動態生成jsp擴展閱讀:
JSP技術特點:
1、能以模板化的方式簡單、高效地添加動態網頁內容。
2、可利用JavaBean和標簽庫技術復用常用的功能代碼(設計好的組件容易實現重復利用,減少重復勞動)。標簽庫不僅帶有通用的內置標簽(JSTL),而且支持可擴展功能的自定義標簽。
3、有良好的工具支持。
4、繼承了Java語言的相對易用性。
5、繼承了Java的跨平台優勢,實現「一次編寫,處處運行」。因為支持Java及其相關技術的開發平台多,網站開發人員可以選擇在最適合自己的系統平台上進行JSP開發;不同環境下開發的JSP項目,在所有客戶端上都能順利訪問。
⑧ jsp是什麼干什麼的
JSP是由Sun Microsystems公司主導創建的一種動態網頁技術標准。
通常返回給客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽。JSP技術使用Java編程語言編寫類XML的tags和scriptlets,來封裝產生動態網頁的處理邏輯。
當有人請求JSP時,伺服器內部會經歷一次動態資源(JSP)到靜態資源(HTML)的轉化,伺服器會自動幫我們把JSP中的HTML片段和數據拼接成靜態資源響應給瀏覽器。也就是說JSP運行在伺服器端,但最終發給客戶端的都已經是轉換好的HTML靜態頁面(在響應體里)。伺服器並沒有把JSP文件發給瀏覽器。
(8)java動態生成jsp擴展閱讀:
能以模板化的方式簡單、高效地添加動態網頁內容。可利用JavaBean和標簽庫技術復用常用的功能代碼。
標簽庫不僅帶有通用的內置標簽(JSTL),而且支持可擴展功能的自定義標簽。有良好的工具支持。繼承了Java語言的相對易用性。
⑨ JSP動態網站開發要分幾個方面
JSP在以下幾個方面做了改進,使其成為快速建立跨平台的動態網站的首選方案。
1.將內容的生成和顯示進行分離
用JSP技術,Web頁面開發人員可以使用HTML或者XML標識來設計和格式化最終頁面,並使用JSP標識或者小腳本來生成頁面上的動態內容(內容是根據請求變化的,例如請求賬戶信息或者特定的一瓶酒的價格等)。生成內容的邏輯被封裝在標識和JavaBeans組件中,並且捆綁在腳本中,所有的腳本在伺服器端運行。由於核心邏輯被封裝在標識和JavaBeans中,所以Web管理人員和頁面設計者,能夠編輯和使用JSP頁面,而不影響內容的生成。
在伺服器端,JSP引擎解釋JSP標識和腳本,生成所請求的內容(例如,通過訪問JavaBeans組件,使用JDBC技術訪問資料庫或者包含文件),並且將結果以HTML(或者XML)頁面的形式發送回瀏覽器。這既有助於作者保護自己的代碼,又能保證任何基於HTML的Web瀏覽器的完全可用性。
2.可重用組件
絕大多數JSP頁面依賴於可重用的、跨平台的組件(JavaBeans或者EnterpriseJavaBeans組件)來執行應用程序所要求的復雜的處理。開發人員能夠共享和交換執行普通操作的組件,或畢備者使得這些組件為更多的使用者和客戶團體所使用。基於組件的方法加速了總體開發過程,並且使得各種組織在他們現有的技嫌碧能和優化結果的開發努力中得到平衡。
3.採用標識
Web頁面開發人員不會都是熟悉腳本語言的編程人員。JSP技術封裝了許多功能,這些功能是在易用的、與JSP相關的XML標識中進行動態內容生成所需要的。標準的JSP標識能夠訪問和實例化JavaBeans組件,設置或者檢索組件芹數舉屬性,下載Applet,以及執行用其他方法更難於編碼和耗時的功能。
4.適應平台
幾乎所有平台都支持Java,JSP+JavaBeans幾乎可以在所有平台下通行無阻。從一個平台移植到另外一個平台,JSP和JavaBeans甚至不用重新編譯,因為Java位元組碼都是標準的與平台無關的。
5.資料庫連接
Java中連接資料庫的技術是JDBC,Java程序通過JDBC驅動程序與資料庫相連,執行查詢、提取數據等操作。Sun公司還開發了JDBC-ODBCbridge,利用此技術Java程序可以訪問帶有ODBC驅動程序的資料庫,目前大多數資料庫系統都帶有ODBC驅動程序,所以Java程序能訪問諸如Oracle、Sybase、MSSQLServer和MSAccess等資料庫。
此外,通過開發標識庫,JSP技術可以進一步擴展。第三方開發人員和其他人員可以為常用功能創建自己的標識庫。這使得Web頁面開發人員能夠使用熟悉的工具和如同標識一樣的執行特定功能的構件來進行工作。
JSP技術很容易整合到多種應用體系結構中,以利用現存的工具和技巧,並且能擴展到支持企業級的分布式應用中。作為採用Java技術家族的一部分,以及Java2(企業版體系結構)的一個組成部分,JSP技術能夠支持高度復雜的基於Web的應用。
由於JSP頁面的內置腳本語言是基於Java的,而且所有的JSP頁面都被編譯成為JavaServlets,所以JSP頁面具有Java技術的所有好處,包括健壯的存儲管理和安全性。作為Java平台的一部分,JSP擁有Java編程語言「一次編寫,各處運行」的特點。
JSP的應用模型
利用JSP技術,動態信息由JSP頁面來表現,JSP頁面由安裝在Web伺服器或者使用JSP的應用伺服器上的JSP引擎執行。JSP引擎接受客戶端對JSP頁面的請求,並且生成JSP頁面作為對客戶端的響應。
JSP頁面通常被編譯成為JavaServlets,這是一個標準的Java擴展。頁面開發人員能夠訪問全部的Java應用環境,以利用Java技術的擴展性和可移植性。當JSP頁面第一次被調用時,如果它還不存在,就會被編譯成為一個JavaServlets類,並且存儲在伺服器的內存中。這就使得在接下來的對該頁面的調用中,伺服器會有非常快的響應(這避免了CGI-BIN為每個HTTP請求生成一個新的進程的問題)。
JSP頁面可以包含在多種不同的應用體系結構或者模型中,可以用於由不同協議、組件和格式所組成的聯合體中。基於JSP的動態信息發布技術是一個開放的、可擴展的建立動態Web頁面的標准。不論採用什麼創建工具,開發人員都可以使用JSP頁面來創建可移植的Web應用,在不同的Web應用伺服器上運行。