當前位置:首頁 » 數據倉庫 » servlet獲取資料庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

servlet獲取資料庫

發布時間: 2022-04-21 12:09:15

1. 怎麼訪問jsp時通過servlet獲取資料庫的數據

HTML是固定死的,無法動態的顯示處理後的結果。
而servlet和jsp解決了這個問題,servlet可以接受來自用戶登陸請求頁面的數據,進行計算處理之後,返回給jsp頁面來顯示。
就你這個問題來說,應該這樣寫:
登錄頁面使用html和jsp都無所謂,裡面需要一個表單FORM,action="處理業務的servlet的url",有一個提交查詢按鈕,這個查詢按鈕為submit。那麼點擊查詢後,會把表單數據提交給servlet,在servlet中可以通過request.getParameter("參數名");來獲取表單中的用戶名參數,然後在servlet中調用jdbc代碼取得資料庫中對應用戶的余額,然後通過request.setAttribute("余額",yue);可以傳給jsp,在jsp頁面中使用<%=request.getAttribute("余額")%>來顯示相應的余額。

2. 寫的servlet中往資料庫中添加的方法實現不了,也跳轉不了頁面獲取數據

首先網資料庫添加,需要底層執行sql
1、你要debug一下,是否走到了底層執行sql,執行sql的時候,資料庫連接是否正確,資料庫連接方法裡面,是否執行完後關閉了資料庫
2、如果你連接的是oracle資料庫,那麼你需要在代碼裡面提交事務,如果是sqlserver
默認不用處理事務。
3、檢查你的sql語句是否正確。
第二個跳轉頁面獲取數據,我不清楚你是指的提交的時候還是跳轉到你的表單頁面。
1、如果是提交的時候,那麼檢查你的form的action是否正確指向了你的servlet的方法。如果你這里沒有問題,那麼檢查你的servlet的xml配置文件,是否有這個servlet的配置。
2、如果你上面這一步成功了,那麼檢查你的form的method是否為post提交。

3. servlet無法調用資料庫

對象為空。。
有可能是某些依賴注入的類,創建示例需要按框架的寫法來

4. JSP+Servlet 頁面載入時請求資料庫,獲取信息並顯示到頁面上,如何處理求指教!

兄弟,我想說你理解上有錯誤,想要在jsp頁面顯示資料庫數據,一般是先到一個servlet進行取數據處理,把取到的數據設到request中去,然後請求轉發到jsp頁面,jsp頁面通過el表達式即可獲取數據,你要記住這個流程。而不是你說的進入到該頁面時,立即請求數據。沒有必要進入到頁面在請求數據,只需要在進入頁面之前取出數據即可。理解了這個過程非常重要,對以後框架的學習也很有幫助,除了這個過程之外,還有一個和這個相反的過程就是從頁面輸入數據然後插入到資料庫之中,這個過程和上面的那個過程完全相反,就是想到數據輸入的jsp頁面,輸入完成之後提交表單到特定的servlet,servlet進行具體的插入操作

5. eclips上在servlet中獲取資料庫中所有的信息並將其顯示在頁面上

您好,//import語句就不寫了,反正現在的IDE這么先進,這難不了大家的
public class GetA000_photoServlet extends HttpServlet {
private static final String CONTENT_TYPE = "image/jpeg";
/**Initialize global variables*/
public void init() throws ServletException{
}
/**Process the HTTP Get request*/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException {
//從頁面中取得傳進來的參數personid
String personID = request.getParameter("personID");
//DataSourceManager 為取數庫連接的類
DataSourceManager db = null;
Connection conn = null;
ResultSet rs = null;
PreparedStatement pstmt = null;
//用來存儲照片數據的緩沖區
byte [] buf=null;
String sql = "select a.photo from Ftable a where a.PERSONID=?";
try{
db = new DataSourceManager();
if(db != null){
conn = db.getConnection();
if(conn != null){
pstmt = conn.prepareStatement(sql);
pstmt.setString(1,personID);
rs = pstmt.executeQuery();
if(rs.next()){
//buf = rs.getBytes(1); //在網上查到的處理代碼是這樣處理的,但我這樣做後卻解決不了問題,我同學以為是數據的問題,然後認為只要把結果rs.getBytes(1)寫到輸出流,但結果確是令人非常失望,這令我不理解.後來作了如下的修改就基本解決了.(我的圖片是以Blob類型存Oracle中的)
Blob blocco = (Blob)rs.getObject("A000_PHOTO");
int length = (int)blocco.length();
buf = blocco.getBytes(1, length);
}else{
buf = new byte[0];
}
}
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(rs != null)
rs.close();
if(pstmt != null)
pstmt.close();
if(conn != null)
conn.close();
}catch(Exception e){
e.printStackTrace();
}
}if(buf == null)buf = new byte[0];
//告訴瀏覽器輸出的是圖片
response.setContentType(CONTENT_TYPE);
//圖片輸出的輸出流
OutputStream out = response.getOutputStream();
//將緩沖區的輸入輸出到頁面
out.write(buf);
//輸入完畢,清楚緩沖
out.flush();
}
/**Clean up resources*/
public void destroy() {

}
}

