说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

J2EE基础问题两三问,追加200分。

编辑:说三道四文库 发布时间:2017-12-15 08:32
HTML文档下载 WORD文档下载 PDF文档下载
在JAVA版问了不少问题了,可回复次数和质量都不尽如意。
但是不懂总的问,要毕业嘛,没办法。
我的毕业设计是基于J2EE的网络购书系统,已经完成大半了,由于是JAVA新手现在有些逻辑处理的问题卡在那里,课题进行不下去,万分焦急。
1,关于javabean的问题:
   A:在JSP页面中有很多逻辑是通过database里面的非主键来判断的(例如:我要通过bookname来查找我要的书,而数据库bookinfo表中的key是bookid)。问题是在EJB的home interface里只有public Home findByPrimaryKey(String key) ,public home findAll()两项,我想问的是如何在javabean或jsp中实现根据非主键来搜索数据库。希望热心的大大们能提供一份简单例子:)
   B:在javabean中有没有简单的方法实现搜索结果的排序。
2。关于数据库:
    a:在J2EE中是不是数据库表必须要有主键key的?
    b:由数据库自动生成的key(如id)在CMP中如何处理?
3。关于JSP页面的:
   我的系统中把BOOK加入购物车里,为什么必须刷新以后,页面上才能显示放入的单子?
4。中文乱码的问题:
   在tomcat中的解决方案在J2EE里是否依然有效?
我觉得你的问题大部分和j2ee没什么关系
1.用sql语句搜索就可以了like
2. a:不管j2ee闲事,数据库中可以有主健也可以没有主健. 
   b:为什么要用CMP呢,我觉得他有一个最大的缺少就是不够灵活.可以用BMP嘛,你要处理什么?
3.因为你的页面没有重新请求数据,怎么可能会显示呢.除非你自己做个事件
4.一样一样一样的.自己写一个过滤器,通过web.xml加载,或是在你的取值前加request.setCharacterEncoding("GB2312");
1 A.在EJB中可以添加FIND方法,可一查找非主键的字段
 B.在SQL语句中用ORDER BY 排序
1.如果你用jb,很简单,右健点你的entitybean就可以添加一个finder方法,输入QL语句,类似于sql语句,可以随意查询任何字段...
如果手写,那就改写你的各个接口和ejb-jar.xml文件 .具体就不说了,看相关文档...
2.用ejb必须有主键.即使一般的数据库设计也都要有主键的呀,没有的话那根本就是一个不合格的数据库.虽然也能用.
 排序你可以自己建一个排序类.继承java.util.Comparator;具体代码搜一下以前的帖子,我有贴过.
 b.cmp生成的主键?没什么不方便的地方吧?我没遇到过问题..
3.不知道你什么意思,数据库变了,页面是静态的,必须要重新读取数据库才会显示数据库的内容,当然要刷新...不可能不用刷新的.

4.中文乱码是个很经典的问题,有专门的文章论述,搜一下...
  最笨的就是把所有的字符串自己转换一下编码
 new String(原str.getByte(原编码),"gb2312")
原编码 = request.getcharactencoding()(方法名可能有误)


1.在ejb bean 里面实现,这是masterEjb2.0BMP的例子:
/**
 * Finds all Accounts by a name
 */
public Collection ejbFindByOwnerName(String name) throws FinderException {
PreparedStatement pstmt = null;
Connection conn = null;
Vector v = new Vector();

try {
System.out.println("ejbFindByOwnerName(" + name + ") called");

/*
 * Acquire DB connection
 */
conn = getConnection();

/*
 * Find the primary keys in the DB
 */
pstmt = conn.prepareStatement("select id from accounts where ownerName = ?");
pstmt.setString(1, name);
ResultSet rs = pstmt.executeQuery();

/*
 * Insert every primary key found into a vector
 */
while (rs.next()) {
String id = rs.getString("id");
v.addElement(new AccountPK(id));
}

/*
 * Return the vector of primary keys
 */
return v;
}
catch (Exception e) {
throw new FinderException(e.toString());
}
finally {
/*
 * Release DB Connection for other beans
 */
try { if (pstmt != null) pstmt.close(); }
catch (Exception e) {}
try { if (conn != null) conn.close(); }
catch (Exception e) {}
}
}

