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;
}
}