有JSP 高手没?初学Struts 茫然了!谁能帮我解决问题 最后50分全部大放送!结分的和说什么“顶”之类废话的闪开!!!在线等!!!
Struts 做的 登陆和注册页面
注册 ,不能判断用户名是否成在
登陆,不管 输入什么密码和名字,都可以登陆?
详细问题加QQ 我不在乎送多少分 关键是谁能帮我解决问题!!!代码太长了就不贴了!
问题点数:50、回复次数:23Top
1 楼xiaoyetao08(人尚未成为人)回复于 2006-10-23 13:50:43 得分 5
贴啊
你不帖我怎么帮你改????????????Top
2 楼chuzhijun(幽恋)回复于 2006-10-23 13:58:29 得分 5
你在你的ACTION方法里面跟踪下,然后了解下struts的导航应该就可以了Top
3 楼panpan123530(月光下吻别)回复于 2006-10-23 13:59:26 得分 0
Dao
public void denglu(DengForm f ) {
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
String sql = "select * from login3 where user=? and passwd1=?";
try {
conn = ds.getConnection();
stmt =conn.prepareStatement(sql);
rs=stmt.executeQuery();
stmt.setString(2, f.getName());
stmt.setString(3,f.getPasswd1());
rs.next();
if(rs.next()){
rs.getString(2);
}
} catch (Exception err) {
err.printStackTrace();
} finally {
if (rs != null)
try {
rs.close();
} catch (Exception ee) {
}
if (stmt != null)
try {
stmt.close();
} catch (Exception ee) {
}
if (conn != null)
try {
conn.close();
} catch (Exception ee) {
}
}
}
Top
4 楼panpan123530(月光下吻别)回复于 2006-10-23 13:59:55 得分 0
Action
public class DengAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
DengForm dengForm = (DengForm) form;// TODO Auto-generated method stub
zhuce1 zhu1 = new zhuce1();
zhuce z = new zhuce(getDataSource(request, "database"));
String sl1 = null;
if(form instanceof DengForm){
z.denglu(dengForm);}
if(zhu1.getName()==dengForm.getName()){
return mapping.findForward("chenggong");
}else{
return mapping.findForward("shibai");
}
}
}
FormBean
ublic class DengForm extends ActionForm {
/*
* Generated fields
*/
/** passwd1 property */
private String passwd1="passwd1";
/** name property */
private String name="name";
/*
* Generated Methods
*/
/**
* Method validate
* @param mapping
* @param request
* @return ActionErrors
*/
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
// TODO Auto-generated method stub
return null;
}
/**
* Method reset
* @param mapping
* @param request
*/
public void reset(ActionMapping mapping, HttpServletRequest request) {
// TODO Auto-generated method stub
}
/**
* Returns the passwd1.
* @return String
*/
public String getPasswd1() {
return passwd1;
}
/**
* Set the passwd1.
* @param passwd1 The passwd1 to set
*/
public void setPasswd1(String passwd1) {
this.passwd1 = passwd1;
}
/**
* Returns the name.
* @return String
*/
public String getName() {
return name;
}
/**
* Set the name.
* @param name The name to set
*/
public void setName(String name) {
this.name = name;
}
}
帮我 看看哪里有问题
Top
5 楼panpan123530(月光下吻别)回复于 2006-10-23 14:00:37 得分 0
这是登陆页面
<%@ page contentType="text/html;charset=gb2312" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-logic" prefix="logic" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefix="tiles" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-template" prefix="template" %>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-nested" prefix="nested" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html:html locale="true">
<head>
<html:base />
<title>denglu.jsp</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 rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<html:form action="/deng" method="post" >
<center><font color=red>${}</font></center>
<hr>
<table border="0">
姓名:<input type="" name="name">
密码:<input type="" name="passwd1">
<td colspan="2" align="center"><html:submit /></td>
</tr>
</table>
</html:form>
</body>
</html:html>
Top
6 楼xiaoyetao08(人尚未成为人)回复于 2006-10-23 14:04:43 得分 0
" <html:form action="/deng" method="post" >"?
你的CONFIG.XML文件呢?
报的错也贴下Top
7 楼xiaoyetao08(人尚未成为人)回复于 2006-10-23 14:05:33 得分 0
你数据库建好了没?????Top
8 楼shine333(enihs)回复于 2006-10-23 14:11:54 得分 10
TO LZ:
First of all, i have to say that u have no talent in this. However, some hard work might help. Anyway, may god bless u
The problem was caused as you lost the information in your DAO whether or not the result set has next rows.
Your DAO should tell your Action whether this user's login is OK or failed in the following aspects:
1. the user exsits or not (rs.next())
2. the user's id/name and password match or not (form.password.equals(rs.getString(..)))
Besides, there are still so many mistakes in your codes, especially in JDBC.
regardsTop
9 楼xiaoyetao08(人尚未成为人)回复于 2006-10-23 14:17:15 得分 10
if(rs.next()){
rs.getString()
}
form.password.equals(rs.getString(..))
DAO里你在仔细看看 整理清楚
这个你懂以后你会上一个新台阶的
祝福你
1取值问题
2你那成功和失败页面不知道你写了没Top
10 楼suncheng_hong(亮)回复于 2006-10-23 14:18:58 得分 10
楼主qq,我可以远程协助Top
11 楼xiaoyetao08(人尚未成为人)回复于 2006-10-23 14:23:38 得分 0
我在公司上班啊
老板就在我旁边
你别急
想清楚 不难的
祝福你了
你就快OK了
程序员出问题太正常了Top
12 楼killjim(田下洋)回复于 2006-10-23 14:40:56 得分 0
stmt.setString(2, f.getName());
stmt.setString(3,f.getPasswd1());
rs.next();
if(rs.next()){
rs.getString(2);
} 应该使这里错误 下面还没看呢Top
13 楼china2001ok(开心拽拽)回复于 2006-10-23 14:47:07 得分 5
rs.next();
if(rs.next()){
rs.getString(2);
}
这个有问题吧
if(rs.next()){
rs.getString(2);
}
Top
14 楼enet_java(skyliu)回复于 2006-10-23 15:02:45 得分 5
rs=stmt.executeQuery();
stmt.setString(2, f.getName());
stmt.setString(3,f.getPasswd1());
为什么是从2开始的呢?这个地方好像是有问题。。可以把这个位置换成
stmt.setString(1, f.getName());
stmt.setString(2,f.getPasswd1());
rs=stmt.executeQuery();
试一下。希望能够帮助你Top
15 楼panpan123530(月光下吻别)回复于 2006-10-23 15:20:13 得分 0
我的QQ 396110944 谢谢大家的帮助!问题结了 我马上给分!!!Top
16 楼panpan123530(月光下吻别)回复于 2006-10-23 15:23:43 得分 0
XML配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<data-sources >
<data-source key="database">
<set-property property="password" value="" />
<set-property property="minCount" value="1" />
<set-property property="maxCount" value="20" />
<set-property property="user" value="root" />
<set-property property="driverClass" value="com.mysql.jdbc.Driver" />
<set-property property="description" value="" />
<set-property property="url" value="jdbc:mysql://localhost:3306/user_login" />
<set-property property="readOnly" value="false" />
<set-property property="autoCommit" value="true" />
<set-property property="loginTimeout" value="10000" />
</data-source>
</data-sources>
<form-beans >
<form-bean name="yanzhengForm" type="com.yourcompany.struts.form.YanzhengForm" />
<form-bean name="dengluForm" type="com.yourcompany.struts.form.dengluForm" />
<form-bean name="dengForm" type="com.yourcompany.struts.form.DengForm" />
<form-bean name="deleteForm" type="com.yourcompany.struts.form.DeleteForm" />
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings >
<action
attribute="yanzhengForm"
input="/zhuce.jsp"
name="yanzhengForm"
path="/yanzheng"
scope="request"
type="com.yourcompany.struts.action.YanzhengAction">
<forward name="chenggong" path="/chenggong.jsp" />
<forward name="shibai" path="/shibai.jsp" />
</action>
<action
attribute="dengForm"
input="/denglu.jsp"
name="dengForm"
path="/deng"
scope="request"
type="com.yourcompany.struts.action.DengAction">
<forward name="chenggong" path="/chenggong.jsp" />
<forward name="shibai" path="/shibai.jsp" />
</action>
<action
attribute="deleteForm"
input="/delete.jsp"
name="deleteForm"
path="/delete"
scope="request"
type="com.yourcompany.struts.action.DeleteAction"
validate="false">
<forward name="chenggong" path="/chenggong.jsp" />
<forward name="shibai" path="/shibai.jsp" />
</action>
</action-mappings>
<message-resources parameter="com.yourcompany.struts.ApplicationResources" />
</struts-config>
Top
17 楼weky(weky)回复于 2006-10-23 15:32:41 得分 0
这倒是和我们公司所做的系统很相似~~Top
18 楼vannel(CHLL.Vannel)回复于 2006-10-23 15:39:13 得分 0
在登录的页面里,
姓名:<input type="" name="name">
密码:<input type="" name="passwd1">
不用input,用<html:text property="name" />和<html:password property="passwd1" />
另外,你的formBean要有name和passwd1这2个属性,还要有setter和getter方法。
在struts-config里面对formbean和action的设置也要注意。Top
19 楼yougucao379548695(郑州-小刘)回复于 2006-10-23 19:43:19 得分 0
赌东道赌东道赌东道的Top
20 楼tcmis(难道你忘了吗?)回复于 2006-10-23 21:52:17 得分 0
你的这个地方绝对用问题,
if(zhu1.getName()==dengForm.getName()){
看见没有,你比较两个字符串,不能用==去比较,必须用equals去比较,就没有问题了。Top
21 楼windproof(windproof)回复于 2006-10-23 22:26:40 得分 0
小弟也认为这个地方有问题!if(zhu1.getName()==dengForm.getName()){........}
必须用equals去比较。==比较出的结果总是false。Top
22 楼doog2004()回复于 2006-10-25 09:52:05 得分 0
对字符比较串比较不能用==,要用equalsTop
23 楼backhamx7(无敌大西瓜)回复于 2006-10-25 10:44:37 得分 0
应该是先
stmt.setString(2, f.getName());
stmt.setString(3,f.getPasswd1());
完了在
rs = stmt.executeQuery();
还有就是字符串比较 应该用equals
==比的是引用 而equals 比的是字符串的内容
Top