在ejb Home中声明:
public Collection findByOwnerName(String name) throws FinderException, RemoteException;
依我个人观点,不是所有问题都得用EJB或J2EE来解决的。EJB和J2EE主要是将一些棘手的比较繁琐的安全和事务问题由容器来处理,其实也不全是这样,象BMP的实体Bean。反过来说,有相当一部分问题完全可以用javabean来实现。主要问题是,必须把结构弄清楚。将前台—中间—后台彻底划分出来,各负其责。
关于中文问题:要注意,JSP和java中使用的编码是不同的。往往从request对象中取出参数值
时,都要进行转换,然后将参数传入数据库。
问题3:
我的addtocart.jsp的代码(参考他人的)

<%@ page contentType="text/html;charset=gb2312" %>
//<%@ page import="sun.net.smtp.SmtpClient, java.io.*" %>
<%@ page language="Java" import="java.sql.*" %>

<jsp:useBean id="trans" scope="session" class="dbms.charConvert" />
<jsp:useBean id="sqlbean" scope="session" class="dbms.Conn" />
<%
String userid;

userid=(String)session.getValue("userid");
if (userid==null)
{
response.sendRedirect("../login/login.htm");
}
%>
<%String bookid,isbn,bname,rmb;
bookid=request.getParameter("bookid");
isbn=request.getParameter("isbn");
bname=request.getParameter("bname");
bname = new String(bname.getBytes("ISO-8859-1"),"gb2312");
rmb=request.getParameter("rmb");

//以下为了判断是否用户已定购此书,若已定够则数量加一,若否则增加新纪录。
String forsql="select * from cart where userid='"+userid+"'and bookid='"+bookid+"'";
ResultSet rsfor=sqlbean.executeQuery(forsql);
if(rsfor.next())
{
String sql="update cart set num=num+1 where userid='"+userid+"'and bookid='"+bookid+"'";
sqlbean.updateDb(sql);
}
else
{
String sql="insert into cart(userid,bookid,isbn,bname,rmb) values('"+userid+"','"+bookid+"','"+isbn+"','"+bname+"','"+rmb+"')";
sqlbean.updateDb(sql);
}

//定向到显示购物彻页面
response.sendRedirect("cart.jsp");
%>
owenyang(和java 在一起)

