servlet使用

1.html中提交method(注:为何种请求html发送请求名sgbb1或者jqzbb),并且通过web.xml找到对应的setvlet类名[web.xml映射了servlet容器,指定下一个到达点,找寻servlet类],同时请求转交给servlet处理
HTML主要

<div id="leftbar">
<ul>

<li><a href="http://localhost:8080/demo/UserServlet.do?method=sgbb1" target="text">SG报表</a></li>
<li><a href="http://localhost:8080/demo/UserServlet.do?method=jqzbb" target="blank">JQZ报表</a></li>

</ul>   
</div>
<div id="context">
<iframe src="#" name="text" frameborder="1" width="100%" height="100%", target="_self"  noresize="noresize"></iframe>
</div>

web.xml主要内容:

<servlet>
        <servlet-name>UserServlet</servlet-name>
        <servlet-class>com.demo.servlet.UserServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>UserServlet</servlet-name>
        <url-pattern>/UserServlet.do</url-pattern>
    </servlet-mapping>

2.servlet处理过程:
servlet直接用dopost方法执行doget方法(函数),转到doget方法,doget方法判断提交的动作名,并且执行相应的动作(函数),转到该动作

public class Servlet类名 extends HttpServlet {
protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);//转到doget
    }

    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        String method = (String)request.getParameter("method");//接受动作请求并判断动作是何种动作
        if(method==null) {
            PrintWriter out = response.getWriter();
            out.println("invalid request!");
        } else if(method.equals("sgbb1")) {
            Sgbb1(request, response);  //转到sgbb1函数(或方法
        }  else if(method.equals("jqzbb")) {
            Jqzbb(request, response);
        } 
    }

//servlet由动作确定要执行的方法,也放在servlet类里面
    protected void Sgbb1(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
            HttpSession session = request.getSession();
            List<Sgbb> ls = new  ArrayList<Sgbb>();
            UserBean userBean = new UserBean();
            ls = userBean.findSgbb1();
            session.setAttribute("resultlist", ls);
            response.sendRedirect("Sgbb1.jsp");
            return;

    }
...
}

3.servlet处理过程
获取会话session,将JAVABEAN中设计到的数据装入session,并通过senddirect将数据发送至新的网页页面Sgbb1.jsp.
Sgbb1主内容,接受session数据:

<c:forEach var="item" items="${resultlist}">


       <tr>
            <td>${item.busi_dat}</td>
            <td>${item.fundname}</td>
            <td>${item.fundcode}</td>
            <td>${item.yjx}</td>
            <td>${item.bzx}</td>
            <td>${item.zcjz}</td>

       </tr>

   </c:forEach>

4.JAVABEAN在servlet具体方法中打开session过程中执行JAVABEAN类里的具体函数sgbb1,里面函数很多,看session使用的哪个

