写了个BEAN文件验证登录信息
在JSP页面里怎么把用户名付给session?SaveBean .java文件如下~~~~~~~~~~~~~~~~~~~~~~~~`
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.SQLException;
import beans.*;
public class SaveBean {
private String dname;
private String password;public String getDname() {
return dname;
}
public void setDname(String dname) {
this.dname = dname);
}
public String getPassword() {
return password;
}public void setPassword(String password) {
this.password =password;
}
public String getSave(){
ResultSet rs = null;
String memid="";
String message="";try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection con=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;User=sa;");
con.setCatalog("CM");Statement sta=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from dltable where dname='"+dname+"' and password='"+ password+"'";
rs=sta.executeQuery(sql);
if(rs.next()){
dname = rs.getString("dname");
message = "登录成功";
}
else{
message = "Sorry,您输入的用户名和密码不正确";
}
rs.close();
con.commit();
sta.close();
con.close();
sta=null;
con=null; return message;
} catch (ClassNotFoundException e) {
e.printStackTrace();
return null;
} catch (SQLException e) {
e.printStackTrace();
return null;
}
}
}
~~~~~~~~~~~~~~~~~
在xinxi.jsp页面里怎么把用户名dname 付给session???
在JSP页面里怎么把用户名付给session?SaveBean .java文件如下~~~~~~~~~~~~~~~~~~~~~~~~`
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.SQLException;
import beans.*;
public class SaveBean {
private String dname;
private String password;public String getDname() {
return dname;
}
public void setDname(String dname) {
this.dname = dname);
}
public String getPassword() {
return password;
}public void setPassword(String password) {
this.password =password;
}
public String getSave(){
ResultSet rs = null;
String memid="";
String message="";try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection con=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;User=sa;");
con.setCatalog("CM");Statement sta=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from dltable where dname='"+dname+"' and password='"+ password+"'";
rs=sta.executeQuery(sql);
if(rs.next()){
dname = rs.getString("dname");
message = "登录成功";
}
else{
message = "Sorry,您输入的用户名和密码不正确";
}
rs.close();
con.commit();
sta.close();
con.close();
sta=null;
con=null; return message;
} catch (ClassNotFoundException e) {
e.printStackTrace();
return null;
} catch (SQLException e) {
e.printStackTrace();
return null;
}
}
}
~~~~~~~~~~~~~~~~~
在xinxi.jsp页面里怎么把用户名dname 付给session???
验证后就该给session付值,怎么付?只有验证成功才付
yanz.jsp页面如下
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Insert title here</title>
</head>
<body>
<jsp:useBean id="opy" class="beans.SaveBean" scope="page">
<jsp:setProperty name="opy" property="*"/>
</jsp:useBean>
<jsp:getProperty name="opy" property="save"/>
<%
String dname="";
session.setAttribute("dname",dname);
%><%=session.getAttribute("dname")%>
</body>
</html>
dname = rs.getString("dname");
message = "登录成功";
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.SQLException;
import beans.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class SaveBean {
private String dname;
private String password;public String getDname() {
return dname;
}
public void setDname(String dname) {
this.dname = dname);
}
public String getPassword() {
return password;
}public void setPassword(String password) {
this.password =password;
}
public String getSave(){
ResultSet rs = null;
String memid="";
String message="";try {
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Connection con=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;User=sa;");
con.setCatalog("CM");Statement sta=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from dltable where dname='"+dname+"' and password='"+ password+"'";
rs=sta.executeQuery(sql);
if(rs.next()){
dname = rs.getString("dname");
message = "登录成功";
HttpServletRequest r ;
r.getSession().setAttribute("dname",dname);
}
else{
message = "Sorry,您输入的用户名和密码不正确";
}
rs.close();
con.commit();
sta.close();
con.close();
sta=null;
con=null; return message;
} catch (ClassNotFoundException e) {
e.printStackTrace();
return null;
} catch (SQLException e) {
e.printStackTrace();
return null;
}
}
}
用你的方法有点小错
是什么原因呀?D:\tomcat5\webapps\sypl\WEB-INF\classes\beans\SaveBean.java:58: r is already defined in getSave()
HttpServletRequest r ;
^
1 error
<jsp:useBean id="save" scope="page" class="包.saveBean"/>//bean的路径
<%
String name=request.getParameter("dname");
String password=request.getParameter("password");String message=save.getSave();//注意把 bean里的getSave(String name,String password)改成带参数的if(成功)
session.setAttribute();
else
message="失败";
%>
<html>
<%=message%>
</html>这是一种
if(rs.next()){
dname = rs.getString("dname");
message = "登录成功";
}
改成这样
if(rs.next()){
dname = rs.getString("dname");
session.setAttribute("设定的引用session名称",dname);
message = "登录成功";
}然后,你在其他网页内可以使用
String dname=(String)session.getAttribute("("设定的引用session名称");
r.getSession().setAttribute("dname",dname);
来保存session,session.setAttribute("设定的引用session名称",dname);这个写法是在JSP中用到的,在BEAN中是不可以的!
HttpServletRequest r ;
^
1 error
这句话的意思是说,r已经在getSave()方法中定义了和HttpServletRequest r 中的r冲突,你重新定义一下就可以了,顺便说一下LZ的英文不怎么样啊,要好好学english!