这段时间参与了一个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>
用数组顺序存储各种复杂的信息,使用一个页面,完成了多个页面的输出,但是必须保证数组下标可以帮我们找到正确的信息,如果一个信息出错,全部都会出问题
本文分享了作者在参与一个无框架、基于JSP的项目中,如何利用数组存储复杂信息并在单一页面完成多页面信息输出的经验。这种方法虽简洁,但也存在风险:一旦数组下标出错,可能导致整个信息显示错误。
890

被折叠的 条评论
为什么被折叠?