public Vector<Sgbb> findSgbb1() 
   {
       DBAccess db = new DBAccess();
       Vector<Sgbb> m = new Vector<Sgbb>();
       try
       {
           if(db.createConn())
           {
               String sql_1="select a.*, b.gpsz as gpsz2, b.szxsjz as szxsjz2, b.szfkzb as szfkzb2, b.xbzje as xbzje2, b.zcjz as zcjz2, b.xjzc as xjzc2, b.yxjbj as yxjbj2, b.xtfkzb as xtfkzb2, b.jsxje as jsxje2   from dc.sgbbcprs@dblink_dc a left join dc.sgbbcprs2@dblink_dc b on a.busi_dat=b.busi_dat and a.fundcode=b.fundcode where a.busi_dat>=to_char(sysdate-60,'yyyymmdd') order by a.busi_dat desc, a.fundcode";
               db.query(sql_1);
               ResultSet rs = db.getRs();
               while(rs.next())
               {
                   Sgbb bb = new Sgbb();
                   bb.setBusi_dat(rs.getString("BUSI_DAT"));
                   bb.setFundname(rs.getString("FUNDNAME"));
                   bb.setFundcode(rs.getString("FUNDCODE"));
                   bb.setYjx(rs.getString("YJX"));
                   bb.setBzx(rs.getString("BZX"));
                   bb.setZcjz(rs.getString("ZCJZ"));
                   bb.setXjzc(rs.getString("XJZC"));
                   bb.setYxjbj(rs.getString("YXJBJ"));
                   bb.setGpsz(rs.getString("GPSZ"));
                   bb.setSzxsjz(rs.getString("SZXSJZ"));
                   bb.setSzfkzb(rs.getString("SZFKZB"));
                   bb.setXtfkzb(rs.getString("XTFKZB"));
                   bb.setJsxje(rs.getString("JSXJE"));
                   bb.setXbzje(rs.getString("XBZJE"));
                   bb.setGpsz2(rs.getString("GPSZ2"));
                   bb.setSzxsjz2(rs.getString("SZXSJZ2"));
                   bb.setSzfkzb2(rs.getString("SZFKZB2"));
                   bb.setXbzje2(rs.getString("XBZJE2"));
                   bb.setZcjz2(rs.getString("ZCJZ2"));
                   bb.setXjzc2(rs.getString("XJZC2"));
                   bb.setYxjbj2(rs.getString("YXJBJ2"));
                   bb.setXtfkzb2(rs.getString("XTFKZB2"));
                   bb.setJsxje2(rs.getString("JSXJE2"));
                   m.add(bb);
               } 
           }
       }catch(SQLException ex){ex.printStackTrace();}
       finally{
           db.closeStm();
           db.closeConn();   
       }
       return m;
   }

   public List/void findJqzbb_zq(String busi_dat, String fundcode) 
   {
       DBAccess db = new DBAccess();
       Vector<Jqzbb_zq> m = new Vector<Jqzbb_zq>();
       try
       {
           if(db.createConn())
           {
               String sql_1="select * from dc.jqzbb_zq@dblink_dc a where substr(a.busi_dat,1,6)='"+busi_dat+"' and a.fundcode='"+fundcode+"' order by a.busi_dat desc";
               db.query(sql_1);
               ResultSet rs = db.getRs();
               while(rs.next())
               {
                   Jqzbb_zq bb = new Jqzbb_zq();
                   bb.setBusi_dat(rs.getString("BUSI_DAT"));
                   bb.setZqdm(rs.getString("VC_REPORT_CODE"));
                   bb.setMybj(rs.getString("ZQMZ"));
                   bb.setPmlv(rs.getString("LLV"));
                   //bb.setDqsyl(rs.getString(""));
                   bb.setZqsz(rs.getString("ZQSZ"));
                   bb.setZqdqr(rs.getString("DQR"));
                   bb.setCbj(rs.getString("CBJ"));
                   m.add(bb);
               } 
           }
       }catch(SQLException ex){ex.printStackTrace();}
       finally{
           db.closeStm();
           db.closeConn();   
       }
       return m;
   }

JAVABEAN里引用了具体的数据库连接类DBAccess里的函数/方法

package com.demo.javabean;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class DBAccess {

    private String drv = "oracle.jdbc.OracleDriver";

    private String url = "jdbc:oracle:thin:@200.200.200.200:1521:orcl";

    private String usr = "username";

    private String pwd = "password";





    public boolean createConn() {
        boolean b = false;
        try {
            Class.forName(drv).newInstance();
            conn = DriverManager.getConnection(url, usr, pwd);
            b = true;
        } catch (SQLException e) {
        } catch (ClassNotFoundException e) {
        } catch (InstantiationException e) {
        } catch (IllegalAccessException e) {
        }
        return b;
    }



    public boolean update(String sql) {
        boolean b = false;
        try {
            stm = conn.createStatement();
            stm.execute(sql);
            b = true;
        } catch (Exception e) {
            System.out.println(e.toString());
        }
        return b;
    }

    public void query(String sql) {
        try {
            stm = conn.createStatement();
            rs = stm.executeQuery(sql);
        } catch (Exception e) {
        }
    }

    public boolean next() {
        boolean b = false;
        try {
            if(rs.next())b = true;
        } catch (Exception e) {
        }
        return b;       
    }

    public String getValue(String field) {
        String value = null;
        try {
            if(rs!=null)value = rs.getString(field);
        } catch (Exception e) {
        }
        return value;
    }

    public void closeConn() {
        try {
            if (conn != null)
                conn.close();
        } catch (SQLException e) {
        }
    }

    public void closeStm() {
        try {
            if (stm != null)
                stm.close();
        } catch (SQLException e) {
        }
    }

    public void closeRs() {
        try {
            if (rs != null)
                rs.close();
        } catch (SQLException e) {
        }
    }

    public Connection getConn() {
        return conn;
    }

    public void setConn(Connection conn) {
        this.conn = conn;
    }

    public String getDrv() {
        return drv;
    }

    public void setDrv(String drv) {
        this.drv = drv;
    }

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    public ResultSet getRs() {
        return rs;
    }

    public void setRs(ResultSet rs) {
        this.rs = rs;
    }

    public Statement getStm() {
        return stm;
    }

    public void setStm(Statement stm) {
        this.stm = stm;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getUsr() {
        return usr;
    }

    public void setUsr(String usr) {
        this.usr = usr;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值