JSP项目输出表单信息

本文分享了作者在参与一个无框架、基于JSP的项目中,如何利用数组存储复杂信息并在单一页面完成多页面信息输出的经验。这种方法虽简洁,但也存在风险:一旦数组下标出错,可能导致整个信息显示错误。

这段时间参与了一个JSP项目,虽然我觉得这种无框架,基本纯JSP的项目有很多很多缺点,但是昨天发的一个JSP文件,我觉得写法很“狠”,分享一下。

<%@ page language="java" contentType = "text/html;charset = gb2312" pageEncoding="gb2312"%>
<%@ page import="java.sql.*" %>
<%!Connection conn = null;%>
<%!Statement stmt = null;%>
<%!ResultSet rs = null;%>
<%!int iItem = 0;%>
<%!int iTotal = 0;%>
<%!String username = null;%>
<%!String[] show = {"多个表名" };%>
<%!String[][] table = {"表单列名,每个表的多个列名为一个元素"%>
<%!String[] sql = {"多个表的sql语句存于一个数组中"};%>

<script language="javascript">

</script>
<html>
<head><meta http-equiv="Content-Type" content="text/html;charset=utf-8">
   <title></title>
   <link rel="stylesheet" type="text/css" href="">
</head>
<body>
    <div class="top">
        <div class="currentPositionBox">
            <div class="point"></div>
            <span class="currentPosition">当前位置:</span>
           <%
            iItem = "前端传过来的id"
            out.println("<span>"+show[iItem]+"</span>");
            %> //输出表名
        </div>

<%
Class.forName("").newInstance(); //注册数据库驱动
try{ 
String url="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=数据库";
    conn=DriverManager.getConnection(url,"用户名","密码");
    }
catch(SQLException e){
    e.printStackTrace();
    }
if (conn!=null)
{
    stmt=conn.createStatement();
    rs = stmt.executeQuery(sql[iItem]);//根据id定位sql语句去执行

    out.println("<div align = 'center'><font color='red' align='center'></font></div>");
    out.println("<hr>");
    out.println("<table>");
    out.println("<tr>");
    out.println("<td scope='col'><input type='checkbox'></td>");
    for(int i=0;i<(table[iItem]).length;i++)
    {
      out.println("<TD title='"+showStr_table[iItem][i]+"'   nowrap'>");//表格第一行的checkbox
      out.println("<a style='cursor:pointer' href='#'>"+showStr_table[iItem][i]+"</a></td>");  //表格的第一行的列名 
    }
   out.println("</tr>");

   String showItem = null;
   while(rs.next())
   {

       out.println("<tr>");
       out.println("<td><input type='checkbox' name=''></td>");//第一列 checkbox固定不变

       for(int iRows=0;iRows<table[iItem].length;iRows++) //循环上述列名长度的次数
       {
          showItem = rs.getString(iRows+1);


                out.println("<td width=''></a></td>");
                   }

           out.println("</tr>");
      }
    out.println("</table>");   
}
%>

</body>
</html>

用数组顺序存储各种复杂的信息,使用一个页面,完成了多个页面的输出,但是必须保证数组下标可以帮我们找到正确的信息,如果一个信息出错,全部都会出问题

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值