基础不好,麻烦大家级讲一下吧
基础不好,麻烦大家了
这是一个登陆界面,就一问,问题在提交的页面有几问是要问的
-----------------------------------------------------------
这之间的就是问题,怕大家不好找,呵呵
-----------------------------------------------------------
<html>
<head>
<title>Untitled</title>
</head>
<body>
<table align="center" border="0" width="760" cellspacing="0" cellpadding="0" height="355">
<tr>
<td width="150" height="355" valign="top">
</td>
<td width="10" height="100%"></td>
<td width="1" height="100%" bgcolor="#3399ff"></td>
<td width="10" height="100%"></td>
<td width="589" height="331" valign="top" background="images/bg1.gif">
<table border="0" width="100%" cellspacing="0" cellpadding="0" height="307">
<tr>
<td width="100%" colspan="2" height="20" bgcolor="#3399ff"> <font color="#ffffff">成员登录</font>
</td>
</tr>
--------------------------------------------------------------------
<form action="webmailservlet.login" method="post"> //书上是这样写的,我想的问就是这个action要跟相对或是绝对路径吗?要把包名一起写上吗?只用login不可以吗?还有这个login是指.java还是.class呢
-------------------------------------------------------------------
<tr><td align="right" height="32" width="40%">名字:</td>
<td>
<input type="hidden" name="returl" value="">
<input type="text" name="logname" value="">
</td>
</tr>
<tr>
<td align="right" height="32">密码:</td>
<td>
<input type="password" name="logpass">
</td>
</tr>
<tr>
<td align="center" colspan="2" height="32"> |
<a href="findpass.jsp">密码忘了,找一下</a> |
<a href="reg.jsp">注册新用户</a> |
<input type="submit" name="login" value="登录!">
</td>
</tr>
</form>
<tr>
<td colspan="2" align="right"> </td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
提交页面
package webmailservlet;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.sql.*;
public class login extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=GBK";
public void init() throws ServletException {
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
try {
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e) {
System.err.println( e.getMessage());
}
}
public ResultSet executeQuery(String sql) {
String sConnStr = "jdbc:odbc:webmail";
Connection connect = null;
ResultSet rs = null;
rs = null;
try {
connect = DriverManager.getConnection(sConnStr);
Statement stmt = connect.createStatement();
rs = stmt.executeQuery(sql);
}
catch(SQLException ex) {
System.err.println(ex.getMessage());
}
return rs;
}
public String getStr(String str)
{
try
{
String temp_p=str;
byte[] temp_t=temp_p.getBytes("ISO8859-1");
String temp=new String(temp_t);
return temp;
}
catch(Exception e)
{
}
-------------------------------------------------------------------------------------
return "null"; //有它与没有它有什么区别吗?还有如果是return "";可以吗?
--------------------------------------------------------------------------------------
}
--------------------------------------------------------------------------------------
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //什么时候调用doGet和下面的doPost呢,怎么知道要用哪个呢?在这里好像它们没有什么区别呀,都有PrintWriter out = response.getWriter();这条语句呀
-----------------------------------------------------------------------------------------
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
out.println("<font color=\"green\">");
out.println("<p>The servlet get method is the reply.</p>");
out.println("</font>");
}
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>login</title></head>");
out.println("<body>");
out.println("</body></html>");
String logname,logpass;
boolean loginAttempt = false;
boolean loginOK = false;
String errorMessage = "请您登陆";
HttpSession session=request.getSession(true);
-------------------------------------------------------------------
if(request.getParameterValues("login") != null //这个login什么意思呀,可以没它吧?
-------------------------------------------------------------------------
&&request.getParameterValues("logname") != null
&&request.getParameterValues("logpass") != null)
{
loginAttempt = true;
}
if (loginAttempt)
{
logname=request.getParameter("logname");
logpass=request.getParameter("logpass");
logname=getStr(logname);
logpass=getStr(logpass);
String sql="select * from member where logname='"+logname+"' and password='"+logpass+"'";
out.println(sql);
ResultSet RS=executeQuery(sql);
int rowscount=0;
try
{
while(RS.next())
{
rowscount++;
}
}
catch(Exception e)
{
}
out.println(rowscount);
if(rowscount!=0)
{
errorMessage="成功登陆";
session.setAttribute("username",logname);
loginOK=true;
if(loginOK){
response.sendRedirect("../webmail_sev/main.jsp");
}
}else{
errorMessage="loginerr";
session.setAttribute("username","");
---------------------------------------------------------------------------------
response.sendRedirect("../webmail_sev/login.jsp?err="+errorMessage); //这是啥意思呀?是不是就是给出个错误提示呢?没有别的意思吧?
-------------------------------------------------------------------------------------
}
}
}
/**Clean up resources*/
public void destroy() {
}
}