//頁面調用
<img border="0" src="<%=request.getContextPath()%>/getPhotoServlet/getPhoto?personID=16873&ts=aaaa" width="200" height="250">
TS是一個隨機欄位用於防止資料庫更新後,頁面不能顯示更新後的圖片.我傳入的是一個時間戳以保證每次請求的地址都是不一樣的.如果你的應用布署帶有項目名的話,如http://localhost:8080/myServer/...,請不要忘了把<%=request.getContextPath()%>忘了寫上.

//web.xml配置
<servlet>
<servlet-name>getPhotoServlet</servlet-name>
<servlet-class>com.szdc.web.gbkc.GetA000_photoServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>getPhotoServlet</servlet-name>
<url-pattern>/getPhotoServlet/getPhoto</url-pattern>
</servlet-mapping>

6. java怎麼通過servlet獲取from的傳值查詢mysql資料庫對應表的數據並顯示到jsp頁面中

request.getSession().setAttribute("cid",id);
//這樣在後面就可以通過session.getAttribute("cid")來獲取,望採納

7. servlet讀取資料庫保存list到javabean再從JSP頁面輸出

是用的request.setAttribute("beanList",
list);
JSP頁面取用應該這樣:request.getAttribute("beanList");(頁面跳轉使用轉發,不要使用重定向,不然request這個對象不會共享,就獲取不到數據)

8. 如何使用jsp頁面跳轉到servlet中讀取資料庫中的數據,再通過servlet跳轉到下一個jsp頁面

servlet執行資料庫操作.把結果例如得到了一個List all = DB.get()....
可以這樣做 : request.setAttribute("allList",all);
這是把all的值賦給名字叫 allList 的
然後JSP 頁面里就可以通過
List allList = request.getAttribute("allList");
然後在JSP頁面里就可以得到這個結果了
我看你寫的DAO操作.
如果結果是一個集合的話
所以servlet里應該是 List all = IDAO.getList() 看你自己的方法如果調用了..
然後通過我上面說的一個賦值,一個取值.就可以在JSP頁面里取出來了.

9. 怎樣用servlet進行對資料庫的操作

1、首先明確一點,servlet就是一個繼承自javax.servlet.http.HttpServlet的類。

2、範例:使用servlet連接資料庫

packagecom.oracle.project.servlet;

importjava.util.*;
importjava.io.*;
importjava.sql.*;

importjavax.servlet.*;
importjavax.servlet.http.*;
importjavax.servlet.annotation.*;

@WebServlet("/TestServlet")

{
="oracle.jdbc.driver.OracleDriver";
publicstaticfinalStringDBURL="jdbc:oracle:thin:@localhost:1521:ORACLEDB";
publicstaticfinalStringDBUSER="scott";
="tiger";
privateConnectionconn=null;

publicConnectiongetConnection(){
try{
if(this.conn==null){
Class.forName(DBDRIVER);
this.conn=DriverManager.getConnection(DBURL,DBUSER,PASSWORLD);
}
}catch(Exceptione){
e.printStackTrace();
}
returnconn;
}

@Override
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
PrintWriterout=response.getWriter();
out.println("<html>");
out.println("<body>");
out.println("<h1>"+this.getConnection()+"</h1>");
out.println("</body>");
out.println("</html>");
}
@Override
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
this.doGet(request,response);
}
}