您的位置:首页 > 编程语言 > Java开发

JSP网页制作:hibernate+struts注册登录

2011-05-26 23:29 309 查看
登录:

login.jsp:

<html>
<head>
<title>JSP for LoginForm form</title>
</head>
<body>
<html:form action="/login">
用户名 : <html:text property="username"/><html:errors property="username"/><br/>
密码 : <html:password property="password"/><html:errors property="password"/><br/>

<html:submit value="登录"/><html:reset value="重填"/>
<a href="reg.jsp" mce_href="reg.jsp">注册</a>
</html:form>
</body>
</html>


loginAction.java:

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub
String username=loginForm.getUsername();
String password=loginForm.getPassword();
boolean flag = false;
ArrayList list=null;
String actionpath=null;
try {
Session session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction ();
Query query=session.createQuery("select id from User where username=? and password=?");
query.setString(0, username);
query.setString(1, password);
list=(ArrayList) query.list();
if(list.size()>0) flag=true;
tx.commit ();
if (flag) {
request.getSession().setAttribute("username", username);
actionpath = "success";
} else {
actionpath = "error";
}
return mapping.findForward(actionpath);
}catch(HibernateException e){throw e;}

}


注册:

reg.jsp:

<html>
<head>
<title>JSP for RegForm form</title>
</head>
<body>
<html:form action="/reg">
username : <html:text property="username"/><html:errors property="username"/><br/>
sex : <html:text property="sex"/><html:errors property="sex"/><br/>
password : <html:text property="password"/><html:errors property="password"/><br/>
password2 : <html:text property="password2"/><html:errors property="password2"/><br/>
email : <html:text property="email"/><html:errors property="email"/><br/>
phone : <html:text property="phone"/><html:errors property="phone"/><br/>
<html:submit/><html:cancel/>
</html:form>
</body>
</html>


RegAction.java:

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
RegForm regForm = (RegForm) form;// TODO Auto-generated method stub
String username=regForm.getUsername();
String password=regForm.getPassword();
User user=new User();
user.setUsername(username);
user.setPassword(password);
try {
Session session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction ();
session.save(user);
tx.commit();
}catch(HibernateException e){throw e;}
return mapping.findForward("regsuccess");

}


注意:

数据库user.mdb中id为自增量,在user.hbm.xml中:

<comment>user</comment>

<id name="id" type="java.lang.Integer">

<column name="id" />

<generator class="identity" />

</id>

设为identity

user.java中,修改:

public User(int id,String username, String password) {

super(id,username, password);

}

为:

public User(String username, String password) {

super(username, password);

}

用access数据库时,需要手动添加方言包,在hibernate.cfg.xml中添加:

<property name="hibernate.dialect">

com.hxtt.support.hibernate.HxttAccessDialect

</property>

<property name="connection.url">

jdbc:access:///C:/Users/Administrator/workspace/MyHomeWork/WebRoot/userDB.mdb//绝对地址

</property>

把方言jar驱动包拷贝到lib中。

否则,出错!!!

<%
//显示记录
while(rs.next()){
int id=rs.getInt(1);
String uname=rs.getString(2);
String pword=rs.getString(3);
%>
<tr>
<td><%=id %></td>
<td><%=uname %></td>
<td><%=pword %></td>
<td><a href="/MyHomeWork/edit.jsp?username=<%= uname %>">编辑</a></td>
<td><a href="/MyHomeWork/reg.do?action=delete&username=<%= uname %>" onclick="return(confirm('你真的要删除这个用户?'))">删除</a></td>
</tr>
<%
}
%>


rs.getString()连续两次使用出错(不解)。。。

先赋值给变量id,uname,pword,再通过变量使用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: