本文目录一览:
- 1、jsp中用servlet连接数据库
- 2、JSP+Servlet+数据库
- 3、jsp怎么把数据传给servlet
- 4、jsp中如何把servlet中获得的一个数据库结果集传到jsp页面中,然后再jsp页面中显示结果集的内容?
- 5、如何把servlet的数据传递给JSP页面
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的值。