您的例子在CMP中可用吗?
其实我的第一个问题很简单,就是如何在CMP环境下实现通过数据表中不同的属性查找需要的数据项。
3.用servlet好象不用刷新吧?
代码、TDD速查表 如何选择前端架构:服务器端HTML vs. JS部件 vs.单页Web应用 世界上最高深的Android特洛伊病毒 招聘iOS开发,老板必问的5个问题 护航科技吴伟湘:IT离线安全体检服务将带来颠覆 百度王继平:移动互联网时代云平台思路 “第八届开源中国开源世界高峰论坛”火热开启 微软发布SQL Server 2014预览版,展示内存数据库技术 帮助软件开发者提高效率的10个小窍门 我想做个程序员:Technovation Challenge圆女孩编程梦想 未来我们开发的Google Glass应用将会是什么样? 独家:前RIM大中华区总经理刘征宇,加入Appconomy 用一个API搞定一切 Segment.io为移动开发者提供便利的分析数据分发服务 TIOBE 6月编程语言排行榜:JavaScript回归前十 《Kingdom Rush Frontiers》上线后 迅速抢占27个国家游戏榜首 移动周报:85后程序员,iOS开源项目,细数7天大事件! Instagram:从Redis到Cassandra 成本节省1/4 乐元素CTO凌聪访谈:游戏引擎技术选型之王道 iOS 7的新设计并非止于外表 WWDC 2013大会10大启示:正向开发者支付大量现金 云计算大会微软专场成功举办 Windows Azure公众预览版上线 IBM全球大裁员 在美国裁员已经开始 动动鼠标,决定“中国十大优秀开源项目”的归属 为改善Flickr 雅虎收购拍照应用开发商GhostBird 让你轻松学习新代码库的六个步骤 RESTful API 设计最佳实践 谷歌11亿美元豪购Waze原因:获取数据 争本地广告市场 为什么大家都要疯狂吐槽iOS 7的扁平化设计? 伟大的程序员是天生的,不是造就的 比Hive高效7倍 Facebook推新一代查询引擎Presto 未来的存储系统设计——PMC技术交流会举行 一时想不明白,请教一下。。。 500分求解答!关于数据库的发布!在线等候!!!! 我不会制作mschart.ocx文件,看过一些文章,介绍的太笼统,谁能有详细的制作步骤,或者告诉我哪里有mschart.cab文件下载最好了,谢谢 高分紧急求救(教)! 已知文件名,如何知道它是被哪个程序/进程打开的,并关闭相应的程序或进程? 简单:函数的参数列表问题(c) 在CDialogBar类的对象上按放一个按钮控件,运行时为什么该按钮控件是灰色的? 为中国头你神圣的一票 我在当前项目里要继承另一个项目里的一个类,在VS.NET里要调些什么才能实现。 关于c#中的数据库开发。 word打字时按空格键时留下小点 又是一年月圆夜,月下为你许三愿:一愿美梦好似月儿圆,二愿日子更比月饼甜,三愿美貌犹如月中仙。:) 我的IE字体不知怎么变大了,老也改不回来。 backup database shell error? 域的问题 大四的苦恼 一个小问题! 请教关于SESSION的问题! 准备贩卖人参去了?? 似乎感觉C++ Primer程序结构有点乱.... 谁知道哪儿有<<Pattern Hatching : Design Patterns Applied>> 这本书? 关于打印的问题 自考操作系统课件 今夜,缘份已不再,爱变得那么无聊。(和女友分手,女友与我分手。散分) 关于程序版权,知道的进 请问:KEIL 是个什么东西? 软件安装 大家知道应聘“项目管理”职务会问到什么问题? 关于ASP.net的学习 j er ee, j two ee, j two double ee? 你们公司怎么叫j2ee的? 大家知道应聘“项目管理”职务会问到什么问题? BCB中,我想使用自己定义的消息,但是不知道该如何使用 请问:FPGA 是什么啊? 表格怎样居中啊? ****一个我觉得比较困难的问题**** 如何实现select对象中的选项发生变化时页面提交? 在工程中加入自定义的结构,编译出现错误! 为中国投你神圣的一票 weblogic启动有问题,帮忙看看吧 weblogic启动老有问题,帮忙看看吧 求msdn 如今的WEB开发有些什么语言和工具?它们向那方面发展? csdn 有ftp 吗?那样传文件不就方便了!你们说呢? 各位看看,绑定的问题 一个数据查询方面的问题! 谁有.met的安装密匙啊?序列号,给我一个! 为什么c++builder6里按run,编译以后就没反应了? 怎么解决不了,这次谁的代码编译通过分全给他 写个类,遇到了问题 mfc程序怎么老是有错,但不知道错在什么地方,请高手帮忙谢谢 Internet 连接共享是不是只有在win2000/XP下有 “平定蚩尤乱”这场战役有什么重大影响10月12日4点40之前要 帮忙翻译哭了哦我int max_tries = 3; int tries_cnt = 0; while ( tries_cnt < max_tries ) { // read user guess if ( usr_guess == next_elem ) break; // terminate loop tries_cnt++; // more stuff } The program can short-circuit 为什么我想要哭?..翻译 翻译一句话" 自然环境与人类有莫大的联系"如题 请问以下这名话是不是病句,请您看到此告示后,及时与社区联系. I'm not mean to do it damn graduation ceremony是什么意思 放学的英语怎么写? 放学英语怎么写?撒大的 哈雷慧星与九大行星的运转轨道方向 I did it not very frequently 这么说对吗I did it not very frequently 这么说对吗 日韩两国或围绕慰安妇问题大闹法国国际美医院工作人员患结核病 数百新生儿或韩美11月举行第7轮防卫费分担会谈 日媒醋意评价朴槿惠外交策略 称其无视澳维州出台新法规定性侵犯再犯案将不准欧洲或限美企处理数据 封杀数百亿美元“岩浆行星”震惊科学家:它本不该存在韩称中国学生“弃日择韩” 赴韩留学人盟友也要区别对待 日本德国仍是美国监白宫:叙利亚一空军基地遭以色列空军袭肯尼亚16岁少女遭轮奸疑犯仅被罚剪草便捷高速覆盖广 腾达AC15无线路由苹果6s/三星Note5 各品牌旗舰外观帅哦! 贱驴蹄子612机械键盘玩鼻炎 鼻塞 教你一方法见过指纹开锁, 指纹开车怎么弄?定制公交来了!精彩无线 测爱普生墨仓式L365无线AMD黑科技 华硕Radeon R9【蜗居一周】萌死了!这只猫头鹰就能看车主感动哭了 一夜之间爱车变成超级跑一周新闻汇:传说中手机发布会最多的1神雕出没穿越之这是魔宠龙血龑曌之成功猎艳人生末世之无限修真千年只为一天太玄传说掌天记宇宙之界应阳的幻想乡游记八部众之冥王阿修罗灵玉奇侠传文成公主庙旅游史可法纪念馆旅游仙人顶旅游大树王旅游四面峰旅游重庆动物园旅游三峡广场旅游黄花城长城旅游卧龙峡旅游三水温泉度假村旅游佛山祖庙旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