- 浏览: 1801793 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
cht的大摩托:
学习
IBM WebSphere Performance Tool / ISA / jca457.jar / ha456.jar / ga439.jar -
leeking888:
有没有linux 64位的相关librfccm.so等包啊?
web test LoadRunner SAP / java / Java Vuser / web_set_max_html_param_len -
paladin1988:
非常不错,多谢了。。
appServer IBM WebSphere / WAS 7 / 8.5 / was commerce -
hzxlb910:
写了这么多
net TCP/IP / TIME_WAIT / tcpip / iperf / cain -
acwyg:
ed2k://|file|LoadRunner.V8.1.is ...
web test performance tools / linux performance tools / windows performance tools
http://guoqinhua1986-126-com.iteye.com/blog/231244
********************解决乱码问题(格式化)***********
//格式化---转换为GBK
public String fs(String str) {
try {
byte[] st = str.getBytes();
str = new String(st, "GBK");
} catch (UnsupportedEncodingException ex) {
ex.printStackTrace();
} // new java.util.Date(); -->java.sql.Date()
return str.trim();
}
//格式化---转换为ISO-8859-1
public String fg(String str) {
try {
byte[] st = str.getBytes("ISO-8859-1");
str = new String(st);
} catch (Exception ex) {
ex.pr
********************jsp+javascript打造级连菜单***********
<%@ page import="java.util.Date,yava.fileapp.*,java.sql.*;"
contentType="text/html;charset=GB2312" pageEncoding="GB2312"
%>
<style>
.f9{ font-size:9pt; }
.bgc{ background-color:#AECAF9; color: #0033FF }
.buttons{font-family:Arial; font-size:13px; font-weight:bold;
background-color:#6796E4; color:white; border-top: solid 2px #AACAFB;
border-bottom: solid 1px #4E7DC1;
border-left: solid 1px #AECAF9;
border-right: solid 1px #5679BD;
padding:1px;
margin:0px;}
</style>
<SCRIPT LANGUAGE="JavaScript">
<!--
function rv()
{
var val="";
for(i=0;i<combo_box.list2.length;i++){
val+=","+combo_box.list2[i].value;
}
if(val.charAt(0)==","){
val=val.substr(1,val.length);
}
opener.form1.frecname.value=val;
self.close();
}
//-->
</SCRIPT>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<jsp:useBean id="user" scope="session" class="yava.fileapp.UserBean" />
<%
CDataSource ds=new CDataSource(); //数据联结Bean实例
java.sql.Connection conn=ds.getConnection();
java.sql.Statement stmt=null;
java.sql.ResultSet rs=null;
CDataCheck dc=new CDataCheck();
%>
<%
String sqlu="SELECT t1.fno, t1.fname, t2.fname AS fdept FROM tuser
t1 LEFT OUTER JOIN TDept t2 ON t1.fdept = t2.fno order by t2.fname";
stmt=conn.createStatement();
rs=stmt.executeQuery(sqlu);
%>
<script language="Javascript">
arr = new Array();
<% int temp=0;
while(rs.next())
{
%>
arr[<%=temp%>]=new Array("<%=rs.getString("fname")%>","<%=rs.getString("fdept")%>");
<%
temp = temp + 1;
}
%>
temp=<%=temp%>;
function ChangeLocation(id){
document.combo_box.city.length=0; //初始化第2级菜单的长度,下标从0开始
var i = 0;
document.combo_box.city.options[0]=new Option("-------","");
for(i=0;i<temp;i++){
if(arr[i][1]==id){//如果相等,证明在第2级里面有输入第1级组织的子集,arr[总数目][部门]
document.combo_box.city.options[document.combo_box.city.length] = new Option(arr[i][0], arr[i][0]);
}
}
}
</script>
<form name="combo_box">
<table border="0" cellspacing="0" cellpadding="0" height="210" width="59">
<tr height="24">
<td bgcolor="#336699" class="buttons" align=center><font color=#ffffff>部门选择</font></td>
<td bgcolor="#336699" class="buttons" align=center><font color=#ffffff>人名选择</font></td>
<td bgcolor="#336699" class="buttons" align=center nowrap><font color=#ffffff>添加/移除</font></td>
<td bgcolor="#336699" class="buttons" align=center><font color=#ffffff>最终人</font></td>
</tr>
<tr>
<td>
<select multiple id=prov name="prov"
onchange="ChangeLocation(combo_box.prov.options[combo_box.prov.selectedIndex].text);"
style="width:150;height:200" class="bgc">
<option value="0">请选择部门 ---></option>
<%
String sqld="SELECT * FROM tdept";
stmt=conn.createStatement();
rs=stmt.executeQuery(sqld);
while(rs.next())
{
%>
<option name="<%=rs.getString("fno")%>"><%=rs.getString("fname")%></option>
<%
}
%>
</select>
</td>
<td>
<select multiple id=city style="width:150;height:200" class="bgc">
</select>
</td>
<td nowrap align="center" class="bgc">
<input type="button" onClick="move(this.form.list2,this.form.city)" value="<<" class="buttons">
<input type="button" onClick="move(this.form.city,this.form.list2)" value=">>" class="buttons">
</td>
<td>
<select multiple size="10" name="list2" style="width:150;height:200" class="bgc">
</select>
</td>
</tr>
<tr class="bgc">
<td colspan="4" align="center"><input type="button"
name="button1" class="buttons" value="选好了!"
onclick="rv();"></td>
</tr>
</table>
</form>
<script language="JavaScript">
//人名移动
function move(fbox, tbox) {
var arrFbox = new Array();
var arrTbox = new Array();
var arrLookup = new Array();
var i;
for (i = 0; i < tbox.options.length; i++) {
arrLookup[tbox.options[i].text] = tbox.options[i].value;
arrTbox[i] = tbox.options[i].text;
}
var fLength = 0;
var tLength = arrTbox.length;
for(i = 0; i < fbox.options.length; i++) {
arrLookup[fbox.options[i].text] = fbox.options[i].value;
if (fbox.options[i].selected && fbox.options[i].value != "") {
arrTbox[tLength] = fbox.options[i].text;
tLength++;
}
else {
arrFbox[fLength] = fbox.options[i].text;
fLength++;
}
}
arrFbox.sort();
arrTbox.sort();
fbox.length = 0;
tbox.length = 0;
var c;
for(c = 0; c < arrFbox.length; c++) {
var no = new Option();
no.value = arrLookup[arrFbox[c]];
no.text = arrFbox[c];
fbox[c] = no;
}
for(c = 0; c < arrTbox.length; c++) {
var no = new Option();
no.value = arrLookup[arrTbox[c]];
no.text = arrTbox[c];
tbox[c] = no;
}
}
</script>
</body>
********************jsp实现图形验证码***********
调用方法
<img src="http://...../getImg">
原理,在servlet中随机生成一个4位数字1000-9999
然后把这数字写入session
输出一个图片,上面写有这四个数字
在服务器端根据用户输入的数字和
session中的值比较。
package com.schoolwx.util;
import java.io.*;
import java.util.*;
import com.sun.image.codec.jpeg.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.awt.*;
import java.awt.image.*;
/**
* Title: getImg.java
* Description: 这个class主要实现随机生成一个4位数的验证码,并写入session,
* Copyright: Copyright (c) 2003
* Company: 蓝星软件
* @author falcon
* @version 1.1
*/
public class getImg extends HttpServlet {
private Font mFont=new Font("宋体", Font.PLAIN,12);//设置字体
//处理post
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException {
doGet(request,response);
}
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException {
//取得一个1000-9999的随机数
String s="";
int intCount=0;
intCount=(new Random()).nextInt(9999);//
if(intCount<1000)intCount+=1000;
s=intCount+"";
//对session付值。
HttpSession session=request.getSession (true);
session.setAttribute("getImg",s);
response.setContentType("image/gif");
ServletOutputStream out=response.getOutputStream();
BufferedImage image=new BufferedImage(35,14,BufferedImage.TYPE_INT_RGB);
Graphics gra=image.getGraphics();
//设置背景色
gra.setColor(Color.yellow);
gra.fillRect(1,1,33,12);
//设置字体色
gra.setColor(Color.black);
gra.setFont(mFont);
//输出数字
char c;
for(int i=0;i<4;i++) {
c=s.charAt(i);
gra.drawString(c+"",i*7+4,11); //7为宽度,11为上下高度位置
}
JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(out);
encoder.encode(image);
out.close();
}
}
********************JSP调用报表示例***********
<%@ page language="java" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path;
request.setCharacterEncoding( "GBK" );
%>
<%@taglib uri="/WEB-INF/runqianReport4.tld" prefix="report" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>帶分頁的報表</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<link href="<%=basePath%>/styles/css1.css" rel="stylesheet" type="text/css">
<%
String hong="hong=select * from ukehu where yid =""+request.getParameter("name")+""";
%>
</head>
<body>
<center>
<report:html name="report1" reportFileName="红参数.raq"
srcType="file"
params="<%=hong%>"
scale="1"
width="-1"
funcBarLocation="bottom"
separator=" "
needSaveAsExcel="yes"
needSaveAsPdf="yes"
needSaveAsWord="yes"
needPrint="yes"
printLabel="<input name="print_btn" type="button" class="btn001" value="print">"
savePrintSetup="yes"
printedRaq="红参数.raq"
excelLabel="<input name="exportExcel_btn" type="button" class="btn001" value="To Excel">"
pdfLabel="<input name="exportPdf_btn" type="button" class="btn001" value="To PDF">"
wordLabel="<input name="exportWrod_btn" type="button" class="btn001" value="To Word">"
saveAsName="userlist"
needScroll="no"
needPageMark="yes"
firstPageLabel="<input name="firstPage_btn" type="button" class="btn001" value="第一页 ">"
prevPageLabel="<input name="prevPage_btn" type="button" class="btn001" value="上一页">"
nextPageLabel="<input name="nextPage_btn" type="button" class="btn001" value="下一页">"
lastPageLabel="<input name="lastPage_btn" type="button" class="btn001" value="尾页">"
displayNoLinkPageMark="yes"
/>
</center>
</body>
</html>
********************JSP分页***********
一 前提
希望最新的纪录在开头给你的表建立查询:
表:mytable
查询:create or replace view as mytable_view from mytable order by id desc 其中,最好使用序列号create sequence mytable_sequence 来自动增加你的纪录id号
二 源程序
<%String sConn="你的连接"
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn=DriverManager.getConnection(sConn,"你的用户名","密码");
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
Statement stmtcount=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs=stmt.executeQuery("select * from mytable_view");
String sqlcount="select count(*) from mytable_view";
ResultSet rscount=stmtcount.executeQuery(sqlcount);
int pageSize=你的每页显示纪录数;
int rowCount=0; //总的记录数
while (rscount
int pageCount; //总的页数
int currPage; //当前页数
String strPage;
strPage=request.getParameter("page");
if (strPage==null){
currPage=1;
}
else{
currPage=Integer.parseInt(strPage);
if (currPage<1) currPage=1;
}
pageCount=(rowCount+pageSize-1)/pageSize;
if (currPage>pageCount) currPage=pageCount;
int thepage=(currPage-1)*pageSize;
int n=0;
rs.absolute(thepage+1);
while (n<(pageSize)&&!rs
%>
<%rs.close();
rscount.close();
stmt.close();
stmtcount.close();
conn.close();
%>
//下面是 第几页等
<form name="sinfo" method="post"
action="sbinfo_index.jsp?condition=<%=condition%>&type=<%=type%>"
onSubmit="return testform(this)">
第<%=currPage%>页 共<%=pageCount%>页 共<%=rowCount%>条
<%if(currPage>1){%><a
href="sbinfo_index.jsp?condition=<%=condition%>&type=&
lt;%=type%>">首页</a><%}%>
<%if(currPage>1){%><a
href="sbinfo_index.jsp?page=<%=currPage-1%>&condition=&
lt;%=condition%>&type=<%=type%>">上一页</a><%}%&
gt;
<%if(currPage<pageCount){%><a
href="sbinfo_index.jsp?page=<%=currPage+1%>&condition=&
lt;%=condition%>&type=<%=type%>">下一页</a><%}%&
gt;
<%if(pageCount>1){%><a
href="sbinfo_index.jsp?page=<%=pageCount%>&condition=&
lt;%=condition%>&type=<%=type%>">尾页</a><%}%>
跳到<input type="text" name="page" size="4" style="font-size:9px">页
<input type="submit" name="submit" size="4" value="GO" style="font-size:9px">
</form>
********************JSP中表单数据存储的一种通用方法***********
摘 要
本文以Oracle数据库为例,介绍了在采用JSP技术开发WEB应用时一种简便通用的表单数据存储处理方法,以减轻开发工作量,同时提供了主要的程序代码。
引言
J2EE(Java 2 Enterprise
Edition)技术已广泛应用在Web应用开发中,其中的JavaBean、Servlet技术为开发者提供了更为清晰的开发环境,使用JSP技术表现
页面,使用Servlet技术完成大量的业务处理,使用Bean来存储数据及一些业务处理。在WEB应用中,业务数据存储到数据库中的处理工作经常很繁
重,其中一种主要的形式就是表单数据存储到数据库,整个应用处理过程牵涉到大量的这种数据存储操作,对每个表单都要单独编写相应的数据存储程序,花费了开
发人员大量的时间和精力。采用什么方法来减轻表单数据存储的开发工作量是值得研究的问题。
两种常见的表单数据存储处理方法
1、对每一表单都编写相应的程序代码
在JSP页面或JavaBean或Servlet中,使用request.
getparameter()函数逐一提取表单提交的数据,或编写相应的JavaBean,使用setProperty方法将数据自动取到
JavaBean中,然后生成SQL语句(insert,update,delete),最后执行executeupdate()函数完成数据表存储。
2、对每一数据表自动生成一个JavaBean程序代码
数据库系统必须支持用户能够读取表结构,并识别关键字段。利用面向对象快速开发工具,如PowerBuilder、Delphi等,自行开发
一个java代码自动生成程序。在该程序中读取数据库表的结构:字段名、数据类型、数据长度,自动生成一个JavaBean代码。在该代码中定义与表中字
段对应的同名变量,建立所有变量的setValue和getValue方法,建立insert、update、delete函数分别处理insert、
update、delete的SQL语句生成和执行。
在表单提交的数据处理页面中,编写如下代码,将表单数据存储到JavaBean中:
<jsp:useBean id="table" class="table1_bean" />
<jsp:setProperty name="table" property="*" />
(注:table1_bean为上述自动生成的对应某一个表的JavaBean)
然后调用table1_bean中insert、update、delete函数完成数据表存储,并返回执行结果。如:
<%boolean success =table.insert(); %>
第一种方法简单直观,但对每一表单都需要编写相应的数据处理程序。对稍微大一点的应用,表单数量可能很多,开发工作量很大,开发工作效率低。表结构变动如增加、减少字段时,需修改相应的数据处理程序。
第二种方法相对第一种简便得多,每一数据表的数据处理由对应的JavaBean实现,JavaBean自动生成,不需编写,表结构变动时只需
重新生成新的JavaBean,经java编译后覆盖原java类即可。但该方法需要开发JavaBean自动生成程序,表结构变动时JavaBean需
要重新生成和编译。
介绍一种简便通用的方法实现表单数据存储
在WEB应用开发中,很多表单在经过前台浏览器端简单的数据校验后,提交后台服务器,服务器对数据不用作任何处理直接将数据存储到一个数据表
中。对这种情况,我们可以只编写一个程序,对这些表单统一处理,将数据存储到相应的一个数据表中。该方法同样要求数据库系统支持表结构读取和关键字段识
别。我们采用JSP技术编写该程序,程序文件取名为DbdataStore.jsp。
1、调用格式
在网页中表单的Action调用方法如下:
<Form Name=Frm1 Method=Post Action="DBdataStore.jsp? tablename=table1&OperType=…">
table1为数据将要存储的数据库表的表名,OperType操作类型分为三种:insert,update,delete。
表单中的<input type=text name=…>,<textarea name=…><select
name=…>等中的name值应与数据表的字段名相同,DBdataStore.jsp中逐一提取表单提交的对应字段名的数据值,若表单中未定义输入,
得到的值为空值,则对该字段不作处理。
2、以oracle为例的视图定义
1) 建立表各列数据类型视图
CREATE OR REPLACE VIEW v_dbstru AS SELECT table_name,column_name,data_type,data_length,data_precision,data_scale,column_id
FROM all_tab_columns WHERE owner="user1";//user1为数据表的属主。
2) 建立表的关键列视图
CREATE OR REPLACE VIEW v_pkey_column AS
SELECT b.table_name,b.column_name,b.position
FROM all_constraints a,all_cons_columns b
WHERE a.owner=b.owner AND a.constraint_name=b.constraint_name AND a.owner="user1" AND a.constraint_type="P";
3、主要程序代码
1) 程序初始化
String tablename=request.getParameter("tablename");//提取表名
String OperType=request.getParameter("OperType");//提取操作类型
String sFieldValue="";//存放表单提交的字段数据值
String fieldname="",Datatype="" //存放字段名,字段数据类型
int iFieldvalue=0;
String updateSql="",whereSql=" where ",insSql1="",insSql2="",opSql="",strSql ="";
ResultSet rs1=null,rs2=null;
insSql1="insert into "+tablename+" (";
insSql2="values(";
2)生成sql语句关键字段部分
生成insert语句关键字段部分,如:insert into table1(id 和 values(100));
只使用关键字段生成update,delete语句where部分,如:where id=100;
在操作类型为update时,网页form表单中不对关键字段的数据进行修改。
rs1=Stmt.executeQuery("SELECT column_name FROM v_pkey_column WHERE table_name=""+tablename+""");//取关键字段字段名
while(rs1.next()){
fieldname=rs1.getString("column_name");
rs2=Stmt.executeQuery("SELECT data_type FROM v_dbstru WHERE
table_name=""+tablename+"" AND
column_name=""+fieldname+""");//取关键字段数据类型
if(rs2.next()){
Datatype=rs2.getString("data_type");
sFieldValue=request.getParameter(fieldname.toLowerCase());
//生成insert语句关键字段部分
if(OperType.equals("insert")){
insSql1+=fieldname+",";
if((sFieldValue==null) ){
//表单未提交关键字段数据值时,本文只按数字型处理,数据值按下一流水号计算。
rs2= Stmt. executeQuery("SELECT max("+fieldname+")+1 FROM
"+tablename);rs2.
next();iFieldvalue=rs2.getInt(1);insSql2+=Integer.toString(iFieldvalue)+",";
}else if(Datatype.equals("DATE")){
insSql2+= "To_Date("" + sFieldValue + "","YYYY-MM-DD"),";
}else if(Datatype.equals("VARCHAR2") || Datatype.equals("CHAR")){
insSql2+=""" + sFieldValue+"",";}
else /*NUMBER,FLOAT */ insSql2+=sFieldValue+",";}
//生成update,delete语句where部分:where fieldname=... AND
if(OperType.equals("update") || OperType.equals("delete")){
if(Datatype.equals("DATE")){
whereSql+=fieldname+"=To_Date("" + sFieldValue + "","YYYY-MM-DD") AND ";
}else if(Datatype.equals("VARCHAR2") || Datatype.equals("CHAR")){
whereSql+=fieldname+"="" + sFieldValue+"" AND ";}
else /*NUMBER,FLOAT */ whereSql+=fieldname+"="+ sFieldValue+" AND ";}
}
}
whereSql=whereSql.substring(0,whereSql.length()-4);
3)非关键字段部分sql语句生成
update语句,如:update table1 set column1=value1,… where id=100
insert语句,如:insert into table1(id,column1,…)values(100,value1,…)
updateSql="update "+tablename+" set ";
strSql="SELECT
column_name,data_type,data_length,data_precision,data_scale FROM
v_dbstru a "+"where table_name=""+tablename+"" AND a.column_name not
in (SELECT b.column_name FROM v_pkey_column b where
b.table_name=a.table_name)";
rs1=Stmt.executeQuery(strSql);//取非关键字段字段名和数据类型
while(rs1.next()){
fieldname=rs1.getString("column_name");Datatype=rs1.getString("data_type");
sFieldValue=request.getParameter(fieldname.toLowerCase());//若表单未提交该字段
的值,则忽略该字段的处理
if((sFieldValue!=null)){
//生成insert语句=insSql1+insSql2 即insert into tablename(… 和 values(…
if(OperType.equals("insert")){ insSql1+=fieldname+",";
if(Datatype.equals("DATE")){
insSql2+= "To_Date("" + sFieldValue + "","YYYY-MM-DD"),";
} else if(Datatype.equals("VARCHAR2") || Datatype.equals("CHAR")){
insSql2+=""" + sFieldValue+"",";}else /*NUMBER,FLOAT*/ insSql2+= sFieldValue+",";}
//生成update语句=updateSql+whereSql 即update tablename set ... where fieldname=... if(OperType.equals("update")){
if(Datatype.equals("DATE")){
updateSql+=fieldname+"=To_Date("" + sFieldValue + "","YYYY-MM-DD"),";
}else if(Datatype.equals("VARCHAR2") || Datatype.equals("CHAR")){
updateSql+=fieldname+"="" + sFieldValue,1}+"",";}else /*NUMBER,FLOAT*/ updateSql+=fieldname+"="+sFieldValue+",";} ))
rs1.close();
4)生成完整的sql语句并执行
if(OperType.equals("insert"))
opSql=insSql1.substring(0,insSql1.length()-1)+")"+insSql2.substring(0,insSql2.length()-1)+")";
if(OperType.equals("update"))
opSql=updateSql.substring(0,updateSql.length()-1)+" "+whereSql;if(OperType.equals("delete"))
opSql="delete FROM "+tablename+" "+whereSql;
//已生成完整的sql语句opSql
try{sqlnrows=Stmt.executeUpdate(opSql);}
catch(SQLException e){out.println("SQLException:"+opSql);}
4、特点
该方法对所有这种直接存储的表单都统一使用本程序,具有通用性,不必对每个表单或每个数据表独立开发相应程序,开发工作量非常少,调用也非常
简便。同时,在表结构变动时,不用修改DBdataStore.jsp程序。本程序也可改写为Servelet,调用格式为<Form
Name=Frm1 Method=Post
Action="DBdataStoreServelet?tablename=table1&OperType=…">。
结束语
在Web应用中,如果表单数据在提交后,还需要服务器后台作进一步的数据校验或处理,则需要采用第二种方法。但很多情况是用户在表单中输入或
修改数据,在前台浏览器端使用javascript对数据进行简单校验或处理,然后提交,在后台服务器端不作任何处理,直接将表单提交的数据存储到数据库
的一个表中。这时候采用第三种方法非常简便,可以大大减轻开发人员的工作量
end
发表评论
-
JAVA EE BigData Apache Storm / Spark / Samza / apache storm / Flink
2016-11-23 16:38 935sd http://storm.apache.org/ ... -
JAVA EE Code Quality / Sonar / findbugs / checkstyle / cobertura(coverage) / PMD
2016-11-11 10:53 1008s http://sonar.oschina.net/ ... -
JAVA EE Apache Zookeeper / Google Chubby
2016-11-08 00:00 2086s http://zookeeper.apache.or ... -
framework apache commons
2009-12-14 15:24 1532http://commons.apache.org/ ... -
framework Schedule Quartz
2009-10-13 10:53 4211quartz http://www.opensymp ... -
Java EE search_lucene xapian
2009-09-03 00:43 2324搜索引擎产品 http://www.bing.com ... -
Java EE VM Montior JMX / Hyperic HQ / OpenNMS /
2009-08-24 16:54 3340Monitoring and Managemen ... -
framework ldap
2009-08-17 12:29 1179http://www.oschina.net/project/ ... -
JAVA EE robot_ItSucks
2009-08-15 15:19 1419http://open-open.com/open223668 ... -
JAVA EE Projects_apacheFoundation
2009-07-29 09:47 1285Apache Software Foundation Di ... -
framework freemarker / velocity
2009-03-26 21:16 2435CMS 静态化参考 JAVA静态化,如何生成html ... -
JAVA_EE EJB
2009-03-25 22:02 1353E:\lindows\workspace\ejb>tre ... -
JAVA EE JSP 2.1
2009-03-07 00:22 2190JSP 2.1对JSP2.0的改动 http://mar ... -
JAVA EE JSP_JNDI
2009-02-24 12:24 1630dsfdsa http://lindows.iteye.c ... -
JAVA EE JSP_EL
2009-02-21 17:28 1487http://www.javapassion.com/j2 ... -
framework JasperReport
2008-12-06 17:16 1310JasperReport报表设计总结 ... -
framework osworkflow / jbpm
2008-12-01 20:58 3613osworkflow http://gr ... -
JAVA EE JSP_Servlet
2008-11-01 16:25 1713Servlet API htt ... -
framework junit
2008-10-29 15:30 1825http://www.appperfect.com/ A ... -
JAVA EE Projects_sourceforge
2008-10-13 14:30 4579http://www.sourceforge.net/ ...
相关推荐
用java jsp出的一份试卷 里面有登陆界面、与试卷内容。可以提交,提交后显示你的分数,若果登录错误,就转向错误页面。
Java EE WEB 工程师培训------JDBC+Servlet+JSP整合开发
用 JAVA EE 做的会员管理.找的好辛苦. 内容有增删改会员.会员升级管理员. 有数据库连接 改改图片就能交作业了
java EE 课件之Jsp开发技术基础
java EE,servlet jsp java web 开发的帮助文档,API
java ee基础使用教程郑阿奇里面含有书中的所有ppt和代码
精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码.rar精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码.rar精通Java EE项目案例-基于Eclipse Spring Struts Hibernate光盘源码....
Java EE Web Application Primer Building Bullhorn A Messaging App with JSP, Servlets, JavaScript, Bootstrap and Oracle 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书详细信息请...
基于 java EE .Java权限后台管理系统.pdf基于 java EE .Java权限后台管理系统.pdf基于 java EE .Java权限后台管理系统.pdf基于 java EE .Java权限后台管理系统.pdf基于 java EE .Java权限后台管理系统.pdf基于 java ...
java ee
Java EE 7 tutorial 中的examples代码,找了很久才找到下来的,跟Java EE 7 tutorial配套使用,是官方的学习资料。
Practical JSF in Java EE 8 pdf Master the Java EE 8 and JSF (JavaServer Faces) APIs and web framework with this practical, projects-driven guide to web development. This book combines theoretical ...
本书是一个面向任务的实用指南,通过一系列实用示例来介绍如何开发Java EE 7(java平台企业版7)企业应用。这本书由Oracle的Java EE文档小组成员倾力编写,会让初学者和中缎Java程序员深入了解这个平台。 这个指南包括...
Java EE编程 源代码Java EE编程 源代码Java EE编程 源代码Java EE编程 源代码
JavaEE课程设计报告-基于Java EE身体健康管理平台.pdfJavaEE课程设计报告-基于Java EE身体健康管理平台.pdfJavaEE课程设计报告-基于Java EE身体健康管理平台.pdfJavaEE课程设计报告-基于Java EE身体健康管理平台....
《轻量级Java EE企业应用实战:Struts2+Spring4+Hibernate整合开发(第4版)》是《轻量级Java EE企业应用实战》的第4版,第4版保持了前几版内容全面、深入的特点,主要完成全部知识的升级。 《轻量级Java EE企业...
Java EE 设计模式 Professional Java EE Design Patterns
Develop professional applications in Java EE 7 with this essential reference guide