我觉得你的问题大部分和j2ee没什么关系
1.用sql语句搜索就可以了like
2. a:不管j2ee闲事,数据库中可以有主健也可以没有主健.
b:为什么要用CMP呢,我觉得他有一个最大的缺少就是不够灵活.可以用BMP嘛,你要处理什么?
3.因为你的页面没有重新请求数据,怎么可能会显示呢.除非你自己做个事件
4.一样一样一样的.自己写一个过滤器,通过web.xml加载,或是在你的取值前加request.setCharacterEncoding("GB2312");
1.用sql语句搜索就可以了like
2. a:不管j2ee闲事,数据库中可以有主健也可以没有主健.
b:为什么要用CMP呢,我觉得他有一个最大的缺少就是不够灵活.可以用BMP嘛,你要处理什么?
3.因为你的页面没有重新请求数据,怎么可能会显示呢.除非你自己做个事件
4.一样一样一样的.自己写一个过滤器,通过web.xml加载,或是在你的取值前加request.setCharacterEncoding("GB2312");
解决方案 »
- jsp发表文章时怎么像文章中插入图片???急求。。。
- Error establishing socket问题
- Spring第一个实例就遇到的问题
- jboss部署的问题
- 我的Mysql问题.
- jdom中如何将一个节点add到另外一个jdom对象的节点下
- 请各位推荐一两本JSP的好书啊~~谢谢~~
- 多线程如何实现对相同的用户(注:用户ID相同)实现同步锁
- ajax局部刷新,在页面顶部填写用户名密码,成功转换成用户名+欢迎,不能跳转,求解决,或者给个新的方法
- JMeter 一个线程组的多个请求,怎么设置指定请求并发呢?
- 我把一个xml文件解析成JTree显示出来,但是上面有一些特定节点我并不想显示,如何去做?注:并不是删掉节点,只是让它不显示在tree中
- 为什么我的jsp在weblogic里部署后老是乱码?
B.在SQL语句中用ORDER BY 排序
如果手写,那就改写你的各个接口和ejb-jar.xml文件 .具体就不说了,看相关文档...
2.用ejb必须有主键.即使一般的数据库设计也都要有主键的呀,没有的话那根本就是一个不合格的数据库.虽然也能用.
排序你可以自己建一个排序类.继承java.util.Comparator;具体代码搜一下以前的帖子,我有贴过.
b.cmp生成的主键?没什么不方便的地方吧?我没遇到过问题..
3.不知道你什么意思,数据库变了,页面是静态的,必须要重新读取数据库才会显示数据库的内容,当然要刷新...不可能不用刷新的.4.中文乱码是个很经典的问题,有专门的文章论述,搜一下...
最笨的就是把所有的字符串自己转换一下编码
new String(原str.getByte(原编码),"gb2312")
原编码 = request.getcharactencoding()(方法名可能有误)
/**
* 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;
关于中文问题:要注意,JSP和java中使用的编码是不同的。往往从request对象中取出参数值
时,都要进行转换,然后将参数传入数据库。
我的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");
%>