關於jsp和servlet傳資料庫的信息

本文目錄一覽:

jsp中用servlet連接資料庫

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.ResultSetMetaData;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.HashMap;

import java.util.LinkedList;

import java.util.List;

import java.util.Map;

import javax.imageio.stream.FileImageInputStream;

public class DBUtil {

private Connection conn;

private Statement stmt;

private PreparedStatement pps;

private ResultSet rs=null;

private String url=”jdbc:oracle:thin:@localhost:1521:orcl”;

static{

try {//載入驅動

Class.forName(“oracle.jdbc.driver.OracleDriver”);

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

private Connection getConnection(){

try {//獲取連接

return DriverManager.getConnection(url,”username”,”password”);

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return null;

}

public int update(String sql){

int row=-1;

try {

conn=getConnection();

stmt=conn.createStatement();

row=stmt.executeUpdate(sql);

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally{

close();

}

return row;

}

public int update(String sql,Object …obj){

//Object …obj 動態數組 類型是Object,數組名為obj

int row=-1;

try {

conn=getConnection();

pps=conn.prepareStatement(sql);//預處理語句對象

for(int i=0;iobj.length;i++){

if(obj[i] instanceof File){//將文件寫入資料庫

FileInputStream fis=new FileInputStream((File)obj[i]);

pps.setBinaryStream(i+1, fis, (int)((File)obj[i]).length());

continue;

}

pps.setObject(i+1, obj[i]);

}

row=pps.executeUpdate();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally{

close();

}

return row;

}

public ListMapString,Object queryToList(String sql){

try {

conn=getConnection();

stmt=conn.createStatement();

rs=stmt.executeQuery(sql);

ResultSetMetaData rsmd=rs.getMetaData();//獲取列的信息

ListMapString,Object list=new LinkedListMapString,Object();

while(rs.next()){

MapString,Object map=new HashMapString,Object();

for(int i=1;i=rsmd.getColumnCount();i++){

map.put(rsmd.getColumnName(i), rs.getObject(i));//把每列信息封裝成map

}

list.add(map);//map列信息封裝進list

}

return list;

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally{

close();

}

return null;

}

public ListMapString,Object queryToList(String sql,Object …obj){

try {

conn=getConnection();

//stmt=conn.createStatement();

pps=conn.prepareStatement(sql);

for(int i=0;iobj.length;i++){

pps.setObject(i+1, obj[i]);

}

rs=pps.executeQuery();

ResultSetMetaData rsmd=rs.getMetaData();//獲取列的信息

ListMapString,Object list=new LinkedListMapString,Object();

while(rs.next()){

MapString,Object map=new HashMapString,Object();

for(int i=1;i=rsmd.getColumnCount();i++){

map.put(rsmd.getColumnName(i), rs.getObject(i));//把每列信息封裝成map

}

list.add(map);//map列信息封裝進list

}

return list;

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally{

close();

}

return null;

}

public PageBean getPage(String sql,int pagesize,int pagenow){

PageBean pb=new PageBean();

pb.setPagesize(pagesize);

pb.setPagenow(pagenow);

pb.setRowstart((pagenow-1)*pagesize+1);

pb.setRowend(pb.getRowstart()+pagesize-1);

pb.setRowall(queryToList(sql).size());

pb.setPageall(pb.getRowall()%pagesize==0?pb.getRowall()/pagesize:pb.getRowall()/pagesize+1);

//sql=”select * from (select rownum as rowindex,t.* from (“+sql+” and rownum='”+pb.getRowend()+”‘) t) where rowindex='”+pb.getRowstart()+”‘”;

sql=”select * from (select t.*,rownum as rowindex from (“+sql+”)t where rownum=”+pb.getRowend()+”) where rowindex=”+pb.getRowstart();

pb.setList(queryToList(sql));

return pb;

}

private void close(){

try {

if(rs!=null)

rs.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

if(pps!=null){

try {

pps.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

try {

if(stmt!=null)

stmt.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

try {

if(conn!=null)

conn.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

最上面的是連接資料庫的,下面的是方法的封裝,用的時候直接定義一個對象調用方法就好了。當然別忘了下載驅動包

JSP+Servlet+資料庫

1、寫出DAO,DAO中定義出CRUD介面,並寫出各自的實現;

2、建出servlet;

3、準備好資料庫,進行連接測試,無問題,繼續;有問題,修正;

4、DAO測試無問題後,開始著手servlet和jsp文件,按照你的要求寫即可。

JSP+Servlet這種實現的好處就是快,適用於小項目,但是大項目不推薦的~~~

jsp怎麼把數據傳給servlet

jsp向servlet傳值大致有這麼幾種情況。

第一種超鏈接,在href=’servletAction?id=xxx’

第二種form表單提交,當點擊submit時,action=”servletAction” method=’get/post’

第三種就是利用ajax,url=’servletActionz’,當然了,這裡也有get和post兩種情況,get直接在url後面加問號傳參,post會把參數放在實體內容裡面。

最後在servlet那邊 用 request.getParameter(“參數名”);就可以拿到了

jsp中如何把servlet中獲得的一個資料庫結果集傳到jsp頁面中,然後再jsp頁面中顯示結果集的內容?

jsp頁面傳值個servlet可通過form提交,servlet可通過request.getRequestDispatcher(“跳轉的jsp頁面”)進行頁面跳轉,值通過request.setAttribute(“name”,value)進行傳遞。

你的代碼沒問題啊,你現在是說test.jsp如何獲得這些值么?

如何把servlet的數據傳遞給JSP頁面

jsp通過servlet傳值到另外一個jsp的方法:

jsp通過form表單傳給servlet的值通過request對象可以傳到另外一個jsp。

Servlet傳值給Jsp

具體實現如下:

java代碼:String a= “abccdefg “;

request.setAttribute( “ValueA “,a);

request.getRequestDispatcher( “網址/jsp頁面 “).forward(request,response);

jsp頁面:

%

String s =(String)request.getAttribute( “ValueA “);

%

jsp頁面就可以取出Servlet的值。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/291882.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-25 14:07
下一篇 2024-12-25 14:07

相關推薦

  • Python 常用資料庫有哪些?

    在Python編程中,資料庫是不可或缺的一部分。隨著互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的資料庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • openeuler安裝資料庫方案

    本文將介紹在openeuler操作系統中安裝資料庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟體源 sudo…

    編程 2025-04-29
  • 資料庫第三範式會有刪除插入異常

    如果沒有正確設計資料庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係資料庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • Java 監控介面返回信息報錯信息怎麼處理

    本文將從多個方面對 Java 監控介面返回信息報錯信息的處理方法進行詳細的闡述,其中包括如何捕獲異常、如何使用日誌輸出錯誤信息、以及如何通過異常處理機制解決報錯問題等等。以下是詳細…

    編程 2025-04-29
  • leveldb和unqlite:兩個高性能的資料庫存儲引擎

    本文將介紹兩款高性能的資料庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28
  • 使用Python爬蟲獲取電影信息的實現方法

    本文將介紹如何使用Python編寫爬蟲程序,來獲取和處理電影數據。需要了解基本的Python編程語言知識,並使用BeautifulSoup庫和Requests庫進行爬取。 一、準備…

    編程 2025-04-28
  • Python怎麼導入資料庫

    Python是一種高級編程語言。它具有簡單、易讀的語法和廣泛的庫,讓它成為一個靈活和強大的工具。Python的資料庫連接類型可以多種多樣,其中包括MySQL、Oracle、Post…

    編程 2025-04-28
  • Python爬取網頁信息

    本文將從多個方面對Python爬取網頁信息做詳細的闡述。 一、爬蟲介紹 爬蟲是一種自動化程序,可以模擬人對網頁進行訪問獲取信息的行為。通過編寫代碼,我們可以指定要獲取的信息,將其從…

    編程 2025-04-28
  • 如何使用Python執行Shell命令並獲取執行過程信息

    本文將介紹如何使用Python執行Shell命令並獲取執行過程信息。我們將從以下幾個方面進行闡述: 一、執行Shell命令 Python內置的subprocess模塊可以方便地執行…

    編程 2025-04-28
  • Python實現身份信息模擬生成與查驗

    本文將從以下幾個方面對Python實現身份信息模擬生成與查驗進行詳細闡述: 一、身份信息生成 身份信息生成是指通過代碼生成符合身份信息規範的虛假數據。Python中,我們可以使用f…

    編程 2025-04-27

發表回復

登錄後才能評論